Just imagine a noble, elegant and picturesque life in poverty that you might find nowhere else but in a soap opera. No matter how poor you are, it does not discourage you from showing unconditional love for strangers, and even a piece of bread is there to be shared with a warm smile.
If anyone claimed that such an illusion existed in reality, Lee Hyun would beat him to a pulp, and strike once more to finish him off.
Life was too cruel for the poor. The Labor Welfare Law revised by Parliament made all jobs unavailable to minors. Illegal though it was, Lee Hyun had worked in every kind of trade imaginable.
From the age of 14 he took to sewing stitches in a factory. The salary could only be called meager, but he was able to eat for free.
However, underground with only 2 ventilation fans running, his health extremely deteriorated. Thanks to his damaged lungs, he gained heavy medical bills.
Then it was a job at a gas station and occasionally he even went around pulling a handcart collecting and selling recyclables.
But no matter how hard he had worked, the money left in his pocket was chump change.
As a minor, he was forced to get a job illegally. This fact was used by his employers to mercilessly work him to the bone.
He lived this life of exploitation until 20 years of age. Thanks to it, Lee Hyun knew very well the value of money. However, things would be different now. Finally an adult, and with it came an ID card that would allow him to legally work.
Inserting the ID card in his wallet Lee Hyun mumbled.
“I have to work until my body practically breaks down. I should be able to deal with 3 jobs a day.”
When he was a kid, his parents died, his family now consisted of only his grandma and sister.
“Alright. From now on we’ll be rich.”
Lee Hyun pledged to do so and returned home.

His grandma was lying down snuggling in a blanket. After falling down the stairs a few days ago, she got a dislocated hip rendering her unable to go to work.
Although taking medicine, with the household struggling she could not go to the hospital to receive proper treatment and thus could only rest at home.
Not receiving treatment, every night she could only groaned painfully.
Whenever Lee Hyun entered the house, he felt his chest suffocating. It was a lifeless home with an aloof little sister and an old grandma. Even if he didn’t know it, it was probably why he disliked coming home even more.
“Hye Yeon?”
“I have no idea. She went out and didn’t return. She might be hanging around with the bad crowd again, not sure.”
Lee Hye Yeon was his little sister. He had not seen her face very often recently.
“It’s going to be okay. What could happen?”
“You are her one and only brother. A brother should protect his little sister.”
“Yes.”
Lee Hyun smiled wryly and went to his room. Even if he was forced into physical labor or driving a taxi, he wanted to send his little sister to college.
For a while now she had been drifting off the rails, but she was bright and intelligent, unlike Lee Hyun. He believed that in college she would meet a good husband and be able to live well. He also wanted to repay his old and ailing grandma for all she sacrificed to raise Lee Hyun and Lee Hye Yeon.
“Right, look for work tomorrow. There will probably be an employment test as well…….”
Muttering, Lee Hyun turned on the computer. The old computer buzzed to life. As soon as it connected to the internet, as routine, he accessed a game. That game was Continent of Magic. A classic game released 20 years ago. An online game that once created a frenzy of gamers in the Republic of Korea.
That game remained at the pinnacle until just 3 years ago. Lee Hyun’s antiquated computer assembled by combining parts from here and there was not capable of handling most games. Nothing but Continent of Magic ran smoothly.
It was the first game he’d ever played, but only during the game could he have a feeling of enjoyment.
Lee Hyun’s playing style was very peculiar. He did not associate with the people around him and instead hunted all day long.  He did not participate in sieges or guild wars at all.
He found pleasure in the game by gradually improving his character’s abilities and upgrading equipment. He once hunted for 200 hours straight without catching a wink of sleep. It wasn’t unusual for him to struggle for a month to raise one level or catch a single monster.
Some might question what kind of fun he was looking for, but for him it was fun watching his character grow stronger and when he was able to defeat monsters he was previously unable to, he was thoroughly delighted.
In a short period of time, Lee Hyun had reached the highest level. He had attained the ultimate state where levels no longer rose.
In the decades of Continent of Magic, it was the first and last record in history. When Lee Hyun looked around back, he found none who could rival his character in supremacy. In hunting grounds where others struggled as a party, he singlehandedly wiped out all the monsters.
After climbing to the highest level, he alone hunted all the ultimate monsters, including Dragons.
Though, for Lee Hyun, he had lost all interest. Nowadays with the technological advances, the ultimate goal of every game was to equip itself with the virtual reality system.
A truly splendid game named Royal Road, referred to as the standard for virtual reality. Beginning with a fully implemented world, the game contained tens of thousands of races and users. Over tens of thousands of jobs and hundreds of thousands of skills.
You could enjoy adventure as you desire or even go sea fishing with friends for days, as long you don’t encounter whimsical typhoons of course.
The massive scale of freedom was amazing, but best above all was the wondrous game’s system. Royal Road had the reputation of inducing the ultimate fun a human could enjoy in a game.
“Well for me, that’s all just a pie in the sky.”
What could Lee Hyun expect from a computer slowed down by a slightly more complex web page?
Popular as it was, to install the equipment that realized virtual reality would cost over 10,000,000 won. If he had that kind of money, under any circumstances, his grandma’s medical bills, otherwise it would go to his little sister’s college tuition. And now to diligently earn money, the game had to end.
|
Are you sure you want to delete your account? Yes / No |
Lee Hyun brought the mouse cursor over ‘Yes’. Now, with a single click of the mouse, the treasured character he raised would disappear forever. The moment he flexed his finger, a thought raced through his mind.
‘Can I sell my character for money? Account sale I think.’
Somewhere it seems. A newspaper or something said buying and selling characters was common. And that story meant money. It dawned on Lee Hyun that if he was going to delete his character anyway, it wasn’t a bad idea to sell to others.
Lee Hyun began searching through the internet looking for a character trading site. One search resulted in dozens of sites, and among them he located and entered the one with the largest trading volume.
“So I just post my character here for a price and it’s done?”
Lee Hyun uploaded pictures along with his own character.
Highest level in Continent of Magic with the best equipment coming from Dragons that was worth 30 trillion marks.
He decided to begin the auction with the initial price of 50,000 won. He was afraid no one would bid if he asked for too high a price.
The auction deadline was one day.
Waiting for a long time for big money to come was unlikely. To get a job though he needed a decent suit of clothes so he was in a hurry to get money right away.
Typically there was a range of characters and items to determine the price, but the auction content of other people could only be seen by paying members so Lee Hyun was denied access.
Lee Hyun finished posting and went to sleep. Waking up early the next day, he planned to stop by a nearby employment office.
Not even an hour after Lee Hyun posted, the netizens that occupied the virtual space began heating up the internet.
* * *
Initially, no one believed the auction post. With the last patch of Continent of Magic, they were well aware the levels increased significantly higher.
The maximum level limit was 200.
In the entire server, no one who achieved such a state could be found, possibly because the figure itself was practically impossible for any man alive.
And now, there was an auction post with the character that rose to the highest level for sale.

