The northern horizon was purple with the fierce rain that had hammered the east of Illian through the night. Overhead, a morning sky of dark boiling clouds threatened, and strong winds flung cloaks about, made banners snap and crack like whips on the crest of the ridge, the white Dragon Banner and the crimson Banner of Light, and the bright standards of nobility from Illian and Cairhien and Tear. The nobles kept to their own kind, three widely spaced knots awash in gilt and silver-plated steel, silks and velvets and laces, but in common they looked around uneasily. Even the best-trained of their horses tossed heads and stamped hooves on the muddy ground. The wind was cold, and colder seeming for the heat it had replaced so abruptly, just as the rain had been a shock after so long without. From whatever nation, they had prayed for the baking drought to break, but none knew what to make of unrelenting storms in answer to their prayers. Some glanced at Rand when they thought he would not notice. Perhaps wondering if he had answered them so. The thought made him laugh softly, bitterly.
 The massive animal might have been a statue, awaiting the pressure of reins or knees to move. It was good that the Dragon Reborn’s horse seemed as cold as he did, as though they floated in the Void together. Even with the One Power raging through him, fire and ice and death, he was barely aware of the wind, though it flailed his gold-embroidered cloak about and cut through his coat, green silk thickly worked with gold and not intended for wear in such weather. The wounds in his side ached and throbbed, the old and the new cutting across it, the wounds that would never heal, but that was distant, too, another man’s flesh. The Crown of Swords might have been pricking someone else’s temples with the sharp points of the tiny blades among its golden laurel leaves. Even the filth woven through saidin seemed less obtrusive than it once had; still vile, still loathsome, but no longer worth notice. The nobles’ eyes on his back were palpable, though.
Shifting his sword hilt, he leaned forward. He could see the tight cluster of low, wooded hills half a mile to the east as clearly as if he were using a looking glass. The land was flat, here, the only prominences those forested hills and this long ridge, thrusting up from the heath.  Only storm-battered half-leafless trees and tangles of undergrowth were visible on the hills, but he knew what they hid. Two, perhaps three thousand of the men Sammael had gathered to try to stop him from taking Illian.
That army had disintegrated once they learned that the man who had summoned them was dead, that Mattin Stepaneos had vanished, perhaps into the grave as well, and that there was a new king in Illian. Many had scattered back to their homes, yet just as many clung together. Usually no more than twenty here, thirty there, but a great army if they came together again, and countless armed bands otherwise. Either way, they could not be allowed to roam the countryside. Time weighed down on his shoulders like lead. There was never enough time, but maybe this once . . . Fire and ice and death.
What would you do? he thought. Are you there? And then, doubtfully, hating the doubt, Were you ever there? Silence answered, deep and dead in the emptiness that surrounded him. Or was there mad laughter somewhere in the recesses of his mind? Did he imagine it, like the feel of someone looking over his shoulder, someone just on the brink of touching his back? Or the colors that swirled just out of sight, more than colors, and were gone? A thing of madmen. His gloved thumb slid along the carvings that serpentined the Dragon Scepter. The long green-and-white tassels below the polished spearpoint fluttered in the wind. Fire and ice, and death would come.
“I will go talk to them myself,” he announced. Which produced a furor.
Lord Gregorin, the green sash of the Council of Nine slanted across his ornately gilded breastplate, hurried his fine-ankled white gelding forward from the Illianers, followed closely by Demetre Marcolin, First Captain of the Companions, on a solid bay. Marcolin was the only man among them without silk or a speck of lace, the only man in plain if brightly burnished armor, though the conical helmet resting on his saddle’s high pommel did bear three thin golden plumes. Lord Marac lifted his reins, then let them fall uncertainly when he saw no others of the Nine move. A wide man with a stolid manner, and new to the Council, he often seemed more craftsman than lord despite the rich silks beneath his lavish armor and the falls of lace spilling over. High Lords Weiramon and Tolmeran spurred together from the Tairens, as crusted with gold and silver as any of the Nine, and Rosana, newly raised to High Lady and wearing a breastplate worked with the Hawk-and-Stars of her House. There, too, others half made as if to follow then hung back, looking worried. Blade-slender Aracome and blue-eyed Maraconn and bald-headed Gueyam were dead men; they did not know that, but however much they wanted to be at the center of power, they feared Rand would kill them. Only Lord Semaradrid came from the Cairhienin, on a gray that had seen better days, his armor battered, its gilding chipped.
There was plenty of contempt to go around. Tairens and Cairhienin hated one another. Illianers and Tairens despised each other. Only Cairhienin and Illianers got along to any degree, and there was a certain amount of prickle even there. Their two nations might not have near the long history of bad blood shared by Tear and Illian, yet the Cairhienin still were foreigners, armed and armored on Illian’s soil, welcomed halfheartedly at best and only that much because they followed Rand. But despite all the frowning and bristling and trying to talk at once as they milled about Rand in a flurry of windblown cloaks, they had a common goal now. After a fashion.
 The square-cut beard that left his upper lip bare framed a round face creased with worry. “These men must know you are King—the proclamations do be read in every village, at every crossroads, as we do speak—yet they may no show proper respect for your crown.” Lantern-jawed Marcolin, clean-shaven, studied Rand with dark, deep-set eyes, giving no hint what lay behind his impassive face. The Companions’ loyalty was to the crown of Illian, and Marcolin was old enough to remember when Tam al’Thor had been Second Captain over him, but only he knew what he thought of Rand al’Thor as King.
“My Lord Dragon,” Weiramon intoned as he made his bow, not waiting for Gregorin to finish. The man always intoned, and even on horseback he seemed to strut. His worked velvets and striped silks and falls of lace almost overwhelmed his armor, and his pointed gray beard gave off a flowery scent of perfumed oils. “This rabble is too petty to concern the Lord Dragon personally. Set dogs to catch dogs, I say. Let the Illianers root them out. Burn my soul, they’ve done nothing so far to serve you but talk.” Trust him to turn agreement with Gregorin into an insult. Tolmeran was lean enough to make Weiramon appear bulky and somber enough to dim the luster of his garb; he was no fool, and rival to Weiramon besides, yet he nodded slowly in agreement. No love lost there for Illianers, at all.
Semaradrid curled a lip at the Tairens but addressed himself to Rand, cutting in hard on Weiramon’s heels. “This gathering is ten times as large any other we have found so far, my Lord Dragon.” He cared nothing for the King of Illian, and little enough for the Dragon Reborn, except that the throne of Cairhien was Rand’s to give, and Semaradrid hoped it would be given to one he could follow instead of fight. “Their loyalties must be to Brend, or so many would not have held together. I fear talking to them is a waste of time, but if you must talk, let me ring their position openly with steel so they know the price of putting a foot out of line.”
Rosana glared right back at Semaradrid, a lean woman, not tall yet nearly as tall as he, with eyes like blue ice. She did not wait for him to finish, either, and she, too, spoke to Rand. “I’ve come too far and invested too much in you to see you die now, for nothing,” she said bluntly. No more a fool than Tolmeran, Rosana had claimed a place in the councils of the High Lords, though Tairen High Ladies seldom did, and blunt was the word for her. Despite the armor most of the noblewomen wore, none actually led their armsmen into battle, yet Rosana carried a flanged mace on her saddle, and sometimes Rand thought she would like a chance to use it. “I doubt those Illianers lack for bows,” she said, “and it takes only one arrow to kill even the Dragon Reborn.” Pursing his lips thoughtfully, Marcolin nodded before catching himself, then exchanged startled looks with Rosana, each more surprised than the other to find themselves of like mind with an ancient enemy.
“These peasants could never have found the mettle to stay under arms without encouragement,” Weiramon continued smoothly, ignoring Rosana. He was skilled at ignoring who, and what, he did not want to see or hear.  “May I suggest my Lord Dragon look to these so-called Nine for the source?”
“I do protest this Tairen pig’s insults, Majesty!” Gregorin growled right atop him, one hand darting to his sword. “I do protest most heartily!”
“There are too many this time,” Semaradrid said at the same instant. “Most will turn against you as soon as your back is to them in any case.” By his pointed frown, he might have been speaking of the Tairens as well as the men on the wooded hills. Perhaps he was. “Better to kill them and be done!”
“Did I ask for opinions?” Rand snapped harshly. Babble became silence, except for the crack of cloaks and banners flapping in the wind. Suddenly expressionless faces regarded him, more than one going gray. They did not know he held the Power, but they knew him. Not all of what they knew was truth, but it was just as well they believed. “You will come with me, Gregorin,” he said in a more normal voice. Still hard, though. Steel was all they understood; go soft, and they would turn on him. “And you, Marcolin. The rest stay here. Dashiva! Hopwil!”
Everyone not named reined their horses back hurriedly as the two Asha’man rode to join Rand, and the Illianers eyed the black-coated men as though they would have liked to remain behind, too. Aside from anything else, Corlan Dashiva was glowering and muttering under his breath as he so often did. Everyone was aware that saidin drove men mad sooner or later, and plain-faced Dashiva certainly looked the part, lank untrimmed hair flying in the wind, licking his lips and shaking his head. For that matter, Eben Hopwil, just sixteen and still with a few scattered blotches on his cheeks, wore a staring frown that gazed beyond anything in sight. At least Rand knew the why of that.
As the Asha’man drew near, Rand could not help cocking his head to listen, though what he listened for was inside his head. Alanna was there, of course; neither the Void nor the Power altered that a whisker. Distance wore that awareness down to just that—awareness that she existed, somewhere far to the north—yet there was something more today, something he had felt several times recently, dim and barely on the edge of notice. A whisper of shock, perhaps, or outrage, a breath of something sharp he could not quite grasp. She must feel whatever it was very strongly for him to be even that conscious of it at this distance. Maybe she was missing him. A wry thought. He did not miss her. Ignoring Alanna was easier than it had been once. She was there, but not the voice that used to shout of death and killing whenever an Asha’man came into sight. Lews Therin was gone. Unless that feel of someone staring at the back of his head, brushing his shoulder blades with a finger, was him. Was there a madman’s hoarse laughter deep in his thoughts? Or was it his own? The man had been there! He had!
He became aware of Marcolin staring at him, and Gregorin trying very hard not to. “Not yet,” he told them wryly, and almost laughed when they clearly understood right away. Relief was too plain on their faces for anything else. He was not insane. Yet. “Come,” he told them, and started Tai’daishar down the slope at a trot. Despite the men following, he felt alone. Despite the Power, he felt empty.
Between the ridge and the hills lay patches of thick scrub and long stretches of dead grass, a glistening mat of brown and yellow beaten flat by the rain. Only a few days ago the ground had been so parched that he had thought it could drink a river without changing. Then the torrents came, sent by the Creator finding mercy at last, or maybe by the Dark One in a fit of black humor; he did not know which. Now the horses’ hooves splashed mud at every second step. He hoped this did not take long. He had some time, by what Hopwil had reported, but not forever. Perhaps weeks, if he was lucky. He needed months. Light, he needed years he would never have!
His hearing heightened by the Power, he could make out some of what the men behind him were saying. Gregorin and Marcolin rode knee-to-knee, trying to hold their cloaks against the wind and speaking in low tones about the men ahead, about their fears the men might fight. Neither doubted they would be crushed if they resisted, but they feared the effect on Rand, and his on Illian, if Illianers fought him now that Brend was dead. They still could not bring themselves to give Brend his true name, Sammael. The very notion that one of the Forsaken had ruled in Illian frightened them even more than the fact that the Dragon Reborn ruled there now.
Dashiva, slumped in his gray’s saddle like a man who had never seen a horse before, muttered angrily under his breath. In the Old Tongue, which he spoke and read as fluently as a scholar. Rand knew a little, though not enough to understand what the fellow was mumbling. Probably complaints about the weather; despite being a farmer, Dashiva disliked being out-of-doors unless the skies were clear.
Only Hopwil rode in silence, frowning at something beyond the horizon, his hair and cloak whipping about as wildly as Dashiva’s. Now and then he clutched the hilt of his sword unconsciously.
Rand studied him. The young man—not a boy any longer, no matter his age—had filled out since Rand first saw him, though his nose and ears still seemed made for a bigger man. A Dragon, red-enameled gold, now balanced the silver Sword on his high collar, just like Dashiva’s. Once, he had said he would laugh a year for joy when the Dragon was his, but he stared unblinking at Rand as though looking through him.
“What you learned was good news,” Rand told him. Only an effort kept him from trying to crush the Dragon Scepter in his fist. “You did well.” He had expected the Seanchan to return, but not so soon. He had hoped not so soon. And not leaping out of nowhere, swallowing cities at a gulp. When he found out that merchants in Illian had known for days before any of them thought to inform the Nine—the Light forbid they should lose a chance at profit because too many knew too much!—he had been within a hair of scouring the city to its foundations. But the news was good, or as good as it could be in the circumstances. Hopwil had Traveled to Amador, to the countryside nearby, and the Seanchan appeared to be waiting. Perhaps digesting what they had consumed. The Light send they choked on it! He forced his grip to loosen on the length of Dragon-carved spearhead. “If Morr brings half as good, I have time to settle Illian before dealing with them.” Ebou Dar, as well! The Light burn the Seanchan! They were a distraction, one he did not need and could not afford to ignore.
Hopwil said nothing, only looked.
 Desora, of the Musara Reyn, and Lamelle, of the Smoke Water Miagoma, and . . . Rand forced down the instinctive litany even as it began floating across the Void. New names had appeared on that list, names he did not remember adding. Laigin Arnault, a Red sister who had died trying to take him a prisoner to Tar Valon. Surely she had no right to a place, but she had claimed one. Colavaere Saighan, who had hanged herself rather than accept justice. Others. Men had died in thousands, by his order or by his hand, but it was the faces of the women that haunted his dreams. Each night, he made himself confront their silently accusing eyes. Maybe it was their eyes he had felt of late.