Several people commented in this fashion. Passing by some advised no one be fooled while others gave thanks for making them laugh.
From the early 21st century, phishing entries became a trend and because they were duped so often, they thought it was one of such cases again.
“No, never…….”
“Can’t be.”
Netizens tried to ignore the auction post. But their curiosity could not resist and they entered to see the post once again.
Auction posts unconditionally required screenshots of the character to be shown.
Each of the files attached to the posting were opened. The character info was truly outstanding. Various stats hit maximum and equipment items were indeed fantastic.
“Where the hell did he get those weapons?”
“Full set of Red Dragon Armor along with Red Dragon’s Backbone Shield? Wow…….”
“He says they were conferred by the Black God of Valor.”
People admired it quite a bit. Somehow it did not seem like a normal phishing post. To forge such detailed images, a great deal of effort would be needed.
“This guy definitely spent a lot of time on it.”
“The interface is Continent of Magic, but what game did he import the equipment from?”
Among those present at the auction post were current graphics designers. Looking at the base photo, they tried to find a blind spot.
“No matter how well-crafted the picture is, microscopic traces remain. Even if it looks perfect in the eyes of the public, when you apply the latest technology, the fake parts will be revealed.”
The designers magnified the images by a factor 10,000, tracked down the pixels, studied every shade, and even scanned the photo files in 3D trying to prove it was a forgery. But their attempts proved futile. Finally they were forced to acknowledge.
“All these images are real.”
“I’m the chief designer of LK Co. I guarantee this picture hasn’t been altered in anyway.”
Contrary to their expectations, the graphic designers began to confirm the authenticity of the images.
Then real users of Continent of Magic appeared. The moment they saw the images, they shouted in surprise. From the beginning they suspected nothing.
“It’s real. Character named Weed. This user’s damn famous.”
“The equipment is his, but I didn’t know he reached the top level, really impressive.”
Lee Hyun always played alone, intentionally avoiding hunting grounds with lots of people. He never participated in sieges, and minor disputes were usually ignored and passed by. But rumors about him never ceased to stop.
Slaying Dragons and Krakens deemed simply invincible and sweeping through the highest level hunting grounds all single handedly.
Not associating with other people didn’t mean they couldn’t recognize him. Among the remaining users, he was already a legend. Only Lee Hyun was oblivious to the fact that he was a celebrity.
“So the equipment is real?”
“Then, this can only be called jackpot…….”
The initial price for the auction was 50,000 won. Excluding the character value or equipment, just owning it alone according to current prices made the amount was far too low.
People hurriedly began to write down their bids. It went up in a flash from 50,000 to 300,000 won, all the way until 700,000 won. An hour had not passed before it exceeded 1,000,000 won.
The value of selling just one piece of equipment, there was no need to be hesitant about the loss. The bid began to skyrocket.
By this time, many people stopped participating out of desperation because they imagined to some extent the auction’s closing price.
Although the number of players in Continent of Magic decreased over time, after the servers integrated into one and became free of charge, there were still quite a lot of users.
Initially, it was the players of Continent of Magic who drove up the price, and following them were the wealthy office workers who increased the price further.
At one time, when the game was created, Continent of Magic kept the Republic of Korea up all night. The highest level character in that game, owning that antique had such value that you wanted to show it off to others.
The shrewder among the office workers quickly phoned their similarly aged bosses.
“Director-nim, is that you?”
-Why are you calling me at midnight? Do you want to get fired?
“Eh? That, well……. Director-nim, did you play Continent of Magic in the past?”
-Yes, what of it?
“The highest level character in Continent of Magic is up for auction. I thought Director-nim would surely be interested in it…….”
-What! Wi, Weed you mean?
“Yes. So Director-nim knows. Character is level 200. Stats and equipment are filled to the max.
Then followed the explanation.
-Right now. With your own money call for 30,000,000 won right now. I’m going back home right now to check it out, try to get the first place bid.
In the current age, people who hold key positions in companies belonged to a generation that played online games in the middle of their youth. They boosted the price range.
In large portal sites and every game related website, the hot topic talked about was the auction of the highest level in Continent of Magic. Many people started searching and instantly the keyword ranking shot skyward. From this point, the real auction began.
* * *
In the meantime though, Lee Hyun was sound asleep, completely unaware of this.
“Physical Labor… 50,000 won per day. Washing dishes in restaurants, 30,000 won. Supper, ham hocks…….”
He was busy summing up what to do the next day in his dreams.
* * *
With the people’s attention all focused on certain person, the auction price was soaring.
So far, nobody knew who Continent of Magic’s highest level was, but it invoked a desire to possess and show off the eternal character of the once greatest game.
The auction price finally exceeded 100,000,000 won.
At this point, ownership exceeded the market price for the individual holdings and equipment. Some people lamented over their lack of money and dropped out of the auction.
“I think the guy selling this character is a big-time weirdo.”
“How could he set the auction period for such a priceless avatar to only a single day?”
“Was he damn sure he would receive the maximum possible price for it?”
In this manner people commented the auction post to soothe their sorrows. Before long, the number of comments went beyond 900.
The auction was automatically extended a few times, and when it exceeded 300,000,000 won, several companies became actively involved.
The simple matter of the auction, the only thing people knew was that there was no end in sight. If the deal was settled for a colossal sum, numerous people would hear about it through news or word-of-mouth, the publicity effects were formidable.
To place just one ad required a pile of money, also, after painfully spending money to make an ad, people still did not bother looking closely at it. However, what about news of the highest level character being sold for a small fortune? People’s interest and attention would be concentrated.
Each company’s public relations department approached with such a perspective. Digital media intensified the competition, game broadcasters wanted to acquire the highest level character. The value or market price of the character was not a problem. Organizing a series of specials about the famous game in the past and then casting the character in question would increase the reliability and public image of the broadcasters.
Fierce competition led to the price skyrocketing, and the surge in the number of visitors made the item trading site smile with satisfaction.
The auction finally came to an end.
Five game broadcasters battled one another, but piercing though all the competition, the one that made the successful bid and received the character was CTS Media. The latest situation was its rapid expansion and increase in broadcast share that made it a promising company to go to. By intervention from the president’s secretary, the winning bid was written and submitted as the auction ended.
* * *
“Hello.”
Lee Hyun received a phone call waking him up from his sleep in the morning.
The construction job from the day before exhausted him and he had fallen asleep. He earned only 30,000 won. It was less than average because he was told off for being incompetent.
-Hello.
Unexpectedly, coming from beyond the receiver was the voice of a beautiful woman.
“Um… looks like you called the wrong number.”
Lee Hyun, certain that nobody in her right mind would ever call his house tried to put down the receiver.
However…….
-You tried selling your account over the internet, is that not so?
“Correct.”
-This is CTS Media Incorporated. I am the president’s secretary Yoon Nahee. We have deposited the amount of the current successful bid to the auction into your account, you can confirm on the item trading site, and please do not hesitate to contact us.
“Wa, wait a minute. There was a successful bid?”
-Hmm. Yes, there was. May I ask if you have not checked it yet?
“No, I was a little busy…….”
Yoon Nahee of CTS Media.
President’s secretary, even going so far as to work in financial resources, she was no ordinary woman. Also knowing 8 languages, all those around her were busy flattering her. But the fact that he did not check the auction of such a fortune was enough to overwhelm Yoon Nahee.
“How much was the successful bid?”
Lee Hyun was filled with unease. Hoping for at least over 200,000 won to pay the medical bills, he figured he should ask, but the voice Lee Hyun heard over the phone stunned him into shock.
-3,090,000,000 won.
Originally, Lee Hyun’s character, Weed, according to the market price was 150,000,000 won.
Nowadays, games at the height of popularity, the equipment alone could pass for 100,000,000 won, but if it’s an old game, the market price is on the extremely low side.
However, several factors including the limited auction deadline, the one-of-a-kind rarity and his fame led to it ultimately being over 3,000,000,000 won. The auction itself was newsworthy, which was exactly what CTS Media aimed for.
However, Lee Hyun replied bluntly.
“Are you kidding me?”
-What?
 I’m hanging up now.”