“I told you about damane and sul’dam,” he said calmly, but inside of him, rage flared, fire spiderwebbing around the emptiness of the Void.    He did not say that Hopwil should have avoided them, avoided the need to kill them. Too late for that. “I doubt that damane even knew how to shield a man. You had no choice.” And better they were all dead than some escaping with word of a man who could channel, scouting them.
Absently, Hopwil touched his left sleeve, where the black color disguised fire-scarred wool. The Seanchan had not died easily or fast. “I piled the bodies in a hollow,” he said in a flat voice. “The horses, everything. I burned it all to ash. White ash that floated in the wind like snow. It didn’t bother me at all.”
Rand heard the lie on the man’s tongue, but Hopwil had to learn. After all, he had. They were what they were, and that was all there was to it. All there was. Liah, of the Cosaida Chareen, a name written in fire. Moiraine Damodred, another name that seared to the soul rather than merely burning.
“Majesty,” Gregorin said loudly, pointing ahead. A lone man came out of the trees at the foot of the nearest hill to stand waiting in an attitude of defiance. He carried a bow, and wore a pointed steel cap and a belted mail shirt that hung nearly to his knees.
Rand spurred Tai’daishar to meet him seething with the Power. Saidin could protect him from men.
Up close, the bowman did not make so brave a sight. Rust streaked his helmet and mail, and he looked sodden, mud to his thighs, damp hair trailing down a narrow face. Coughing hollowly, he scrubbed at a long nose with the back of his hand. His bowstring appeared taut, though; that, he had protected from the rain. And the fletchings on the arrows in his quiver looked dry, too.
“Are you the leader here?” Rand demanded.
“You might say I do speak for him,” the narrow-faced man replied warily. “Why?” As the others galloped up behind Rand, he shifted his feet, dark eyes like a cornered badger’s. Badgers were dangerous, cornered.
“Watch your tongue, man!” Gregorin snapped. “You do speak to Rand al’Thor, the Dragon Reborn, Lord of the Morning and King of Illian! Kneel to your King! What do your name be?”
“He do be the Dragon Reborn?” the fellow said doubtfully.  “And Lord of the Morning, you do say? Our King did never style himself so.” He made no move toward kneeling, or giving his name. Gregorin’s face darkened at the man’s tone, and maybe at the man’s oblique denial of Rand as King. Marcolin gave a slight nod, as though he had expected no more.
Damp rustlings stirred in the undergrowth among the trees. Rand heard easily, and abruptly he felt saidin fill Hopwil. No longer staring at nothing, Hopwil studied the woodline intently, a wild light in his eyes. Dashiva, silent, raking dark hair out of his face, looked bored. Leaning forward in his saddle, Gregorin opened his mouth angrily. Fire and ice, but not yet death.
“Peace, Gregorin.” Rand did not raise his voice, but he wove flows to carry his words, Air and Fire, so they boomed against the wall of trees. “My offer is generous.” The long-nosed man staggered at the sound, and Gregorin’s horse shied. Those hidden men would hear clearly. “Lay down your arms, and those who want to return home, can. Those who want to follow me instead, can do that. But no man leaves here under arms unless he does follow me. I know most of you are good men, who answered the call of your King and the Council of Nine to defend Illian, but I am your King, now, and I’ll not have anyone tempted to turn bandit.” Marcolin nodded grimly.
“What about your Dragonsworn burning farms?” a man’s frightened voice shouted from the trees. “They do be flaming bandits!”
“What about your Aiel?” another called. “I do hear they carry off whole villages!” More voices from unseen men joined in, all shouting the same things, Dragonsworn and Aiel, murderous brigands and savages. Rand ground his teeth.
When the shouting faded, narrow-face said, “You do see?” He paused to cough, then hawked and spat, maybe for his chest and maybe for emphasis. A pitiful sight, all wet and rust, but his backbone was as tight as his bowstring. He ignored Rand’s glare as easily as he did Gregorin’s. “You do ask us to go home unarmed, unable to defend ourselves or our families, while your people do burn and steal and kill. They do say the storm be coming,” he added, and looked surprised that he had, surprised and confused for a moment.
“The Aiel you’ve heard about are my enemies!” Not spider-webs of flame this time, but solid sheets of fury that wrapped tight around the Void. Rand’s voice was ice, though; it roared like the crack of winter. The storm was coming? Light, he was the storm! “My Aiel are hunting them down. My Aiel hunt the Shaido, and they and Davram Bashere and most of the Companions hunt bandits, whatever they call themselves! I am the King of Illian, and I will allow no one to disrupt the peace of Illian!”
“Even if what you say do be true,” narrow-face began.
“It is!” Rand snapped. “You have until midday to decide.” The man frowned uncertainly; unless the roiling clouds cleared, he might have a difficult time knowing midday. Rand gave him no relief. “Decide wisely!” he said. Whirling Tai’daishar about, he spurred the gelding to a gallop back toward the ridge without waiting for the others.
Reluctantly he let go of the Power, forced himself not to hang on like a man clutching salvation with his fingernails as life and filth drained from him together. For an instant, he saw double; the world seemed to tilt dizzily. That was a recent problem, and he worried it might be part of the sickness that killed men who channeled, but the dizziness never lasted more than moments. It was the rest of letting go that he regretted. The world seemed to dull. No, it did dull, and became somehow less. Colors were washed-out, the sky smaller, compared to what they had been before. He wanted desperately to seize the Source again and wring the One Power out of it. Always it was so when the Power left him.
No sooner had saidin gone, though, than rage bubbled in its place, white-hot and searing, nearly as hot as the Power had been. The Seanchan were not enough, and brigands hiding behind his name? Deadly distractions he could not afford. Was Sammael reaching out from the grave? Had he sown the Shaido to sprout like thorns wherever Rand laid a hand? Why? The man could not have believed he would die. And if half the tales Rand heard were true, there were more in Murandy and Altara and the Light alone knew where! Many among the Shaido already taken prisoner had spoken of an Aes Sedai. Could the White Tower be involved somehow? Would the White Tower never give him peace? Never? Never.
Battling fury, he was blind to Gregorin and the rest catching up. When they topped the ridge among the waiting nobles, he drew rein so abruptly that Tai’daishar reared, pawing the air and flinging mud from his hooves. The nobles edged their mounts back, from his gelding, from him.
“I gave them to midday,” he announced. “Watch them. I don’t want this lot breaking into fifty smaller bands and slipping away. I’ll be in my tent.” Except for wind-tossed cloaks they might have been stone, rooted to one spot as if he meant the command to watch for them personally. At that moment, he did not care if they stayed there till they froze or melted.
Without another word he trotted down the back slope of the ridge, followed by the two black-coated Asha’man and his Illianer banner-bearers. Fire and ice, and death was coming. But he was steel. He was steel.


Crimson Defense meets every Wednesday at 5:30pm in Bevill 1066 starting January 25th. As meeting topics become locked-in, they will be posted on Discord and sent to the mailing list. You can also manually check the schedule on our calendar.
Some previous topics we have studied include denial of service attacks, malware analysis, nmap scans, SQL injection, Try Hack Me boxes, and company visits
On the off weeks, we still plan to meet at the same time in the same room for our competition team! Each semester, we compete in the National Cyber League CTF as well as at least one other kind of challenge. In the past, we have competed in SECCDC, Hivestorm, and others.
Join our Discord communication workspace to learn more about the club. We will on occasion/request post Zoom links to join meetings live or watch recordings of later.
Go to our Google Drive to find Kali Linux and Windows XP virtual machines available for download, as well as screen recordings of some of our demo’s.
Join our Github to find a comprehensive beginner’s guide. To access the guide, simply scroll down on the main page, past the large logo.
Teach real, applicable security skills (penetration testing, malware analysis, etc.)
Advocate for cyber security curriculum at the University of Alabama. Our work in this area has helped to create the new College of Engineering Cyber Security Major and Computer Science Concentration in Cyber Security at UA!
Compete in Cyber Security Competitions at the local, state, and national level. We typically participate in the NCL CTF and one other different competition each semester.