After putting down the receiver, Lee Hyun bitterly laughed.
“How did she know about the auction post? And how did she get my number to play a prank?”
Lee Hyun believed none of it. It sounded far too absurd.
However, the moment he accessed the site, his auction post floated on the main screen of the item trading site. Countless people posted comments in real time, and the auction’s successful bid amount was as she said, 3,090,000,000 won!
Lee Hyun managed not to faint only because of his grim tenacity.
‘If this is a dream, I hope I never wake up.’
The next day, Lee Hyun confirmed the money receipt that more than 3,000,000,000 won had really been deposited into his own account.
He pinched his flesh until blood could be seen, unmistakably reality! Lee Hyun rushed to show his grandma the bankbook. He still did not dare tell her in it its entirety.
“Grandma, I made money.”
“Yes.”
His grandma replied helplessly. It had been only 3 days after his ID card was issued. He could not have earned much.
“Well, good work, Hyun-ah.”
“It was not that much trouble, grandma.”
Lee Hyun handed her the bankbook.
“What is this?”
“Look. This here is the money I earned.”
His grandma rubbed her dim eyes a couple of times while looking at the bankbook. The amount stamped into the account, the reaction was disbelief.
“You, did you steal? No, no, this amount of money can’t be stolen…….”
“What I did was sell my game account.”
“Account?”
“It’s complex to explain… anyway, I obtained this money legally.”
“Then really…….”
His grandma, filled with rising emotion, softly sobbed.
“Hyun-ah, like others, we can now live without worrying about water and electricity bills anymore?”
“Of course. We can even own our own home.”
“You can go back to school……. and Hye Yeon can go to college. We no longer have to live envying others.”
His grandma was moved to tears. It was the same with Lee Hyun.
While remembering the suffering and bitterness he received.
“Now we can live happily together, grandma.”
“Yes, of course.”
With the tough times together, the two people were thrilled that much more. After several days they obtained a new house and received treatment at the hospital. In addition to his grandma’s hip, she was sick in many other ways and had to be admitted to the hospital. His little sister Hye Yeon was also delighted. But their happiness was short-lived.
The men dressed in black suits. The ones he did not want to see most came to the hospital.
Black suited men with fresh from the store shoes, they literally pushed into the hospital room. Well-built, even though only 5 came, the hospital room seemed to be filled.
All other patients panicked in fear so with help from the caregivers, they quietly slipped out.
Only Lee Hyun, his grandma and the men remained. Lee Hyun thought it fortunate his little sister wasn’t there the moment they came. But nothing good ever came from those men. He expected it would be the no different from before.
“Lee Hyun. I heard of the good fortune bestowed to your family…….”
The blonde haired man spoke.
Lee Hyun shot back sharply.
“So?”
“In the past your father took out a loan, we’re here to collect that debt.”
“Debt?”
“Yes. And now that you have the money, I believe you’re ready pay it back.”
Lee Hyun gulped swallowing his saliva. When his parents passed away, Lee Hyun inherited the 100,000,000 won debt.
It would have been fine if he had done the waiver of inheritance, but at that time Lee Hyun was young and did not know about the law. In addition, his grandma, with the grief of losing her child, did not apply the waiver of inheritance in court within 3 months and the legacy was inherited.
Therefore, Lee Hyun became indebted to the loan sharks for 100,000,000 won. He knew how ruthless they were, but now he had a lot of money. There was no need to be afraid.
“I will repay the debt. How much is it?”
“Repay?  Well, that’s fine. We treasure our esteemed customers. The money you have to pay is 3,000,000,000 won.”
At the man’s words, Lee Hyun’s temples throbbed with rage.
“Absurd……. The money my father borrowed was clearly 100,000,000 won.”
“Hey, it’s been 8 years.  I’ll report to the police.”
“Report? Knock yourself out. You think the police will take your side?”
“Police are the people’s cane.”
“Puhahahaha.”
The men laughed at Lee Hyun’s words. In particular the blonde haired man, hearing that absurdness, he put his hand on his forehead and had a good laugh. The man standing quietly behind spoke. Considering the atmosphere, he seemed like their leader.
“Explain to the kid straight up. Do not cause unnecessary trouble.”
“Yes, Hyung-nim. I’m sorry. Well kid, listen carefully. What we are doing does not break any laws. Because we received legitimate interest. To begin with, the interest is 50% of the principal amount per year. Do you want me to calculate? Year 1 it increased from 100,000,000 to 150,000,000, year 2 roughly 220,000,000, year 3 it topped 330,000,000, year 4 close to almost 500,000,000.”
At the calculation report, Lee Hyun felt despair. Debt increased 5 fold in just 4 years. 8 years passed, so it might have been 2,500,000,000, but the time that passed was more than exactly 8 years so it was not wrong to say 3,000,000,000.
Lee Hyun while being harassed by the gang members did not know how much debt he was in. Without him knowing, it accumulated to as much as 3,000,000,000.
Bankruptcy!
Others with a 3,000,000,000 debt would file bankruptcy. Even after bankruptcy you would probably owe a few thousand won. Lee Hyun did not even consider bankruptcy. It costs money just to file bankruptcy. The courts and legal counselors. Paying them money and following the necessary steps, you could enter bankruptcy.
Lee Hyun could not even afford to file for bankruptcy. In fact, even if you had the money, you can’t seriously believe the vicious loan sharks would leave you alone to file bankruptcy.
“We want 3,000,000,000.”
“No, no way.”
“No way? Suit yourself. If you don’t want to we will come again tomorrow to collect. At that time what you have to pay back will increase a little more, but your call.”
The men dressed in black suits exuded confidence. The confidence of free will, the confidence of power.
And also, Lee Hyun knew it was better to repay the debt if he could. In the first place there were no other alternatives, they came knowing he had money. The men laughed with a smirk.
“Poor grandma has been injured and hospitalized, but she sure looks comfortable in the hospital. Much like your little sister in the hallway.  Right now, we’re just talking kid. But what if this family of three was admitted to the hospital all at once. It’d be the most touching sight.”
Lee Hyun could not stand the veiled threats anymore. It couldn’t be helped. It would be enough if the men left. Those unable to repay the borrowed money, in the slums he had seen the fates of those with no money to give them. If there was a sin in the first place, it was borrowing money from them.
Not even able to depend on the law, Lee Hyun had to surrender his bankbook. The men received the bankbook on the spot, and pulled out 90,000,000 won in cash from a bag. With it was the IOU for 100,000,000 won written by Lee Hyun’s parents 8 years ago. From the beginning they knew everything and came firmly prepared.
“Thank you. And sorry for your troubles.”
As the men exited the hospital room, Lee Hyun yelled.
“Wait a minute!”
“Why kid? What’s up?”
“Someday, I will surely make you pay for this.”
“What?”
“Because the money has been paid, you guys think this is the end of things. It means later on I will get even with you guys.”
The men were about to laugh again. However, at the sight of Lee Hyun’s eyes, their laughter died before ever coming out.
A young, wild beast. The miasmic embrace of his eyes sent a chill down their spines.
“I see you still have some spirit in you. We need to teach a fearless kid like you about the world.”
The men rolled up their sleeves. But Lee Hyun was not the slightest bit scared, nor did he shrink back.
“Enough. We have already collected the money, don’t do anything unnecessary.”
“But…….”
“Do you really want to make a scene in a hospital?”
“Understood, Hyung-nim.”
The men thundered getting out.
“And kid.”
The casual leader of the men looked at Lee Hyun and gave him advice.
“I am Han Jinsup of Myongdong. Do you really your boldness will work in this poisonous world? If you think it’s unfair, make 3,000,000,000 in 5 years and look for me. Then I will serve you as my Hyung-nim.”
The loan sharks departed. Lee Hyun sat down on the ground helplessly. And at the sound of his little sister crying in the hallway, his grandma broke into a sigh.
* * *
After being robbed to the tune of 3,000,000,000, he did not have the strength to do anything. He was slammed by extreme emptiness. However, on the third day after being robbed, he stood up.
There was hope. So he could not sit and hesitate. A smile casually drifted to Lee Hyun’s mouth. Amidst the tears, laughter emerged.
It was but a moment, the touching experience of a large sum of money that seemed to enlighten him just a little about how to live in the world.
‘Right. If I earned once, I can earn twice.”
Lee Hyun was busy. 90,000,000 won was not taken away, but it did not mean he could use it all. Because the house contract was already set, 50,000,000 won was set aside.
Able to cancel, but he would have to pay a penalty.
Ultimately, the amount that could be used was only 40,000,000 won!
All thanks to the real estate slump in the early 21st century.
* * *
Using part of the remaining money, Lee Hyun registered in martial arts halls such as aikido, kendo and taekwondo. He placed himself on a rigorous schedule traversing to as many as 6 places a day. As his body broke down at the various gyms, he mastered martial arts.
The instructors there called him Wild Beast. Building his stamina, he swung his sword all day long enough for blood to flow from his hands.
Virtual reality game!
 Then learning martial arts and studying about the game system a little more, would it not be helpful?
Of course, those that learned martial arts would not be completely advantageous. But to be stronger even at level 1, it was better to learn martial arts.
Imagine being at least 10% stronger throughout the game, the tremendous effects it would bring. Because of that, Lee Hyun in the morning and daytime learned martial arts, and in the evening studied about virtual reality games. Which game had the most users, and how the game system worked was thoroughly analyzed.
For every profession, city and skill Lee Hyun made analysis tables and pinned them onto the walls of his room. The paper records bombarded Lee Hyun’s room.
1 year. Lee Hyun learned martial arts and studied virtual reality games. The time of 1 year wasn’t just a preparation period, it was also used to closely observe the development of Royal Road.
The virtual reality game at the end was as expected, Royal Road and like its name walked the path of the emperor with serenity. Possessing more than 75% of the world’s game market share, more than 90% of Korean gamers played this game. It could practically be called a scheduled sequence.
Especially during wars of kings, it came to a point where overwhelmed the viewership of all other networks. The only game in the world where anybody could obtain fame, power and money. Royal Road was the result of an ingenious system interlocking with virtual reality.
“Great. All according to plan.”
Lee Hyun’s cold eyes stared at the monitor.
That day he purchased a capsule used to connect to Royal Road for 10,000,000 won. It was expensive enough that tears seeped out, but he constantly reminded himself it was a necessary investment. All preparations finished. It was the beginning of the game. He felt like a soldier heading into the battlefield.
|
Connect to Royal Road Yes | No |
When the message came, Lee Hyun shouted without any hesitation.
“Yes!”


Our housing affordability tool pulls data from the U.S. Census and Zillow to illustrate the most affordable areas of our country.
Input your annual salary to see where you can afford to buy a single family home based on median value.*
Alternatively, view affordability based on average national income or earnings based on the federal minimum wage.
Here's how your salary compares to the national median household income and annual earnings based on the federal minimum wage.
Interested in how the cost of a single family home in your county compares to others in your state? Select a state below for a county-by-county view of the median home value.
Get the full picture of the total cost of a single family home based on your down payment amount, mortgage interest rate, and total cost of utilities.
Structure Type & Cost:
Single Family Homes and Owned Condominiums, Townhouses, and Mobile Homes. Home values from the US Census American Community Survey 5-year estimates, 2014, Table B25077 and Zillow Home Value Index, May 2016. Note that null values from Zillow reflect the limited nature of Zillow's data coverage and are not errors.
Income:
$53,482, the national median household income according to American Community Survey 5-year estimates, 2014, Table B19013. $15,080, the annual minimum wage estimate, assumes a single wage-earner household making $7.25, the federal minimum wage, and working full time.
Affordability:
Geography:
All counties in the United States and the District of Columbia.
Calculation:
Percent of income spent on = Monthly Housing Costs [Mortgage Payment + Monthly Utilities] + Property Tax + Home Insurance] / Annual Income
The tool was inspired by The Guardian's Unaffordable Country app (Sept 2015).
June 2016
Portland, OR


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Matrix
A Matrix
represents a 2-dimensional matrix.
Matrices provide a fixed number of rows and columns, with values
for each row and column.
An optional operation setValue(int,int,double)
allows
values to be set.
Two matrices should be equal if they have the same number of
rows and columns and every value is equal. Their hash codes should
be defined as specified in the documentation for hashCode()
.
| Method Summary | |
|---|---|
Vector |
columnVector(int column)
Returns the vector of values in the specified column. |
boolean |
equals(Object that)
Returns true if the specified object is a matrix
with the same number of rows and columns and the same value in
every cell as this matrix. |
int |
hashCode()
Return the hash code for the matrix. |
int |
numColumns()
Returns the number of columns in the matrix. |
int |
numRows()
Returns the number of rows in the matrix. |
Vector |
rowVector(int row)
Returns the vector of values in the specified row. |
void |
setValue(int row,
int column,
double value)
Sets the value for the specified row and column to be the specified value. |
double |
value(int row,
int column)
Returns the value in the matrix at the specified row and column. |
| Method Detail |
|---|
int numRows()
int numColumns()
double value(int row, int column)
row
- The specified row.column
- The specified column.
IndexOutOfBoundsException
- If the row or column index
are out of bounds for this matrix.void setValue(int row, int column, double value)
This operation is optional. Implementations may throw unsupported operation exceptions.
row
- Specified row.column
- Specified column.value
- New value for specified row and column.
UnsupportedOperationException
- If this operation is not
supported.
IndexOutOfBoundsException
- If the row or column index
are out of bounds for this matrix.Vector rowVector(int row)
Changes to the returned vector will affect this matrix and vice-versa. To circumvent this dependency, clone the result.
row
- Index of row whose vector is returned.
IndexOutOfBoundsException
- If the row index is
out of bounds for this matrix.Vector columnVector(int column)
Changes to the returned vector will affect this matrix and vice-versa. To circumvent this dependency, clone the result.
column
- Index of column whose vector is returned.
IndexOutOfBoundsException
- If the column index is
out of bounds for this matrix.boolean equals(Object that)
true
if the specified object is a matrix
with the same number of rows and columns and the same value in
every cell as this matrix.
equals
in class Object
that
- Object to test for equality with this matrix.
true
if the specified object is a matrix
with the same values and number of rows and columns as this
matrix.int hashCode()
java.util.List
of java.lang.Double
values
ordered row by row:
int hashCode = 1; for (int i = 0; i < numRows(); ++i) { for (int j = 0; j < numColumns(); ++j) { int v = Double.doubleToLongBits(value(i,j)); int valHash = (int) (v^(v>>>32)); hashCode = 31*hashCode + valHash; } }Note that this definition is consistent with
equals(Object)
.
hashCode
in class Object
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