Part II of this book present complete Slogan programs that perform useful real-world tasks. These programs will also illustrate how to write good Slogan code.
The first program we study will demonstrate how to take textual data as input, do some processing
and output the result. This example is inspired by the AWK
programming language which is an important component of the UNIX programming environment. The program we are going to develop
will read "records" from an input file and process each record by calling a function defined by the user. A record is defined as
a single line in the file, with each entry separated by spaces. As an example, the following listing shows a file (named emp.dat
)
with five records. Each record has three elements: the name, hourly rate and total hours worked by an employee.
Mark 45 12
Susan 56 10
Matt 67 14
Jake 45 0
Jones 34 15
Our program will enable the user to generate a report of total wage payable to each employee by writing a function like this:
function action(name, hourly_rate, hours_worked)
when(hours_worked > 0)
showln(name, " ", hourly_rate * hours_worked)
To prepare the arguments for calling the action
function, each line in the input file has to be processed as follows:
true
or false
), convert that into the corresponding boolean value.action
to the elements.The algorithm described above is captured by the following handle_lines
function:
function handle_lines()
let (line = read_line(input))
when (not(is_eof_object(line)))
{ apply(action, map(parse_token, string_split(line)))
handle_lines() }
Handle_lines
call the utility parse_token
to convert appropriate individual elements to numbers and boolean values:
function parse_token(t)
if (char_is_numeric(t[0]) || t[0] == \.)
try string_to_number(t)
catch (_) t
else if (t == "true") true
else if (t == "false") false
else t
As mentioned earlier, the logic to process each record is expressed by the action
function defined by the user.
How can we load this user defined function into our data processor? One way is to let the user write this function as a Slogan script and pass
this script's name as a command line argument to the program. This script can then be dynamically loaded and evaluated. Thus all
definitions in the script are made available to the program. The following code snippet shows how to get the script name from
the command line, then load and evaluate it:
// ignore the first command line argument, which is the program's name.
let args = rest(command_line())
if (is_empty(args))
error("expected script name as command line argument")
else
reload(first(args))
The only thing that remains to be done is to initialize the global variable input
to point to the data file. This file's name is also
accepted by the program as a command line argument. If no data file is specified by the user, input
will default to the standard
input.
args = rest(args)
let input = current_reader()
when (not(is_empty(args)))
input = file_reader(first(args))
That finishes our text file processor! The full listing of the program is available in the script awk.sn. This can be compiled into a stand-alone program by running the command:
$ slogan -x awk
User defined action
functions can now be written as separate scripts and fed to this program along with the data file to process.
For example, we can save the original action
function in a script called "myaction.sn" and run it on the "emp.dat" file.
// myaction.sn
function action(name, rate_per_hour, total_hours)
when (total_hours > 0)
showln(name, " ", rate_per_hour * total_hours)
$ ./awk myaction.sn emp.dat
//> Mark 540
Susan 560
Matt 938
Jones 510
Exercise 14.1. Modify the data processor to accept multiple data files as input. This means the command line interface has
to be extended as: ./awk action.sn data1 data2 ...dataN
. The action
function should be applied to records in each file
sequentially.
Exercise 14.2. Make the name of the data file that is currently being processed available to the action
function.
Exercise 14.3. Update the handle_lines
function to report invalid inputs with user-friendly messages
and make a clean exit.
Exercise 14.4. The data processor can only deal with records where elements are separated by spaces. Change the program in such a way that the delimiter character can be specified by the user.


The example below shows a simple instant messaging application. To test it out, input a username and hit "send" to sign in. You will then be able to see any other users who are currently signed in and send messages to individual users or the entire group. You can also change your status and see the status of other users. If you're working solo, you can open this page in multiples tabs/windows and sign in with different usernames to see the full functionality in action. For a bit more excitement, try entering an email address associated with a Gravatar account!
For a full write-up on the architecture of this application, check out the README.


{% extends "organizing_hub_layout.html" %} {% load bootstrap3 django_bootstrap_breadcrumbs organizing_hub_tags %} {% block page_title %}Our Revolution - Confirm Email Verification{% endblock %} {% block breadcrumbs %} {{ block.super }} {% breadcrumb "Confirm Email Verification" request.get_full_path %} {% endblock %} {% block content_heading %}Confirm Email Verification{% endblock %} {% block content %} {% with center_header=True %} {{ block.super }} {% endwith%}
Please confirm that you requested email verification for your account and {{ email }} is the correct email.
{% endwith %} {% else %}This email confirmation link is expired or invalid. Please submit a new email verification request .
{% endif %}


Natalie Abrahami. Photo by Johan Persson
Happy Days by Samuel Beckett and Ah, Wilderness! by Eugene O'Neil
Tinuku Craig.  Photo by Rob Logan
The Island by Athol Fugardn
Far and Away by Carol Churchill
Anna Girvan.
Public Enemy - Richard Jones
A Season in the Congo - Joe Wright
The Scottsboro Boys - Susan Stroman
Beauty and the Beast - Phelim McDermott
Happy Days (2014 - ) - Natalie Abrahami
A View from a Bridge - Ivo van Hove
A Streetcar Named Desire - Benedict Andrews
The Cherry Orchard - Katie Mitchell
Happy Days (2015) - Natalie Abrahami
Ah, Wilderness! - Natalie Abrahami
The Trial - Richard Jones
This scheme is generously supported by Jerwood Charitable Foundation
Emerald Crankson. Photo by Helen Murray
Public Enemy - Richard Jones
A Season in the Congo - Joe Wright
Sizwe Banzi is Dead - Matthew Xia
The Island - Alex Brown
A View from the Bridge - Ivo Van Hove
dirty butterfly - Tinuke Craig
Far Away - Kate Hewitt
The Web Research & Development - Matthew Xia
The Web Research & Development - Justin Audibert
The Web Research & Development - Gbolahan Obisesan
The Web Research & Development - Ria Parry
Ah, Wilderness! - Natalie Abrahami
The Trial - Richard Jones


Multi-Machine
Vagrant is able to define and control multiple guest machines per Vagrantfile. This is known as a "multi-machine" environment.
These machines are generally able to work together or are somehow associated with each other. Here are some use-cases people are using multi-machine environments for today:
- Accurately modeling a multi-server production topology, such as separating a web and database server.
- Modeling a distributed system and how they interact with each other.
- Testing an interface, such as an API to a service component.
- Disaster-case testing: machines dying, network partitions, slow networks, inconsistent world views, etc.
Historically, running complex environments such as these was done by flattening them onto a single machine. The problem with that is that it is an inaccurate model of the production setup, which can behave far differently.
Using the multi-machine feature of Vagrant, these environments can be modeled in the context of a single Vagrant environment without losing any of the benefits of Vagrant.
Defining Multiple Machines
Multiple machines are defined within the same project Vagrantfile using the config.vm.define
method call. This configuration directive is a little funny, because it creates a Vagrant configuration within a configuration. An example shows this best:
Vagrant.configure("2") do |config|
config.vm.provision "shell", inline: "echo Hello"
config.vm.define "web" do |web|
web.vm.box = "apache"
end
config.vm.define "db" do |db|
db.vm.box = "mysql"
end
end
As you can see, config.vm.define
takes a block with another variable. This variable, such as web
above, is the exact same as the config
variable, except any configuration of the inner variable applies only to the machine being defined. Therefore, any configuration on web
will only affect the web
machine.
And importantly, you can continue to use the config
object as well. The configuration object is loaded and merged before the machine-specific configuration, just like other Vagrantfiles within the Vagrantfile load order.
If you're familiar with programming, this is similar to how languages have different variable scopes.
Controlling Multiple Machines
The moment more than one machine is defined within a Vagrantfile, the usage of the various vagrant
commands changes slightly. The change should be mostly intuitive.
Most commands, such as vagrant up
, begin requiring the name of the machine to control. Using the example above, you could say vagrant up web
, or vagrant up db
. If no name is specified, it is assumed you mean to perform that operation on every machine. Therefore, vagrant up
alone will bring up both the web and DB machine.
Additionally, you can specify a regular expression for matching only certain machines. This is useful in some cases where you specify many similar machines, for example if you're testing a distributed service you may have a master
machine as well as a slave0
, slave1
, slave2
, etc. If you want to bring up all the slaves but not the master, you can just do vagrant up /slave[0-9]/
. If Vagrant sees a machine name within forward slashes, it assumes you're using a regular expression.
Communication Between Machines
In order to faciliate communication within machines in a multi-machine setup, the various networking options should be used. In particular, the private network can be used to make a private network between multiple machines and the host.
Specifying a Primary Machine
You can also specify a primary machine. The primary machine will be the default machine used when a specific machine in a multi-machine environment is not specified.
To specify a default, machine, just mark it primary when defining it. Only one primary machine may be specified.
config.vm.define "web", primary: true do |web|
# ...
end


I have some experiences (maybe around 2years?) in "teaching" (or sharing things I know). Things I love to share are tentatively related along the lines of programming, AI, mathematics (and life and philosophy I guess). So, you can call me a learner, teacher, preacher, knowledge sharing entity, mentor. Or an existence observing the universe. Whatever it is, learning is a never-ending journey.
These slides are used for teaching AI for JEC from May-July 2019.
There aren't any slides for few chapters since I taught them using whiteboard and other better references.
These aren't the BEST resources you can find in the internet, but are meant to be taken as abstract concepts for the course.


CPU usage 3.03% of 1 CPU(s)
Memory usage 4.18% (209.10 MiB of 4.88 GiB)
SWAP usage 0.00% (0 B of 512.00 MiB)
Bootdisk size 46.18% (5.43 GiB of 11.75 GiB)
CPU usage 4.11% of 3 CPU(s)
Memory usage 2.75% (164.71 MiB of 5.86 GiB)
SWAP usage 0.00% (0 B of 512.00 MiB)
Bootdisk size 6.59% (1.61 GiB of 24.48 GiB)
CPU usage 0.15% of 3 CPU(s)
Memory usage 0.37% (30.18 MiB of 8.00 GiB)
SWAP usage N/A
Bootdisk size 0.80% (798.83 MiB of 97.93 GiB)
CPU usage 5.31% of 1 CPU(s)
Memory usage 1.96% (20.08 MiB of 1.00 GiB)
SWAP usage N/A
Bootdisk size 67.85% (1.29 GiB of 1.91 GiB)


We will start this Exchange alphabet blog series with ActiveSync.
Using ActiveSync you will be able to synchronize your mailbox content with mobile devices which support ActiveSync. The ActiveSync feature was originally introduced in Exchange 2000 besides the Outlook Mobile Access (OMA). The last one has been a way for a while but was introduced again with Exchange 2010 SP2 but is not included with Exchange 2013 anymore.
But what is the advantage of ActiveSync compared to other protocols which can be used to sync the content of your mailbox? ActiveSync has the ability to apply policies to mobile devices which include but are not limited to: require a PIN to unlock the phone, disable features of the phone, require encryption of the storage cards, etc. We will have a look at these option and how to configure them later in this article.
How it works
Let’s start with having a look how ActiveSync works.
ActiveSync uses a Direct Push to keep the mobile device up-to-date via the wireless or cellular connection. The Direct Push feature is enabled by default in Exchange 2013. When a mobile device is configured to use ActiveSync and supports the Direct Push technology it issues a long-lived HTTPS request to the Exchange server. In the Technet documentation for Exchange this is sometimes called a PING. With this request the server is informed to send notifications when items change in any folder which the mobile device is configured to sync. This is done the first 15-minutes and is also called the heartbeat interval.
After this 15 minutes the server sends a HTTP 200 OK to device if no items has been changed. When the device receives this response it wakes up and issues another request which restarts the process from sending a long-lived HTTPS request.
But what happens if a change is detected in the mailbox within the 15-minute timespan? For example a new mail is received in the mailbox? In this case the server will send a response to the mobile device that there is a new item and provides the name of the folder where the item resides. Once the mobile device has received this response it will issue a synchronization request for the specific folder. When the synchronization has completed the mobile device issues a new PING request and the process of the long-lived HTTPS request restarts.
The same is valid for items which have changed in the mailbox. OK now we know how ActiveSync works let’s have a look what the requirements are for the network infrastructure.
To make the ActiveSync feature available for end users you will need to open port 443 on your firewall. In most cases you won’t publish Exchange directly to the internet so traffic will first arrive at a reverse proxy and then is forwarded to the Exchange server.
But what about the long-lived HTTPS session does that require any changes to the network-infrastructure? Ideally you would like to change the time-out of your firewall from 15 minutes to 30 minutes. But what if you firewall or maybe the mobile service provider doesn’t support this maximum time-outs? Or maybe organizational policies won’t allow the time-out for HTTPS to be changed to such a long time. Will this cause that ActiveSync won’t work? Well not exactly if the network doesn’t support these high time-out values ActiveSync will act as follows.
Let’s assume that your mobile provider only supports 10 minutes.
The device will send the long-lived HTTPS request to the server. After 15 minutes the device hasn’t received a reply from the Exchange server the device will assume that the connection was timed-out by the network.
In this case the device will send another HTTPS request but changes the heartbeat internal to 8 minutes. After 8 minutes the device receives a response HTTP 200 OK message from the server. The device will try if a higher heartbeat interval is possible. It will send another HTTPS request and changes the heartbeat internal to 12 minutes.
Since the mobile provider only supports 10 the mobile device will not receive a HTTP 200 OK from the server. So after 12 minutes the mobile will assume a network error and will send a long-live HTTPS request only then with a heartbeat interval of 8 minutes.
Environment requirements
So what are the requirements before you can use ActiveSync? I will keep this part short as we already discussed most things in the previous paragraph. The requirements for using ActiveSync are:
- Exchange is published to the internet (recommended via a reverse proxy)
- User is enabled for ActiveSync (which is by default)
- User does have an ActiveSync compatible device
- A valid certificate has been installed on your Exchange server (and on your reverse proxy if applicable)
The first one is the one which might caught your attention. As you may know Microsoft has announced that they won’t continue their ForeFront Threat Management Gateway (TMG for short). So if you haven’t got one in place you will need to select another product which can be used as a reverse proxy. Once of the solutions which has been announced is from KEMP Technologies. They will come with an update for their Load Balancers which makes it possible to publish Exchange via a secure way. So if you are planning to buy load balancers please take a look at the website of KEMP Technologies for more information. The update is planned to be available the Q1 of 2013.
Configuring
Configuring ActiveSync consists of a few steps:
- Configure the ActiveSync url
- Configure the Mobile Device Mailbox Policy
Both steps can either be performed by using the Exchange Admin Center (EAC) or the Exchange Management Shell (EMS).
Configuring via the EAC can be done by performing the following steps:
- Open the EAC
- Select servers
- Select virtual directories
- Select the _Microsoft-Server-ActiveSync _entry
- Click on the Edit button
Modify both the internal and external URL so they contain the correct FQDN you are using to publish your Exchange server.
The same step can be performed by using the _Set-ActiveSyncVirtualDirectory _cmdlet using the EMS:
Set-ActiveSyncVirtualDirectory -Identity “ex01\Microsoft-Server-ActiveSync” -Internalurl https://mail.myuclab.nl/Microsoft-Server-ActiveSync -Externalurl https://mail.myuclab.nl/Microsoft-Server-ActiveSync
Next step is to modify the Mobile Device Mailbox Policy, in Exchange 2007/2010 this was called the ActiveSync Mailbox Policy. Compared to these policies the policy options might look limited Exchange 2013 when looking at the GUI:
So the disabling features on devices is not possible anymore via the GUI. But in the EMS you can enable/disable a lot of more options which we will not discuss in this article because it’s a pretty long list. A few examples are:
- DisableRemovableStorage
- DisableIrDA
- DisableDesktopSync
- BlockRemoteDesktop
- BlockInternetSharing
For a complete overview have a look at this TechNet article.
If you are using Windows Phone 7 devices you must pay attention to the following.
If you want to let these devices sync their mailbox content either allow non provisionable devices or do not enable the previous mentioned options plus following options:
- PasswordRequired
- MinPasswordLength
- IdleTimeoutFrequencyValue
- DeviceWipeThreshold
- AllowSimplePassword
- PasswordExpiration
- PasswordHistory
- DisableRemovableStorage
- DisableIrDA
- DisableDesktopSync
- BlockRemoteDesktop
- BlockInternetSharing
So let’s assume we want to create a policy which:
- Allows Bluetooth
- Allow Browser usage
- Allows Camera usage
- Requires a password
- Enables password recovery options
- Allows Wifi
We will call this policy IT because it will be a policy applied to all users in the IT department. To create the new policy we will use the _New-MobileDeviceMailboxPolicy _cmdlet:
New-MobileDeviceMailboxPolicy -Name:”IT” -AllowBluetooth:$true -AllowBrowser:$true -AllowCamera:$true -PasswordEnabled:$true -AlphanumericPasswordRequired:$true -PasswordRecoveryEnabled:$true -AllowWiFi:$true
Once the policy is configured either via EAC or EMS we need to assign it to a user, there is one exclusion for this. The Mobile Device Mailbox Policy called _Default _which will be assigned to all users which will not match another policy.
Via the EAC you will need to complete this steps:
- Select Recipients
- Select Mailboxes
- Select the mailbox which you would like to modify
- In the details pane scroll to the _Phone and Voice Features _select _View details _to display the Mobile Device Details screen
- Press _browse _and select the correct policy
- Click _OK _to close the window
Via the EMS you can do it like this:
| _Get-Mailbox | where { $_.Department -eq “IT” } | _ |
Set-CASMailbox -activesyncmailboxpolicy(Get-ActiveSyncMailboxPolicy “IT”).Identity
After these things has been configured it’s time to connect your device to you Exchange environment. On most devices you can use the Autodiscover functionality from Exchange to configure your device the easy way. But what if it doesn’t work? Then it is tome for some troubleshooting.
Troubleshooting
For troubleshooting there are a few things which can help you. If you just have built your environment you might want to have a look at the Remote Connectivity Analyzer from Microsoft. This tool gives you a detailed result which helps you to identity the issue easily.
Besides this tool you could have a look at the IIS logging. But keep in mind that these logs are not only used for Activesync but for all Web Services of Exchange. Starting from Exchange 2013 Exchange contains several built-in test functionalities. These test functionalities also cause a lot of IIS logging. So to filter out only ActiveSync related logging it might be handy to filter the logs. This can be done by using the _Export-ActiveSyncLog _cmdlet, for example:
Export-ActiveSyncLog -Filename:”c:\Inetpub\logs\LogFiles\W3SVC2\u_ex130111.log” -StartDate:”2013-1-11″ -EndDate:”2013-1-12″ -UseGMT:$true -OutputPath:”c:\exreports\eas\”
The cmdlet above will export all ActiveSync related logging from the 11 th and 12th of January. All results will be exported to a directory called eas.
When looking in the directory after running the cmdlet you will see a couple of files have been created:
So which information is included in each file:
- Servers.csv: does include the average unique devices and hits per server**
- Hourly.csv: ActiveSync activity hour-by-hour**
- StatusCodex.csv: overview of status codes issued in response to ActiveSync requests summarized per status code**
- PolicyCompliance.csv: overview on device compliance with ActiveSync policy**
- UserAgents.csv: gives an overview of hits and unique devices per user agent**
The last tool is not really a troubleshooting tool but more a tool to generate nice reports. To generate these reports you could use the Log Parser from Microsoft.
As my test environment doesn’t contain a lot of interesting information I generated it on another Exchange server.
I used the following cmdlet:
logparser “SELECT cs(user-agent), count(*) as Devices into chart.gif from c:\inetpub\logs\logfiles\w3svc1\u_ex*.log WHERE cs-uri-stem LIKE ‘%microsoft-server-activesync%’ and cs-username is NOT NULL GROUP BY cs(User-Agent) ORDER BY Devices desc” -charttype:pieexploded3d -ChartTitle:”Device Activity by Type” -categories:OFF
Using this cmdlet we can generate the following report:
Here ends the first blog in the Exchange ABC series. In this blog we did have a look at ActiveSync: how it works, how you can configure it and troubleshoot it.
Below you will find some useful links to sites containing ActiveSync related information.
Useful links:
Publishing Exchange Server 2013 using TMG:
Enabling Exchange ActiveSync’s Quarantine Features in an existing organization
http://www.stevieg.org/2013/01/implementing-exchange-activesyncs-quarantine-features/
Understanding Export-ActiveSyncLog:
http://www.windowsitadmin.com/2012/02/02/understanding-export-activesynclog-part-1-2/
Reporting on Mobile Device Activity Using Exchange 2007 ActiveSync Logs:
More fun with Logparser and Exchange logs:
http://blogs.technet.com/b/exchange/archive/2007/09/12/3403903.aspx