We ditched blosxom_custom_flavours—you can remove it from your config.py file.
We added static rendering—see the howto in the PyBlosxom manual.
Rewrote comments to use the new handler system. You should replace the comments, pingbacks, trackbacks, and other comments-oriented plugins with the new versions from contrib/plugins/comments/.
pingbacks plugin is now xmlrpc_pingbacks.py .
Adjusted the default templates for HTML and RSS. Removed all other default templates. Look at the flavour_examples directory for flavour examples.
Added an ignore_properties property to config.py which allows you to specify which directories in your datadir should be ignored. For example:
py["ignore_directories"] = ["CVS", ".svn"]
Added a template variable pyblosxom_version which points to pyblosxom/Pyblosxom/pyblosxom.VERSION_DATE .
Fixed some code in pyarchives so it worked with Python 2.1. Thanks to Wilhelm.
Fixed template retrieving code so that you can specify templates to use for a given category or parent categories. Thanks to Nathan for fixing this.
We added a logdir property to config. PyBlosxom (and plugins) will create logs in this directory so the directory has to have write access for whatever user the webserver uses to run the script.


As May the Fourth approaches (what a wonderful coincidence), I find myself unable to contain my excitement for the Iron Yard. So instead of imploding, I have decided to write about it.
###The Beginning Less than two years ago, I was studying for law school. Today, I don’t know where my LSAT practice books are and instead I find myself writing programs for work and for fun. When I first started learning how to program, I scoured the internet for resources and devoured them. After a while, I felt like my learning had slowed down. I finished Codecademy and some books from Big Nerd Ranch but I still felt lost when I tried to create something from scratch. I began looking into different options.
The Fork With One Road
One of the first options that came up was to attend a programming bootcamp. The mere idea of an intensive full-time programming bootcamp excited me. Unfortunately, it was not financially feasible for me at the time so I begrudgingly crossed it off my list of possibilities. I had already finished my Bachelor degree so the next logical step would have been a Master program. My degree was non-technical, however, so the number of pre-reqs I needed to start graduate level courses meant an addition two years on top of the degree length. With this in mind, I resigned myself to getting a second Bachelor. I might as well get a degree if I have to take the pre-reqs right? What was I to do? I ran into what felt like an insurmountable wall just trying to self-learn.
Flames Reignited
Time passed and classes started. It would take me a while to get my degree but I didn’t feel like I had any other options. Some things happened and my girlfriend ended up moving in with me. I didn’t think much of it at the time. One day my now routine googling for programming resources led me to an article that talked about different types of education options for aspiring developers. One of the options was of course the programming bootcamp. I followed the link and ended up with a list of programming bootcamps. I glance over some. They were nice and exciting but most of them were in SF and NY which made them far too expensive due to additional living costs. Out of curiosity, I did a control+f for Houston to see if there were any nearby. To my surprise, I found the Iron Yard.
The Awesomeness
With TIY being in town, this cut the cost of attendance significantly. This is further compounded by my now reduced living expenses since my girlfriend shared living costs with me. For the first time, programming bootcamp seemed like a possibility. Being the awesome girlfriend that she is, Nicky told me that she would support my decision if I decided to quit my job and attend TIY. I had no more excuses. I emailed Brian to set up a visit and the rest is history.
Excitement
I thought I was excited when I first realized that I could actually attend TIY, however, I am somehow still getting more excited by the day. I stopped by TIY this past Wednesday for their crash course and I was reminded of why I wanted to go to TIY. Sure you could take your time to learn this stuff at home but I’m just as excited about the atmosphere and the people as I am about the learning. Let the countdown begin!


Pico
Container
Latest Released Version: 2.11.1
<#list sitemap.sections as section>
${section.name}
<#list section.entries as entry> <#if entry = page>
${entry.title}
<#else>
${entry.title}
#if> #list>
#list>
Hosted by
Tools
${title}
${body}


Im not exactly staking efficantly I have 12,000 utxo in the same address
but I think there are other stakers
and I've nailed down this "invalid block mined"
need a way of remoing a chosen utxo from the RAM Stater array ... its spending a utxo, then selecting the same one again for the next block some how
ComputerGenie 👴👴👴17-Dec-18 01:19 PM
I'm not quite sure how to word the issue....
Mostly the problem is that weight can "force" block creation too fast driving up the diff (and that large weights "seem to be" immune to that diff)
Honestly I need to look at a couple other chains, because CFEK weights are an anomaly in and of themselves
blackjok3r17-Dec-18 01:19 PM
yes ... whic is why I havent worried about it at all ... the amount of coins on this chain is astronomical
I think I have 90 million or 9 billion myself
CrisF17-Dec-18 01:20 PM
I'm getting mined then invalid block mined on cpu.
Does anyone else have crazy floods in their debug.log
ERROR: myGetTransaction: Deserialize or I/O error - ReadCompactSize():
ERROR: myGetTransaction: txid mismatch
blackjok3r17-Dec-18 02:35 PM
Seems I have got it to reset... just have to wait and see now if this fixes it
Those accept to mempory pool errors are insane .... someone must be on a fork ?(edited)
TonyL17-Dec-18 02:38 PM
I had strange situation today: KMD was on sync, showed 60 connections, showed my wallet inside but balance was 0 (actual balance on blockchain wasn't zero). Only thing which helped is ./stop./start
Notarisations on my node stopped ~13 hours ago (probably when by some reason my wallet decided that there is no balance)
But now everything ok
ComputerGenie 👴👴👴17-Dec-18 02:40 PM
@blackjok3r I don't have that, but given the my bit, I'm still thinking the tx inputs not found flood is you (edited)
blackjok3r17-Dec-18 02:41 PM
Doesnt appear so.... checking the blocks now to see if there is that many txs in them for a start...
@TonyL did you send any KMD to it ?
you cant send it amount under 1 KMD.
unless you over ride it ... instriuctions are in the readme.
strange that it just came back though
TonyL17-Dec-18 02:42 PM
I've resolved it already, just strange
blackjok3r17-Dec-18 02:42 PM
or you eman it was syncing when you checked the balance
?
TonyL17-Dec-18 02:42 PM
It was totally synced
blackjok3r17-Dec-18 02:42 PM
ah
TonyL17-Dec-18 02:42 PM
And on other node/wallet/explorer my actual balance wasnt 0
But this notary node wallet thought I have 0
blackjok3r17-Dec-18 02:43 PM
and then it simply returned
?
TonyL17-Dec-18 02:43 PM
After I ran stop and start scripts
Balance is just returned yeah
blackjok3r17-Dec-18 02:43 PM
did it rescan on start ?
There is an issue with iguana too, that might cause utxo's to get stuck on 0.
man I wish I had an explorer right now lol
TonyL17-Dec-18 02:45 PM
No, it didnt rescan
blackjok3r17-Dec-18 02:46 PM
hmm strange as.. I guess unless someone else reports it theres not much I can do atm.
as it "fixed itself " lol
I will have a look though once I am finished on this.
The mGetTransactions floods were me ... I was asking it to get a transaction if a get block failed, rather than succeded
TonyL17-Dec-18 02:50 PM
Since there is no logs and no way to replicate it's just a kinda "funny story"
blackjok3r17-Dec-18 02:51 PM
yeah lol ..
this ram staker reset fix appears to work perfectly.... Altough staking this many blocks, there is no reason to use the ram staker
TonyL17-Dec-18 02:51 PM
On my side everything seems quite clear (in spot of logs)
On notary node at least - maybe you're testing different things
blackjok3r17-Dec-18 02:52 PM
Yes .. notary nodes have ben rock stable for a fair while really .. The issues are iwht keeping chains moving ... long standing problem with POS64
blackjok3r17-Dec-18 03:26 PM
hmmm this sucks ... managed to move all of the staking functions to komodo_bitcoind.h and the RPC still hangs up ... my guess was wrong I guess
smk762 - dracocanis ominator17-Dec-18 04:05 PM
uh, about cfek...
turns out I was spamming it a bit more than ithought
gps spoofing script which writes to oracle was getting an exception which led to it bypassing the 5 minute sleep command
fixed now. hope that makes the errors disappear.(edited)
blackjok3r17-Dec-18 04:07 PM
Yeah... my guess is that you were sending so many txs that depend on each other, that they couldnt enter the mempool on other nodes.
Ive seen that happen plenty of times
they cant all arrive in the exact right order... hence mempool deny spam.
There were some pretty big blocks there for a while
smk762 - dracocanis ominator17-Dec-18 04:09 PM
yeah, no sleep, 6 or so "users" all writing in loops
removed all try/except in favour of if len(whatever)
sorry about that...
2
blackjok3r17-Dec-18 04:10 PM
all good ... Had me checing my fixes from yesterday there for a few minuts ... had some git problems today ...(edited)
Looks like I've got the ram staker working quite well now aswell
Still hangs RPC calls ... but I cant really figure out how to fix that, the mining thread is supposed to be async ... but I guess the wallet calls change that ... messing around with the LOCK2 placement atm.. doesnt seem to help (edited)


POWER HIT
Your browser does not support the audio element.
Your browser does not support the audio element.
raDIO2
www.kidzout.com
Radio1
Radio2
Open Link in External
Play
Pausa
Subir
bajar
play
stop
mute
max volume
repeat
Update Required
To play the media you will need to either update your browser to a recent version or update your
Flash plugin
.
Page Footer


Ravel Consulting group
1F, Markaz Complex, IG road,
Calicut - 673004
Phone: +91<PHONE_NUMBER>
Ravel Consulting group
Joys Land, Paruthepalam Junction,
Near Dubai Restaurant
Edapally, Ernakulam - 682024
Phone: +91<PHONE_NUMBER>
Ravel Consulting group
D/E-17, Ajmeera Infinity,
Electronic City Phase I, Karuna Nagar,
Karnataka 560100
Phone: +91<PHONE_NUMBER>
Our team includes personalized and organized professional that focuses on getting the job done, turning decisions into action and delivering results effectively.
Our expertise and innovation teams can help companies and individuals quickly pivot to take advantage of market opportunities.
We help you identify the area best suited to progressively rewire your organization to achieve access and growth.
We work collectively as one GLOBAL team maintaining stability effortlessly.


To Address
Currency Code
Amount
Transfer Attributes [ ]
Submit
Enable wallet
List all
Get currencies
Get maxlimit
Request Location
Take Picture
KVStore Key
Get
Url
Json Request
Open in new Browser
API Path
GET POST PUT DELETE
Submit Request
Submit Support Request


Hello, thsi is jsMathTest.
\omega
How much is it?
Let
\omega
be configuration of the system and
\Omega
be the set of all configurations. We define systems dynamics in such way that probability to find system in configuration
\omega
is
p(\omega)={1 \over Z} e^{-E(\omega)},
where
Z=\mathop{\sum}_{\omega \in \Omega}e^{-E(\omega)}.
After that we are to define bounded energy function
E:\Omega \rightarrow \mathbb{R}, \vert E(\omega) \vert < \infty, \forall \omega \in \Omega
This page uses javascript library
jsMath
to display mathematics.
If your browser supports JavaScript, be sure it is enabled.


LEATHERFACE: TEXAS CHAINSAW MASSACRE III A Review in the Public Domain by The Phantom<EMAIL_ADDRESS>Any film that includes the quote "I'll be in hell for breakfast" can't be all bad. And LEATHERFACE isn't, really, although it certainly isn't all good, either.
On the other hand, the Phantom has been at his wits' end recently. Christmas is always a bad time of year for him, and recently he even resorted to renting SLEEPING BEAUTY again just to see a film -- any film -- that gives him the shivers. (Truthfully, the Phantom has yet to find anyone, himself included, who isn't scared silly by the Evil Queen.)
The Phantom should also point out that he although he is a big fan of the original CHAINSAW, he was rather disappointed with its first sequel. It just seemed to trivialize what should have been a continuation of one of the most terrifying horror films ever made. Even Dennis Hopper, turning in one of his most truly lunatic performances, couldn't save it. So it was with some trepidation that the Phantom purchased his ticket for part 3.
LEATHERFACE arrived last week with quite excellent trailers, and the catch phrase "The most controversial film since..." something or other. The Phantom can't quite remember, because although he, like every other horror fan, heard the rumors about LEATHERFACE's release date being held up pending approval by the MPAA, he has to admit that the film is resolutely ordinary and not in the least controversial. In fact, much of the film plays like the shower scene from SCARFACE, except without Al Pacino's outrageous Cuban accent. That is, although most of the scenes have a violent tone about them, you really see very little. In fact, in the Phantom's opinion LEATHERFACE might even have gotten away with a PG-13, assuming the censors (er, board members) were in a charitable mood that day, and that they somehow came to believe that a film about a family of cannibals and chainsaw-wielders required only "parental guidance."
More surprisingly, although the title and trailers emphasize Leatherface and imply that he's Texas's equivalent of Jason, he's really on screen only about half the time. The other half is occupied by assorted members of his creepy family -- a family, you phans may remember, that has been killed several times over by now. In fact, the connection between this film and its two predecessors is not quite clear (except for the clever real-life connection made by the folks at New Line between a familiar name and the guaranteed box office receipts it will generate). There *is* a brief explanation that scrolls across the screen at the beginning of the film (this explanation is also read aloud, as if in acknowledgment of the likely handicaps of the film's audience), but it serves only as an excuse to get things going; really, it's nothing more than the filmmakers' way of winking at the audience and saying, "We know you like sequels, you know you like sequels... what do you want us to do, come up with an original idea or something?"
The film itself is well directed and edited and is generally suspenseful throughout. It's missing some big payoffs -- and if you expect serious, high-tech, monster gore a la HELLRAISER you'll be disappointed -- but it has enough little payoffs to make up for its lack of serious violence. It even has a few funny moments, although Leatherface will never be another Freddy; since he doesn't speak, he's limited in the kind of material he can do.  The Phantom also appreciated the feelings of tension and dread the film generated. Although things don't really get cooking (so to speak) until about half way through, the beginning of the film is by no means boring or uneventful, and much of the film is directed in such a way that you never quite know what's going to happen next. (The Phantom must admit, however, that he had his beeper turned on during the film, and that his feelings of tension and dread may therefore have had more to do with that than with the action on screen.)
The plot (sans spoilers, of course) will be familiar to anyone who has seen the original: a handful of happy-go-lucky folks get caught out in the middle of Texas, lose their way or crash their cars or both, and find that the woods hold more than just Smokey the Bear. By the way, those woods have always intrigued the Phantom; in the original CHAINSAW, they didn't really seem out of place, although in LEATHERFACE we go from highway to scrub land to forest awfully quickly. The Phantom blinked and thought the action had shifted to Vermont -- it was only the Texas drawls and the fact that the woods weren't flowing with sap after Leatherface made a few swipes at the trees that made him realize that no one had left the Lone Star state.
They meet up with the first family of Texas (no, not the Bushes) and swing axes, throw rocks, and run away from chainsaws until they finally convene for dinner. In fact, there's quite a bit of walking and running in this film, and there are probably a dozen too many shots of people's legs moving this way and that. (Perhaps the producers were hoping for Reebok or Nike to cosponsor the film, though the only product the Phantom noticed was a can of Diet Pepsi early on. Even the fabled chainsaw was generic! Think of the missed advertising opportunities here -- Leatherface could even do endorsements at local True Value hardware stores nationwide...)
Shortly thereafter some number of them escape (who escapes the Phantom won't reveal, but suffice it to say that anyone who's ever seen a horror film before will be able to guess). Or possibly no one escapes -- the ending is sufficiently dream-like to allow for the five minutes of concentrated implausibility that ends the film and, of course, for the requisite sequel.
That's the Phantom's best guess, anyway. He thinks that dreams must have played an important role in the making of LEATHERFACE, for certainly the producers were under the impression that it might enjoy the mass-market appeal of the original, and for them to think that implies either that they were dreaming or that they never bothered to watch the film themselves.
Still, LEATHERFACE is a fun film and never boring, and especially in this season of post-Christmas letdowns, with no new horror fix in the foreseeable future, it's worth a look before it hits your local Blockbusters. It's a good, solid, horror film that lacks only in the originality and creativity departments. But truthfully, the Phantom doubts that anyone could make a really good sequel to the original CHAINSAW, and while he wasn't surprised that LEATHERFACE did little more than reprise its more effective and more successful predecessor, he will say that it is entertaining enough in its own right to warrant a look.