|
Figure 1
|
a) Schematic illustration of the band structure of CdSe QDs ... |
|
Figure 2
|
a) Schematics of a CdSe/CdS dot‐in‐rod nanostructure, along ... |
|
Figure 3
|
a) Illustration for the three oscillators and b) the emissio ... |
|
Figure 4
|
Anisotropy (open circles, red curve) and absorption (black c ... |
|
Figure 5
|
Snapshots of QRs in the thixotropic suspension at each step ... |
|
Figure 6
|
a) Optical micrograph of a typical device used for the elect ... |
|
Figure 7
|
A sketch of the technique developed for the deposition of or ... |
|
Figure 8
|
a) Schematics of the rubbing process—a rubbing cloth is pres ... |
|
Figure 9
|
a) Films consisting of red‐luminescent CdSe/CdS QRs (i, ii, ... |
|
Figure 10
|
CdS QRs aligned in the nanofiber sheets by electrospinning. ... |
|
Figure 11
|
a) Process flow to fabricate QREFs by photoalignment technol ... |
|
Figure 12
|
Pattern photoalignment of the light‐emitting CdSe/CdS QRs. a ... |
|
Figure 13
|
a) The common LCD architecture, with an indication of the co ... |
|
Figure 14
|
Comparison of LCDs equipped with different BLUs. a) White li ... |
|
Figure 15
|
Contemporary QD‐based BLU configurations for the LCDs: a) QD ... |
|
Figure 16
|
Scheme of a QD enhanced active color filter array. Reproduce ... |
|
Figure 17
|
a) Anisotropic absorption and emission from a single core‐sh ... |
|
Figure 18
|
LC cell employing CdSe/CdS@SiO 2@polymer nanofibers and corr ... |
|
Figure 19
|
Strategies to generate emission contrast from photoaligned Q ... |
|
Figure 20
|
Comparison of the color performance of two LCDs equipped wit ... |
|
Figure 21
|
Color gamut optimization for the QD LCD in a) 1931 color spa ... |


I'm a Tourist!
All About This App
For your convenience, I've laid out the features that are absolutely working, and those that aren't in the following bullet points. Of course, I go into a lot more detail in the write-up, but this should hopefully help the marking process.
This is of course is to the best of my knowledge and my testing, and I've tried to be as thorough as I can be. The code is also really well commented, so feel free to look in there if you want to get more context on something. If I've missed anything, it's because of human mistake, sorry!
Record List Functionality 100% complete with some slight quirks
- Tourists can add notes in a text area.
- There must be a button to allow the tourist to open the camera and take a picture.
- The tourist can see the image on the page and can then decide whether to save or cancel the page entry.
- The tourist should be able to take the picture again if they are not happy with the first attempt.
- The saved data is then saved in the database.
Record List Quirks and Issues
- The camera button only allows for image upload on Phonegap/Cordova and on desktop. On mobile browsers, it allows for camera usage as expected.
- Should geolocation fail, or be refused permission, the app will generate a random (but semantically correct) set of coordinates.
List Visits Functionality 100% complete with a minor quirk
- This displays a list of visits in date/time order.
- A filter field should be included.
- Each row should show the date/time, the short description, and a thumbnail image.
- Clicking on the short description replaces the page with the full description.
List Visits Quirks and Issues
- On Phonegap/Cordova and on mobile browsers, the ordering of entries is correct. On desktop, it is back-to-front.
Map Functionality 80% complete with a significant bug
Paragraph for explanation here. The map loads on Phonegap/Cordova only, and not on mobile browsers or on desktop. The pins do not render properly due to what I suspect is a scope problem where data is not being correctly returned to the calling function, and leaving an array uninitialised. The fallback is to leave a default entry for the person's current location without adding the other locations. The algorithm for generating the pins is present and working, but because data isn't being passed correctly, it doesn't fully work. If the data could be passed properly, it would be fully working.
Flair
- Real Twitter embed included on the homepage, but doesn't always work on Phonegap/Cordova due to Android security settings.
- The use of the jQuery Mobile Validation library alongside HTML5 validation.
- Use of HTML5 APIs and ES6 JavaScript where possible.


Stormy Daniels Trolls POTUS, Joins Rapper YG on Stage to Sing ‘F*ck Donald Trump’
Adult film star Stormy Daniels claims to have received hush money from Donald Trump after she had a sexual encounter with him more than a decade ago; however, the US President vehemently denies the affair.
California rapper YG invited Stormy Daniels on stage to join him in singing his song “F**k Donald Trump” during an appearance at a Los Angeles music festival over the weekend.
Expletive-Packed Song
Rap star YG, whose real name is Keenon Daequan Ray Jackson, drew adult film star Stormy Daniels on stage in the middle of his performance at the Camp Gnaw Flog Carnival at Dodger Stadium.
The 29-year-old rapper said:
“I want you to say your name and say F**k Donald Trump.”
Daniels, whose real name is Stephanie Clifford, took the microphone and addressed the crowd:
“My name is Stormy f***ing Daniels and I am the reason Donald Trump is f***ed.”
The rapper asked the porn star if she really slept with Donald Trump, in a reference to her alleged affair with the US President, to which she replied:
“No, I just laid there.”
Stormy Daniels, 40, then sang and danced with YG as the song “FDT” played.
Fans on social media responded immediately, with many disapproving of the rapper’s provocative move.
Other netizens voiced their disapproval of Stormy Daniel’s antics on stage.
Some on social media applauded the incident.
The expletive packed song “FDT” initially prompted a Secret Service investigation following its release, with YG telling TMZ at the time:
“Secret Service hollering at the label. They asked to see the lyrics on my album to see if I’m talking about Trump on my album, because if I’m talking about him on my album they’re going to try and take it off the shelves.”
The rapper had said his song was a means of reaching out to young people and getting them to vote.
Adult film actress Stormy Daniels made headlines in 2018 by claiming she had a sexual encounter with Donald Trump back in 2006 when he was already married to Melania and later receiving hush money.
Trump's representing lawyer, Michael Cohen, plead guilty to wiring $130,000 to Daniels during the 2016 elections in violation of campaign finance laws, to silence her from speaking about her alleged intimate encounter with Trump, and was sentenced to three years in jail later that year.
Donald Trump has denied the alleged affair and repeatedly claimed he had no knowledge of the hush money payments.


The this keyword represents different objects depending on what object called the function.
this represents:
See the difference before and after the button is clicked.
The this keyword represents the HeaderArrow object.


{% extends "navbar.html" %} {% block body %}
--- Hi, I'm a Mechanical and Aerospace engineer currently attending Princeton University. I am also completing certificates, or minors, in Applied Mathematics, Computer Science, and Robotics. My fascination with the connection between computing and engineering is reflected in my coursework, as well as in the projects I have pursued on my own time. ---


models.beans
Classes
Answer
Question
Quiz
Ranking
Record
RecordAnswer
StatsAdminGlobal
Theme
User
Enums
E_Role


A
Sankey diagram
allows to study flows. Entities (nodes) are represented by rectangles
or text. Arrows or arcs are used to show flows between them. In
R
, the networkD3
package is the best way to
build them
The networkD3
package allows to visualize networks using
several kinds of viz. One of its function makes stunning Sankey
diagrams as shown below. Follow the steps below to get the basics and
learn how to customize your Sankey Diagram.
The networkD3
package is an htmlwidget: it automatically
builds interactive charts. Check the chart below: you can drag nodes
and hover links for more informagtion. If for some reason you need to
export it to png
or pdf
, it is possible
thanks to the
webshot
package.
Note: The example below comes directly from the networkD3 documentation.
How to export to .png Chart code
An alluvial chart is a variation of the sankey plot. It visualizes
frequency distributions over time or frequency tables involving
several categorical variables. In R
, 2 packages exist to
build an alluvial diagram: alluvial
and
ggalluvial


Occurred: Timestamp
Response Status: status-code error
Request URI: /request/uri
Note: You would never generate a page that displays a Java exception to an end-user in a real application
Cause unknown (no exception details available)
You are seeing this error page due to Spring Boot (which returns a
view called "error" in response to uncaught exceptions. Since we are
using Thymeleaf this corresponds to the template error.html
)


Senior/Lead QA Analyst | Junior Developer
Alternate universe: WW sidekick, Wannabe superhero
Web developer with analytical skills and background in QA which allows me to build web applications & solve problems from a user's perspective. Experienced in IT ecosphere in Individual contributor and leadership roles. Passionate about my work and always looking for opportunities to learn and grow.


Circles are drawn around points with a radius of half the minimum point separation. The discs should not overlap if points are separated properly.
The grid shown is that which the algorithm uses to accelerate comparing distances between points. Cell size is min separation / √2 so that cells contain at most a single point.
Click on the diagram to generate and animate a new distribution.
The animation shows how the bridson algorithm finds new points incrementally building on existing points. The initial point is chosen randomly.
Notice how the animation can be cleared and restarted by clicking on the diagram, and other examples on this page are responsive while the animation is running. The Poisson Disc distribution generator function returns a lazy Iterable
that generates points only as they are asked for (Bridson's algorthim is well suited to this as it produces points incrementally). Point request and draw tasks are put on the task queue scheduled to execute regular times in the future using a new Timer.periodic()
which allows event handlers to fire. The number of points in these examples does not take very long to generate but this technique allows for dealing with very large point sets that take significant time to produce.
A 2D histogram generated from many distributions shows that points are a little more likely to appear near the edge of the distribution area than in the middle.
When the algorithm tries to place a candidate point near the edge of the distribution area there is a lower probability of conflict with an existing point, because no points exist outside of the area.
A rectangular toroidal distribtion can be tiled with copies of itself and preserves Poisson Distribution properties at the borders.
In the example below the distribution drawn surrounded by the dges of eight copies of itself to show the tiling property.
The histogram of the toroidal distribution shows that points are evenly distributed.


Penny_Dreadful
Some of literature's most terrifying characters, including Dr. Frankenstein and his monster, Dorian Gray, and iconic figures from the novel Dracula are lurking in the darkest corners of Victorian London. They are joined by a core of original characters in a complex, frightening new narrative. Penny Dreadful is a psychological thriller filled with dark mystery and suspense, where personal demons from the past can be stronger than vampires, evil spirits and immortal beasts.


Complaints
Home
(current)
Complaint
News
My Location
Search
File a Complaint
My Complaints
- direct link to complaint
- direct link to complaint
- direct link to complaint
Title
Category
Not selected
Theft
Rabid Animals
Fire
Disease outbreak
Assault
Description
Submit


Posting Guidelines
Please abide by these general guidelines when posting to ensure a happy time for us all.
- Be kind, informative, and occasionally funny when you participate in this community.
- No News posts here please.
- Third rule of Happy Places club: Feel free to talk about Happy Places :)


Jog it Log it is a simple logging app, perfect for recording your daily exercise without confusing setup or nonsense bells and whistles. Track your progress and get fit!
Jog it Log it features a simple and intuitive interface for entering your daily run. You can view multiple charts of your exercise data to track your progress overtime.
Send me an email: mtsmithdesign@gmail.com


--- layout: post date: 2005-12-27 time: "09:00:00" authors: ["Greg Wilson"] title: "New Year's Schedule for Software Carpentry" tags: ["Curriculum", "Workshops"] ---
I'm teaching a cut-down version of Software Carpentry at the IASSE in two and a half weeks. I'll have students half days for the weeks of January 16 and 23, and full days for the week of February 6. That's only 20 lectures (rather than 26), so the question is, what to cut? The answer has wider implications, since this will be the version of the course I take to the AAAS workshop.
My plan is:
| Jan | 16 | Introduction | Revised to be a forward summary of the whole course. |
| 17 | Shell 1 | ||
| 18 | Shell 2 | ||
| 19 | Version Control | ||
| 20 | Make | Revised so that it doesn't depend on Python. | |
| Jan | 23 | Python 1 | Basic features. |
| 24 | Python 2 | Strings and lists. | |
| 25 | Python 3 | Functions and Libraries. | |
| 26 | Testing | Basic concepts. | |
| 27 | Mini-Project 1 | Build something useful with Python. | |
| Feb | 06 | Python 4 | Dictionaries and exceptions. |
| Debugging | Deepened to include material from Zeller. | ||
| 07 | Python 5 | Object-oriented programming. | |
| Unit Testing | Use the unit test framework to show what good OO design looks like. | ||
| 08 | Coding Style | Update to include an actual Python style guide. | |
| Reflection | Complete rewrite: exec, eval, sub-processes, etc. | ||
| 09 | Regular Expressions | ||
| XML and DOM | |||
| 10 | Development Process | Describe how a good shop actually works (with nods to XP and RUP). | |
| Teamware | Based on Trac. |
Client-side and CGI web programming, security, and databases have disappeared completely; the three lectures on process have been folded into one; and there's no end-of-course summary. I'm comfortable with those changes; what I don't like is the amount of time spent teaching Python-the-language. I'd rather spend those hours showing them how to use Python to automate development activities, but you can't cut trees 'til you have an ax.
Second, there's no place in this new scheme for a lecture based on Paul Dubois's CiSE article on maintaining correctness. There really ought to be: it shows the jigsaw puzzle of which many good practices are pieces.
Third, I'd like a second project lecture, showing students part of the build system for the course notes. This would let them see regular expressions and DOM in action, and would tie together many of the earlier ideas on automation. It's this or teamware, though, and I think the latter is more important. Having made that decision, I'm wavering on whether to pull out the material on regular expressions and DOM.
Finally, everything I have to say about the development process is now squeezed into a single hour. It makes sense in this case, since IASSE students will get several more courses on the subject, but it's definitely under weight for the AAAS workshop.
So: in order to pull this off, I'm going to have to revise one lecture per day from January 2 onward (including diagrams). I'll post the new materials here until they're polished, at which point I'll swap them into the standard location. I'll blog each time a lecture goes up: timely feedback would be greatly appreciated.


Travel Logo
OFFER 50%
REALLY AWESOME DISCOUNTS THIS JULY
MENU ITEM 1
upload
home
Upload Data
Link 4
MENU ITEM 2
file
Link 2
Link 3
Link 4


| Singapore | Malaysia | China |
| United Kingdom | Japan | Australia |
| Germany | Indonesia | South Korea |
These are picture of flags of countries with strict gun control laws. If you click on the pictures they change to a flag of a country with loose gun control laws. Click on the buttons below the pictures to change the description to the name of the country represented by the second flag.


Our website
Number 7: Display respect Level and Information
26/07/2016
Added - Respect tiers, player characters gain certain perks for higher levels of respect (press number 7 for info)
Server Dev: JohnO
Server Owner: DubHorn


The Boys Showrunner Announces End of Filming on Season 2
by John RidlehooverThe Boys showrunner Eric Kripe has confirmed that filming on Season 2 has ended.
"2:15 am. That’s a wrap on #TheBoysTV #season2," Kripe posted on Twitter with an image of himself holding a beer. "Exhausted but triumphant.  Wait till you see the madness. Coming Summer 2020."
Season 1 of The Boys debuted on Amazon Prime Video in July and quickly gained popularity, becoming one of the platform's most-watched shows. Season 2, which was announced just before the Season 1 debut, will feature several new characters, including a new hero named Stormfront who will be portrayed by You're the Worst's Aya Cash.
Click the button below to start this article in quick view.
The Boys was developed by Eric Kripke along with Evan Goldberg and Seth Rogen. Kripe also developed the shows Supernatural and Revolution.
The Boys stars Karl Urban as Billy Butcher, Jack Quaid as Hughie, Laz Alonso as Mother's Milk, Tomer Kapon as Frenchie, Karen Fukuhara as the Female, Erin Moriarty as Annie January, Chace Crawford as the Deep, Antony Starr as Homelander and Simon Pegg as Hughie's dad. A Season 2 premiere date has not yet been announced.
https://schema.orgBreadcrumbListListItem1Homehttps://www.cbr.com/ListItem2TVhttps://www.cbr.com/category/tv/ListItem3TV Newshttps://www.cbr.com/category/tv/news-tv/ListItem4The Boys Showrunner Announces End of Filming on Season 2https://www.cbr.com/the-boys-season-2-filming-wraps/


Located on this page is resources for all kinds of graphic design and digital marketing needs. It is my personal archive that I like to share. Currently under construction!


--- title: Blooming Bulbs 2012 date: 2012-03-23 00:00:00 -06:00 categories: - whats-blooming layout: post blog-banner: whats-blooming-now-spring.jpg post-date: March 23, 2012 post-time: 3:23 PM blog-image: wbn-default.jpg ---
It's that time folks! The bulbs are awake and are open all over the Garden. This year Red Butte Garden will have over 300,000 bulbs blooming.
Be sure to visit multiple times throughout the bulb season to see the many varieties on display.


|
DashingPlatforms
1.0
|
#include <UnboundedSMQueue.h>
Public Types | |
| typedef ACE_Unbounded_Queue< T > | BASE |
Public Member Functions | |
| UnboundedSMQueue (ACE_Allocator *allocator) | |
| virtual | ~UnboundedSMQueue () |
| int | enqueue_tail (const T &new_item, ACE_Allocator *allocator) |
| int | dequeue_head (T &item, ACE_Allocator *allocator) |
| void | delete_nodes (ACE_Allocator *allocator) |
| int | is_empty (ACE_Allocator *allocator) |
UnboundedSMQueue extends the ACE Unbounded Queue (for infinite re-growth) to add allocation support for Shared Memory. Items added to this queue get copied to Position Independent shared memory where they become accessible to other processes.
UnboundedSMQueue is built to be the basis for exchanging tracelog messages between processes and for exchanges between MsgMgr mailboxes in separate processes.
NOTE: Our Strategy for using Shared Memory is NOT to create/allocate pools of shared memory objects (which would use Position Independent pointers) that the applications would reference and use. Rather, we create our containers which enforce concurrency in shared memory (such as this queue), and then we pass process-local objects through the shared memory from one process to another. (ALSO NOTE: creating pools of objects in shared memory is the job of the in-memory database provider)
|
inline |
Constructor
Referenced by UnboundedSMQueue< T >::is_empty().
|
inlinevirtual |
Virtual Destructor
|
inline |
Clear the Contents
Referenced by FaultSMQueue::clearQueue(), LoggerSMQueue::clearQueue(), and LocalSMMailboxQueue::clearQueue().
|
inline |
Dequeue Method
Referenced by FaultSMQueue::dequeueAlarm(), LoggerSMQueue::dequeueLog(), and LocalSMMailboxQueue::dequeueMessage().
|
inline |
Enqueue Method
Referenced by FaultSMQueue::enqueueAlarm(), LoggerSMQueue::enqueueLog(), and LocalSMMailboxQueue::enqueueMessage().
|
inline |
Return if the queue is empty
References UnboundedSMQueue< T >::UnboundedSMQueue().
Referenced by FaultSMQueue::dequeueAlarm(), LoggerSMQueue::dequeueLog(), LocalSMMailboxQueue::dequeueMessage(), LoggerSMQueue::isEmpty(), FaultSMQueue::isEmpty(), and LocalSMMailboxQueue::isEmpty().


--- layout: post title: 'Kdan success story | Orange Cloud API: “simple integration provided us with powerful results”' url: https://www.orangepartner.com/articles/partner-showcase-kdan source: https://www.orangepartner.com/articles/partner-showcase-kdan domain: www.orangepartner.com image: http://kinlane-productions.s3.amazonaws.com/screen-capture-api/www-orangepartner-comarticlespartner-showcase-kdan.png ---
Kdan Mobile Software integrated the Orange Cloud API to their Pocket Scanner app to expand users storage options & facilitate use by Orange customers.Kdan’s Pocket Scanner is available worldwide via the Apple App Store.Founded in 2009, Kdan Mobile Software develops mobile apps for Apple, Android and Windows operating systems, racking up over 30 million downloads and counting over 5 million monthly active users. Not to mention, its apps have been featured on the App Store Homepage in over 80 countries. Kdan Assistant Marketing Manager Frank Lin sat down with us to discuss Orange Cloud API integration with Pocket Scanner, the app which transforms a smartphone into a multipurpose scanner.


Adopt love, don't buy it!
Cat
Adoption
Home
Adopt a cat
More
Contact
Add a cat
Basic information
Name:
Breed:
Cat Color:
Age:
Submit
Cats To be Adopted


Ivan:
The boy appears not to trust you.
He doesn't want to talk to you.
(Only characters level 26 and above are permitted to take on this quest.)