But he still likes SLEEPING BEAUTY better....
: The Phantom<EMAIL_ADDRESS>: {cmcl2,uunet}!esquire!baumgart
.
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


California crash involving Cal Fire vehicle leaves 1 dead, authorities say
by Brie StimsonOne person was killed Friday in Northern California’s Sonoma County in a head-on crash involving a Cal Fire vehicle, the California Highway Patrol confirmed.
A driver in a Jeep was ejected and killed and a firefighter driving the Cal Fire vehicle was taken to a hospital with non-life-threatening injuries, San Francisco's KGO-TV reported.
CALIFORNIA GOVERNOR PLEADS WITH RESIDENTS TO STOP TARGETING UTILITY WORKERS
The crash happened on Lakeville Highway at Cannon Lane near the Kincade Fire, which has injured four first responders and destroyed 360 structures, according to Cal Fire (California Department of Forestry and Fire Protection). The blaze was 70 percent contained as of Friday night.
CLICK HERE TO GET THE FOX NEWS APP
The highway was closed for several hours after the crash and the cause was under investigation, according to KGO.


News
See All->Featured
See All->-
Title
-
Title
-
Title
-
Title
-
Title
Popular
See All->-
Title
-
Title
-
Title
-
Title
-
Title


Tesla's Elon Musk Blames Sledgehammer Blows For Shattered Cybertruck Window
The Cybertruck window never would have shattered had the ball been thrown first.
by Donna FuscaldoNever one to let things go, Tesla head Elon Musk finally explained what happened with the shattered window during the Cybertruck unveiling last week.
During a late-night event (at least for those in certain time zones) Tesla unveiled its much-awaited and seemingly forever teased all-electric pickup truck the Cybertruck.
RELATED: CYBERTRUCK PULLS AN F-150 UPHILL, STILL NOT IMPRESSED?
The order not the tool is to blame
The stainless steel monster, which more than 200,000 people have put a $100 deposit on, can withstand pretty much everything that is thrown at it.
Everything but a steel ball.
During the show, Musk boasted about the strength of the Cybertruck having the team throw different items at it. The body of the all-electric truck withstood several blows from a sledgehammer, but when a steel ball was lodged at it, the so-called "armor glass" of the window shattered. An embarrassing display. One Musk eventually took to Twitter to explain.
Responding to a user who blamed the sledgehammer for the window debacle, Musk wrote: "Sledgehammer impact on door cracked base of glass, which is why steel ball didn't bounce off."
It didn't shatter in practice
Musk also wanted the world to know the glass could withstand a steel ball being thrown at it, posting a video of designer Franz von Holzhuasen practicing the steel ball throw but that time the glass didn't break.
Despite the mishap, Tesla fans appear to have fallen in love with the Cybertruck. Over the weekend Tesla brought in around 200,000, with people putting down $100 to get their hands on the electric truck sometime next year.


SV Gallery plugin
by Sunsets Vision
A simple lightbox plugin solution for website galleries
empowered by Twitter Bootstrap 3.0
Download
Features
Automatically styles thumbnails
Opens images in lightbox
Gallery keyboard navigation