BULLET IN THE HEAD (1990)
"Bullet in the Head" is an uneven and flawed film. It's John Woo's pet project, the one that he put most heart and soul into. Comparing to his classic "A Better Tomorrow" and "The Killer", it is more like a long and excruciating personal nightmare that haunts its creator and unexpectedly, has haunted the audience too.
The movie opens in the orange glow of a warm and cheerful Hong Kong in 1967. Three friends grow up together in the slum: Ben, Frank and Paul. On Ben's wedding night, Frank borrows from local gangs to pay for the wedding's expenses and gets beat up by a rival gang. In a heated revenge attempt for his friend, Ben kills the gangster. To escape jail and disillusioned by the lack of prospects in Hong Kong, 3 friends decide to run to Vietnam, at the time on the brink of war, in search of opportunity to make it big.
The trio immediately encounter the brutal reality of Vietnam in a student protest and bombing. They nearly get killed. This may be the only politically relavent part of the film. After the 1989 Beijing massecre, any Chinese could recognize the image of a student protester standing in front of an army tank. However, it was never the focus of the film.
They are soon involved in local gangsters' activity and meet Luke, a hired gunman of Chinese-French origin played by Simon Yam. It is never clearly explained why Luke becomes an ally with Ben and co., except that Ben joins his attempt to rescue his lover, a singer fallen to prostitution, from the powerful local gangsters. A long and exhausting gun battle follows. This part of the film feels very much awkward and detached from the rest of it. It may be part of the original idea Woo developed with ex-colleague and ex-pal Tsui Hark, since Tsui's own version "A Better Tomorrow 3" has similar elements. Woo might have been hestitant to give up this idea, but it does not work within the context of the film, which later grows far beyond this type of genre films. The brief romantic interaction also displays Woo's inability to present interesting and convincing female roles.
On the way of escape, the singer dies and more horrible things happen. From here the film turns completely upside down to something extremely disturbing and bleak. Ben, Frank and Paul are captured by North Viet army and tortured when mistaken as CIA spies. In one of the most horrid scenes, they are forced to execute American POW's. When Luke and American troops raid the POW camp and rescue them, Paul shoots the injured Frank in the head so that he can escape with a case of gold alone.
Ben lives, and finally finds Luke in Saigon as well as Frank with a bullet in his head, thanks to his childhood friend Paul. He has not died, but simply gone mad ...  And there isn't much left for him to do but go back to Hong Kong and face up to the now big and powerful Paul.
In a rare case since "A Better Tomorrow" in 1986, Chow Yun-Fat is not involved in Woo's film here. Although this might be originated from Woo's dispute with Tsui Hark, it feels an appropriate artistic decision not to have Chow in this movie, because there is no larger-than-life hero in this film, only a few small-time young men from the bottom struggling hard. Only Simon Yam is the "victim" of Woo's ultra-cool make-over. Tony Leung Chiu Wai, a critically acclaimed dramatic actor, plays the lead character Ben with vulnerability and credibility, gives a convincing realism to the grim and brutal picture. He has a tender side more low-keyed than Chow's heroes. Waise Lee again takes up the evil role for Woo, but his character Paul is weakly written and lacks complexity and smooth transition, more like a neurotic mad dog from early on. I never gave enough credit to Jacky Cheung, who started out as a singer in Hong Kong. He first surprised me in Tsui Hark's "Wong Fei-Hung." (Once upon a Time in China) Here he gives a very convincing and adequate performance as the childish, good-natured Frank. He may have overacted a bit here and there, but the POW camp part and madness scenes are memorable, to say the least.
The portrait of Hong Kong in the late 60s to early 70s clearly carries a sentiment on the director's part, as an era that is long gone and his youth that is long lost, a past he spent in the slum like the characters in this film, struggling upward in a seemingly hopeless situation. The frustration for a grim fate is so real, the tenderness in shots of the poor neighborhood is so genuine, that no doubt there has to be some autobiographical elements. Such a semtiment has also prevented Woo from neater and tighter editing, I suspect. (He also did the editing.) The film could have been done better, but it requires certain emotional detachment unavailable to himself.
The theme is the eternal topics of friendship, loyalty, betrayal and revenge. It may seem cheesy and corny sometimes, yet particularly effective and convincing in Ben and Frank's bonding. On the other hand, Luke's motivation to help the three is not so persuasive (unless you're a believer of the "homoerotic undertone" theory that's popular in western critics). Neither is the transformation of Paul.
The dialogues in Bullet in the Head is cut to minimal, barely enough to string the story together. Everything is told by images and actions. Although Woo is never known for writing smooth dialogues, the silence here is extraordinary even comparing to his other works. As if the extreme anguish has muted him, Woo loads the depressing tension upon the audience as the emotionally exhausting sequences go on and on to the unbearable limits.
It is obvious that the film has taken much inspiration from "The Deer Hunters." But it's ultimately not about wars, but about friendships and brotherhood, loyalty and betrayal, memory and pain, and the degradation of humanity. It is Woo's usual tendency to push emotions to the extremes, drag his characters through hell, and test his beliefs and ideals under the most testing conditions, but it is far darker and more devastating than any of his other films. It does not have the energy and uplifting idealism in his other films, but it focuses more on the vulnerability of powerless small people. His films are ruled by heart not brain. I have a really hard time giving "Bullet in the Head" a grade. Objectively, it's a B+, with much genuine conflict and high concept in the second half of the film and an uneven 1st half. But Woo's films are not to be judged objectively, especially this one in which he put too much of himself.
jun
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


A Knight's Tale (2001) Heath Ledger, Mark Addy, Rufus Sewell, Paul Bettany, Shannyn Sossamon, Alan Tudyk, Laura Fraser. Written and directed by Brian Helgeland. 128 minutes. Rated PG-13, 3 stars (out of five stars)
Review by Ed Johnson-Ott, NUVO Newsweekly www.nuvo.com Archive reviews at http://us.imdb.com/ReviewsBy?Edward+Johnson-Ott To receive reviews by e-mail at no charge, send subscription requests to<EMAIL_ADDRESS>or e-mail<EMAIL_ADDRESS>with the word "subscribe" in the subject line.
NOTE: A feature on Heath Ledger follows this review.
After watching "A Knight's Tale" the first time, I scanned my notes and saw a laundry list of flaws. The film is sloppy, self-indulgent and about 20 minutes too long. The story is, to put it kindly, overly familiar. And jousting, no matter how cleverly shot, is one dull damned sport. But regardless of all its failings, I liked the movie. The central characters were endearing and I loved the camaraderie between them. Last weekend, I attended another advance screening of the film and, to my surprise, enjoyed it even more the second time around. "A Knight's Tale" is a mess, but it's my kind of mess.
Writer/director Brian Helgeland, who won an Oscar for the "L.A. Confidential" screenplay, takes the story of a young man pretending to be a knight and plays fast and loose with the particulars. Although it is set in the 14th century, the characters talk like 21st century folks. The Nike logo turns up on a suit of armor. A princess wears a variety of attractive, but bizarre, outfits that do not fit the time period, including one number that looks like something Audrey Hepburn wore in "Breakfast at Tiffany's." As if all that wasn't enough, the orchestral score is spiced with a number of classic rock songs, from Queen's "We Will Rock You" to War's "Low Rider." Purists are already howling about the movie, of course, but who cares? What Helgeland does here is fun.
A side note: One critic accuses the filmmaker of using the rock chestnuts to "woo the youth market." Pardon me, but does this guy really think that kids who listen to current pop music are going to embrace a production because its soundtrack includes "Taking Care of Business" and "The Boys are Back in Town?" Give me a break. The paying audience at the sneak I attended Saturday were mostly couples ranging from adult to late middle age.
The frills in "A Knight's Tale" may be from left field, but the story is strictly (in fact, overly) traditional. William (Heath Ledger from "The Patriot") is squire to Sir Ector, a jousting legend who dies at the beginning of the film. Desperate for money, the young man convinces fellow squires Roland (Mark Addy) and Wat (Alan Tudyk) to assist him as he furtively dons the knight's armor to compete in his place. The facade is successful and William decides to work towards the world championships, despite the fact that peasants are not allowed to participate.
 Years away from his Canterbury days, the unemployed writer and chronic gambler joins them and forges a fine set of identification papers. William becomes Sir Ulrich von Lichtenstein of Gelderland, jouster extraordinaire, with Chaucer providing florid intro speeches that would make a WWF wrestler tear up with joy. A fiery blacksmith named Kate (Laura Fraser) soon joins the gang as they head from stadium to stadium, with rapturous crowds chanting Ulrich's name.