--- layout: post title: "Types + Properties = Software: composition" description: "In which a general transition function is composed from specialised transition functions." date: 2016-02-16 14:23 UTC tags: [Unit Testing, Software Design, F#] --- {% include JB/setup %}
{{ page.description }}
This article is the fifth in a series of articles that demonstrate how to develop software using types and properties. In the previous article, you witnessed the continued walk-through of the Tennis Kata done with Property-Based Test-Driven Development. In these articles, you saw how to define small, specific functions that model the transition out of particular states. In this article, you'll see how to compose these functions to a more general function.
The source code for this article series is available on GitHub.
If you recall the second article in this series, what you need to implement is a state transition of the type Score -> Player -> Score
. What you have so far are the following functions:
scoreWhenPoints : PointsData -> Player -> Score
scoreWhenForty : FortyData -> Player -> Score
scoreWhenDeuce : Player -> Score
scoreWhenAdvantage : Player -> Player -> Score
scoreWhenGame : Player -> Score
These five functions are all the building blocks you need to implement the desired function of the type Score -> Player -> Score
. You may recall that Score is a discriminated union defined as:
type Score = | Points of PointsData | Forty of FortyData | Deuce | Advantage of Player | Game of Player
Notice how these cases align with the five functions above. That's not a coincidence. The driving factor behind the design of these five function was to match them with the five cases of the Score type. In another article series, I've previously shown this technique, applied to a different problem.
You can implement the desired function by clicking the pieces together:
let score current winner = match current with | Points p -> scoreWhenPoints p winner | Forty f -> scoreWhenForty f winner | Deuce -> scoreWhenDeuce winner | Advantage a -> scoreWhenAdvantage a winner | Game g -> scoreWhenGame g
There's not a lot to it, apart from matching on current
. If, for example, current
is a Forty value, the match is the Forty case, and f
represents the FortyData value in that case. The destructured f
can be passed as an argument to scoreWhenForty, together with winner
. The scoreWhenForty function returns a Score value, so the score
function has the type Score -> Player -> Score
- exactly what you want!
Here's an example of using the function:
> score Deuce PlayerOne;; val it : Score = Advantage PlayerOne
When the score is deuce and player one wins the ball, the resulting score is advantage to player one.
Can you express some properties for the score function? Yes and no. You can't state particularly interesting properties about the function in isolation, but you can express meaningful properties about sequences of scores. We'll return to that in a later article. For now, let's focus on the function in itself.
You can, for example, state that the function can handle all input:
[<Property>] let ``score returns a value`` (current : Score) (winner : Player) = let actual : Score = score current winner true // Didn't crash - this is mostly a boundary condition test
This property isn't particularly interesting. It's mostly a smoke test that I added because I thought that it might flush out boundary issues, if any exist. That doesn't seem to be the case.
You can also add properties that examine each case of input:
[<Property>] let ``score Points returns correct result`` points winner = let actual = score (Points points) winner let expected = scoreWhenPoints points winner expected =! actual
Such a property is unlikely to be of much use, because it mostly reproduces the implementation details of the score function. Unless you're writing high-stakes software (e.g. for medical purposes), such properties are likely to have little or negative value. After all, tests are also code; do you trust the test code more than the production code? Sometimes, you may, but if you look at the source code for the score function, it's easy to review.
You can write four other properties, similar to the one above, but I'm going to skip them here. They are in the source code repository, though, so you're welcome to look there if you want to see them.
In this article, you saw how to compose the five specific state transition functions into an overall state transition function. This is only a single function that calculates a score based on another score. In order to turn this function into a finite state machine, you must define an initial state and a way to transition based on a sequence of events.
In the next article, you'll see how to define the initial state, and in the article beyond that, you'll see how to move through a sequence of transitions.
If you're interested in learning more about designing with types, you can watch my Type-Driven Development with F# Pluralsight course.


FROM: THE DESK OF MR.DELE MARTINS UNION BANK OF NIGERIA PLC LAGOS NIGERIA BIG, STRONG, RELIABLE. DEAR SIR, I KNOW THIS PROPOSAL WILL COME TO YOU AS A SURPRISE EXPECIALLY WHEN YOU DO NOT KNOW THE WRITER, CONDSIDERING, THE HUGE SUM OF MONEY INVOLVED WHICH COULD MAKE ANY APPREHENSIVE. LET ME START BY INTRODUCING MYSELF TO YOU, I AM MR.DELE MARTINSDIRECTOR CREDIT CONTROL, UNION BANK OF NIGERIA PLC. LAGOS. I SAW YOUR CONTACT DURING MY PRIVATE SEARCH AT THE INFORMATION CENTRE HERE IN NIGERIA CHAMBER OF COMMENCE AND INDUSTRY AND I WANT TO BELIEVE THAT YOU WILL BE VERY HONEST, COMMITTED AND CAPABLE OF ASSISTING IN THIS BUSINESS VENTURE.   THE DECEASED, ENGNIEER THEOPILIUS BAKER, BANKED WITH US AND HAS A CLOSING BALANCE AS A JULY 2000 WORTH $4.5M (FOUR MILLION FIVE HUNDRED THOSAND USD). WHICH MY BANK, NOW EXPECTES A NEXT-OF-KIN TO CLAIM AS THE BENEFICIARY OF THE FUNDS, EFFORTS HAS BEEN MADE BY UNION BANK OF NIGERIA TO GET IN TOUCH WITH THE BAKER'S FAMILY OR RELATIVE BUT TO NO SUCCESS. BASED ON THE PERCEIVED POSSIBILITY OF NOT BEING ABLE TO LOCATE ENGNIEER THEOPILUS'S NEXT-OF-KIN, THE MANAGEMENT UNDER THE INFLUENCE OF OUR CHAIRMAN AND THE BOARD OF DIRECTORS ARE MAKING ARRANGEMENTS FOR THE FUNDS TO BE DECLARED UNCLAIMED AND CHANNELED TO AN UNKNOWN ACCOUNT.  THEOPILUS BAKER SO THAT THE FUNDS, WILL BE RELEASED AND PAID INTO YOUR ACCOUNT AS THE BENEFICIARY AND THE NEXT-OF-KIN TO THE DECEASED. ALL DOCUMENTS, AND PROOF TO ENABLE YOU GET THE FUNDS HAVE BEEN CAREFULLY WORKED OUT AS WE HAVE SECURED FROM THE DIFFERENT OFFICES CONCERNED FOR THE SMOOTH TRANSFER OF THE FUND TO YOUR NOMINATED ACCOUNT.IT HAS BEEN AGREED THAT THE OWNER OF THE ACCOUNT WILL BE COMPENSATED WITH 20% OF THE REMITTED FUNDS, WHILE WE KEEP 75% AND 5% WILL BE SET ASIDE TO OFFSET EXPENSES AND PAY THE NECESSARY TAXES. IF THIS PROPOSAL SATISFIES YOU, PLEASE REACH US ONLY BY MAIL , FOR MORE INFORMATION. YOURS FAITHFULLY, MR.DELE MARTINS. NB: FOR CONFIDENTIAL REASON AND SECURITY PURPOSE,WE WILL BE COMMUNICATING THRUOGH EMAIL FOR NOW.


More than a Tonne of Cocaine Was Found in a Banana Container in Italy
More than one tonne of cocaine was seized from a banana container at the port of Gioia Tauro in the southern Italian region of Calabria. This was announced by Italian carabinieri and the financial police, BTA reported.
The container was traveling from South America and had to reach Germany. The drug found in it, totaling 1.2 tonnes, could be sold for at least EUR 250 million.
The narcotics were hidden in 144 packs in a refrigerated container designated to transport bananas, ANSA reported.
Interior Minister Luciana Lamorgese congratulated the regional Mafia Directorate, Calabrian Carabinieri and local financial police agents for the action.
According to her, this is one of the largest quantities of cocaine seized in Italy.
Gioia Tauro is the largest cargo port in Italy and the 10th largest in Europe. Cocaine trafficking in the region is controlled by the Calabrian Mafia Ndrangheta, AFP noted.


Tomorrow morning, I'll flight to Barcelona. I'll be there till sunday.
I don't know if I'll be able to attend the Mobile World Congress, but I'll try eventually.
On Friday, I've got a meeting with Apple. Job interview with 3 iOS engineers managers, plus a recruiter.
Cross your fingers! California is just past the sea... ; )