William is enraptured as well, by the beautiful, hauty Jocelyn (Shannyn Sossamon). While he tries to win the heart of the fair maiden, an enemy glowers from the sidelines. Sir Adhemar (Rufus Sewell from "Dark City") detests the young upstart and makes clear his intentions to retain his jousting title and to snatch Jocelyn while he is at it.
Helgeland brought his cast together in Prague a month before shooting began to practice jousting and get to know each other. The actors spent their days rehearsing and their nights drinking. By the end of their prep time they were thick as thieves and the results show up onscreen. The relaxed bond between the actors/characters makes the film work, even when the dialogue is weak. Mark Addy ("The Full Monty") and Alan Tudyk make a particularly likable team, with Addy bouncing caustic one-liners off Tudyk's chronic blustering. Paul Bettany is an absolute hoot as Chaucer, with Laura Fraser's down to earth performance anchoring the group.
The best segment in the film shows off the talents of the three lead players. A formal dance begins with harpsichord music and turns into a joyous contemporary romp set to David Bowie's "Golden Years." Heath Ledger is dashing and charismatic, with his unforced masculinity filling the screen. Newcomer Shannyn Sossamon projects erotic elegance as she puts her dance training to good use. The two serve as a delightful center to a magical scene. While they strut their stuff, Rufus Sewell does some remarkably subtle acting. Watch his face as he makes the transitions from arrogance to anger to confusion to sadness to defeat, all without a single word.
The playful, frothy moments of "A Knight's Tale" shine, while the latter part of the film suffers from an attack of mawkishness, finally turning into a medieval "Rocky." Brian Helgeland needs more discipline as a director. At two hours and eight minutes, his movie screams for editing. I'd have cut some of the jousting scenes, which are numbingly repetitive. I also would have rewritten the entire third act and deep-sixed the pathos. But the bottom line is that Helgeland's incongruous flourishes and top-notch ensemble cast save the film from its many, many problem areas.
© 2001 Ed Johnson-Ott
Inside a tin can: Heath Ledger stars in 'A Knight's Tale'
By Ed Johnson-Ott, NUVO Newsweekly
Heath Ledger is a movie star about to happen. Beyond mere good looks, he has that hard to describe but impossible to miss quality that makes him a real presence onscreen. Anyone who saw him as the cool outsider in "10 Things I Hate About You" or as Mel Gibson's eldest son in "The Patriot" understands. And the marketers at Columbia Pictures certainly know. His new film, "A Knight's Tale," is an adventure/romance set in medieval times, but instead of displaying images of jousting or swordplay, posters for the movie simply feature a close-up of the 21-year-old's face, with the tag line, "He will rock you."
So how does it feel to have a big summer flick riding on your shoulders? "The thought never enters your mind," said Ledger, nursing a bottle of water in a Beverly Hills hotel suite, "not while you're making the movie. I guess afterwards, when you see that [gestures to a reproduction of the poster], it is daunting. It's slightly intimidating. But I also know the process, I know the studio's process, how they market movies and how they're marketing this movie. It's your job and you feel like a product sometimes, and you are. The movie is a product and I'm a product of the movie. Their job was to try and create a style as fast as they could to sell the movie.
In person, Heath Ledger seems anything but a hot Hollywood property. Sitting at the table in casual clothes with mussed up hair, he comes off as refreshingly average, younger looking than on film and quite unguarded. Over the years I've talked with a numbing stream of sprayed, moussed and gelled 20something actors whose every word sounded programmed. This is a nice change of pace.
Writer/director Brian Helgeland, whose screenplay for "L.A. Confidential" won an Academy Award, did not have Ledger in mind when he wrote his story, which playfully mixes elements from other time periods into its 14th century setting. "The character had to be able to sword fight and joust and ride and sing and dance," said Helgeland. "And he had to have a very self-possessed quality. Heath's name came up he was shooting "The Patriot" at the time and I asked 'What's he done?' I hadn't seen "10 Things" and then they said he starred in the short-lived TV series "Roar," which was kind of a cheesy "Xena" type adventure show. I had seen it a couple of times, just switching channels, and I remembered him from that. I remember thinking 'What an awful show, but he was really good, whoever this guy is.'"
A meeting was set up at LAX, as Ledger was preparing to fly home to Australia. The two chatted for a bit, with Ledger saying he liked the script, then Helgeland asked about the long tube the actor had at his side. It was a didjeridoo, the droning instrument popularized domestically as part of the theme song and score for "Survivor: The Australian Outback." Ledger hauled it out and played it for the filmmaker, who was delighted. "I liked him and I thought 'Who else could it be but this guy?'" Helgeland explained. "I got him to agree to play it in the movie. He went off and we made a deal."
But when filming began, Ledger stalled every time the didjeridoo was mentioned. During the last week of shooting, Helgeland pressed for an explanation and finally got one. "He told me he'd been thinking about it and said, 'I don't want to play it. It's an Aboriginal instrument and I'm afraid that if it appears in a medieval movie people will think it's a European instrument.' This hadn't crossed my mind at all. I don't know how to articulate it, I just thought 'This is not your average 21-year-old.' He has a chance to impress everybody, but instead he thought about it that thoroughly. It was, well, it was a beautiful thing." Asked about the incident, Ledger, who has played the instrument for six years, said it was a simple matter of respect for the Aboriginal people.
Ledger was as attracted to the story as Helgeland was to him. "It was like, c'mon, I couldn't believe it. It was a smorgasbord of everything. It was funny and sad and had all that action it had a rich heartbeat that went throughout the movie, which I really loved. And then just meeting Brian and being on the same page. Sitting down and realizing we had the same views of the movie. And he was a lovely, lovely guy. I just wanted to work with him."
Before shooting started, the cast, which includes veteran performers like "The Full Monty's" Mark Addy and newcomers like Shannyn Sossamon, assembled at the location site in Prague for a month of rehearsals. The cast dutifully practiced during the day, but spent most of their evenings consuming a great deal of alcohol. "There was about three weeks of drinking," said Ledger with a rakish grin. "The rest of the time was horse riding and punching and swordplay; that sort of thing. Between the work and the drinking, we bonded as a group. I think all the fun and the friendship translates to the finished film."
For Ledger, the camaraderie was the best part of the experience and wearing a suit of armor the worst. "You feel like the inside of a tin can. It's very hot and very heavy. And it was kind of painful because when you're riding a horse the armor bounces up and down on you." He enjoyed his steed, though. "My horse Barney was so well trained. You walk him over and show him the mark, then you go back and, when the time comes, he goes right to it."
Unlike many young actors, Ledger avoided getting caught in teen movie hell. After doing just one high school romantic comedy, he moved to a pivotal supporting role in the prestigious Mel Gibson production and then on to a starring role of his own. He claims not to have a formal career plan, but agrees that he is selective. "My plan then was not to make another teen movie, not to get caught in that. It's very easy, I think, to fall into that trap. But I have to be selective. I'm stubborn like that. I'm not happy unless I'm doing something I genuinely like. That's reflected in the roles I pick. And I have to be scared; I have to be worried going into it. I don't like it to be too easy. It has to test you. I like to set hurtles in front of myself. That keeps it exciting."
His next film is another historical piece, "Four Feathers," where he stars opposite Kate Hudson and Wes Bentley. Ledger has an affinity for period movies, stating, "I guess the thing that interests me is the characters from a hundred, 200 years ago. Emotions have evolved since then, as well as the way we communicate, so you really have to go back and get an understanding of where we came from and how we got to this place now. It's curious sometimes there's a fine line between our job and being a shrink. Because you have to get in there and dig."
Ledger scoffed at a story referring to him as an old soul in a young body.   I have to come in here and talk about myself and go on about the movie, but inside I'm a 6-year old kid. In some way that will never change and I think that's important. You have to hold onto that."
© 2001 Ed Johnson-Ott
========== X-RAMR-ID: 28802 X-Language: en X-RT-ReviewID: 219863 X-RT-TitleID: 1107871 X-RT-SourceID: 591 X-RT-AuthorID: 1099 X-RT-RatingText: 3/5
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- layout: page title: Lean Prover Zulip Chat Archive permalink: archive/113489newmembers/47017excludedmiddlefromdne.html ---
I'm trying to prove A \/ not A using double negation elimination,
open classical variable A : Prop theorem dne ( h: not ( not A )) : A := by_contradiction (assume h1 : not A, show false, from h h1) example : A ∨ ¬ A := have h1 : not ( not ( A ∨ not A), from assume hA : A, have h2 : A ∨ ¬ A, from or.inl hA, assume h3 : ¬ (A ∨ ¬ A), show false, from h3 h2 show A ∨ ¬ A,from dne (A ∨ not A) h1
I'm getting these errors
em.lean:8:34: error invalid expression em.lean:13:0: error invalid 'have' declaration, ',' expected
I dont knwo whats wrong with this. Is this the right way to do this?
You should start with ensuring parentheses are balanced
Sorry. Balanced it but no change. i think i didnt prove this
have h1 : not ( not ( A ∨ not A), from
I have been using this software for a while now and I still look at code like this and find it incomprehensible. I know all this have, assume, from stuff is supposed to make it feel closer to English or whatever but for me it turns the code into spaghetti. @Manikhanta Teja have you tried using tactic mode and more structured code with {}
in?
What does assume
even do? How can I just randomly assume A in the middle of a proof of not ( not ( A ∨ not A))
?
Whilst I am not an expert in this horrible mode, I conjecture that if you're trying to prove things, you can't just write random assumptions like assume hA : A
in the middle of a proof.
@Kevin Buzzard I'm trying to understand how this working. I'm still a beginner. I'm sorry.
Are you reading TPIL?
They start with this horrible mode
I would probably have given up Lean there and then were it not for the fact that I had read a Coq tutorial that went straight into tactic mode
Yeah i started with TPIL.
I teach a lot of beginners how to use Lean, and for a question like this I would always start with the following template:
example : A ∨ ¬ A := begin sorry end
Here is a crazy suggestion: just stop what you're doing, go straight to chapter 5, and read a bit about doing basic logic in tactic mode.
The absolutely massive advantage of tactic mode for beginners is that at all times you can see exactly what you have already proved, and what you are trying to prove.
Starting chapter 5 now. Thanks.
What does
assume
even do? How can I just randomly assume A in the middle of a proof ofnot ( not ( A ∨ not A))
?
assume
is just notation for λ
So that answers the question of why the original code didn't compile -- the assume ha : A
looks invalid because it would only work for goals of the form A -> <something>
open classical variable A : Prop theorem dne ( h: not ( not A )) : A := by_contradiction (assume h1 : not A, show false, from h h1) example : A ∨ ¬ A := have hN : not ( not ( A ∨ not A), from (assume h1 : ¬ (A ∨ ¬ A), have h2 : ¬ A, from assume h3 : A, have h4 : A ∨ ¬ A, from or.inl h3, show false, from h1 h4, have h5 : A ∨ ¬ A, from or.inr h2, show false, from h1 h5) show A ∨ ¬ A,from dne(A ∨ not A) hN
em.lean:8:34: error invalid expression em.lean:17:0: error invalid 'have' declaration, ',' expected
This is what i was trying to do. Get ¬¬(A ∨ ¬A) → A ∨ ¬A from dne( A \/ not A) and then apply implication elimination of ¬¬(A ∨ ¬A) → A ∨ ¬A to get A ∨ ¬A.
The proof for ¬¬(A ∨ ¬A) worked
variable A : Prop theorem cc : ¬ (¬ ( A ∨ ¬ A)) := (assume h1 : ¬ (A ∨ ¬ A), have h2 : ¬ A, from assume h3 : A, have h4 : A ∨ ¬ A, from or.inl h3, show false, from h1 h4, have h5 : A ∨ ¬ A, from or.inr h2, show false, from h1 h5)
Is there anything wrong with this
show A ∨ ¬ A,from dne(A ∨ not A) hN
The error seems to indicate you've got the syntax wrong somewhere.
There's a missing comma after show false, from h1 h5)
Still have a problem with
em.lean:8:34: error
invalid expression
Got it.  I didn't balance the paranthesis.
If you were to use tactic mode you would have none of these problems and the errors would be far less obscure
Tactic mode forces you to structure your proofs properly
{% endraw %}


--- ---
Available on Github, built by Tyler
A lazy image loader designed to enforce progressive enhancement and valid HTML.
Not a framework, not a library, just a function (with clean af markup).
{% highlight html %}{% endhighlight %} {% highlight js %}loadMedia( element, onload, scroll ){% endhighlight %}element: CSS String | NodeList | Element (optional) – loads all images if not set
onload: Function (optional)
scroll: Boolean (optional) – loads image when visible
Declare a lazy image like this:
{% highlight html %}{% endhighlight %}By default, the function targets every noscript element on the page.
Any attributes the noscript image has (srcset, class, id, alt, etc) are kept.
Other lazy loaders promote invalid HTML by omitting the src attribute, or aren't compatible for users without javascript.
You can specify what images to load by passing a parameter into loadMedia of either
You can hook an onload function for every loaded image.
This may help animate the image by styling it onload.
Run: {% highlight js %}loadMedia(null, function() { this.classList.add('loaded') }){% endhighlight %} Output: {% highlight html %}{% endhighlight %}There's a default function to load images when they're scrolled into view.
This is a general solution, creating your own scroll-based loading functionality may be more performant.
Will be updated to use intersection observers when it becomes standardized. Ex: {% highlight js %}loadMedia(null, null, true){% endhighlight %}