Perrin watched the mountains of Kinslayer’s Dagger uncomfortably as he rode. The way still slanted upwards, and looked as if it would climb forever, though he thought the crest of the pass must not be too much further. To one side of the trail, the land sloped sharply down to a shallow mountain stream, dashing itself to froth over sharp rocks; to the other side the mountains reared in a series of jagged cliffs, like frozen stone waterfalls. The trail itself ran through fields of boulders, some the size of a man’s head, and some as big as a cart. It would take no great skill to hide in that.
The wolves said there were people in the mountains. Perrin wondered if they were some of Fain’s Darkfriends. The wolves did not know, or care. They only knew the Twisted Ones were somewhere ahead. Still far ahead, though Ingtar had pressed the column hard. Perrin noticed that Uno was watching the mountains around them much the way he himself was.
 Verin examined him two and three times a day now, frowning, and Perrin was sure she had even tried Healing at least once, but it made no difference Perrin could see. In any case, she seemed to be more absorbed in something about which she did not speak.
Rand, Perrin thought, looking at the Aes Sedai’s back. She always rode at the head of the column with Ingtar, and she always wanted them to move even faster than the Shienaran lord would allow. Somehow, she knows about Rand. Images from the wolves flickered in his head—stone farmhouses and terraced villages, all beyond the mountain peaks; the wolves saw them no differently than they saw hills or meadows, except with a feeling that they were spoiled land. For a moment he found himself sharing that regret, remembering places the two-legs had long since abandoned, remembering the swift rush through the trees, and the ham-stringing snap of his jaws as the deer tried to flee, and . . . With an effort he pushed the wolves out of his head.
Ingtar let his horse fall back beside Perrin’s. Sometimes, to Perrin’s eyes, the crescent crest on the Shienaran’s helmet looked like a Trolloc’s horns. Ingtar said softly, “Tell me again what the wolves said.”
“I’ve told you ten times,” Perrin muttered.
“Tell me again! Anything I may have missed, anything that will help me find the Horn . . . ” Ingtar drew a breath and let it out slowly. “I must find the Horn of Valere, Perrin. Tell me again.”
There was no need for Perrin to order it in his mind, not after so many repetitions. He droned it out. “Someone—or something—attacked the Darkfriends in the night and killed those Trollocs we found.” His stomach no longer lurched at that. Ravens and vultures were messy feeders. “The wolves call him—or it—Shadowkiller; I think it was a man, but they wouldn’t go close enough to see clearly. They are not afraid of this Shadowkiller; awe is more like it. They say the Trollocs now follow Shadowkiller. And they say Fain is with them”—even after so long the remembered smell of Fain, the feel of the man, made his mouth twist—“so the rest of the Darkfriends must be, too.”
“Shadowkiller,” Ingtar murmured. “Something of the Dark One, like a Myrddraal? I have seen things in the Blight that might be called Shadowkillers, but . . . Did they see nothing else?”
“They would not come close to him. It was not a Fade.  Ingtar, the wolves who saw it passed this to others, then still others, before it reached me. I can only tell you what they passed on, and after so many tellings . . . ” He let the words die as Uno joined them.
“Aielman in the rocks,” the one-eyed man said quietly.
“This far from the Waste?” Ingtar said incredulously. Uno somehow managed to look offended without changing his expression, and Ingtar added, “No, I don’t doubt you. I am just surprised.”
“He flaming wanted me to see him, or I likely wouldn’t have.” Uno sounded disgusted at admitting it.   Suddenly his eye widened.  He pointed: a man had stepped into the way ahead of them.
Instantly Masema’s lance dropped to a couch, and he dug his heels into his horse, leaping to a dead gallop in three strides. He was not the only one; four steel points hurtled toward the man on the ground.
“Hold!” Ingtar shouted. “Hold, I said! I’ll have the ears of any man who doesn’t stop where he stands!”
Masema pulled in his horse viciously, sawing the reins. The others also stopped, in a cloud of dust not ten paces from the man, their lances still held steady on the man’s chest. He raised a hand to wave away the dust as it drifted toward him; it was the first move he had made.
He was a tall man, with skin dark from the sun and red hair cut short except for a tail in the back that hung to his shoulders. From his soft, laced knee-high boots to the cloth wrapped loosely around his neck, his clothes were all in shades of brown and gray that would blend into rock or earth. The end of a short horn bow peeked over his shoulder, and a quiver bristled with arrows at his belt at one side. A long knife hung at the other. In his left hand he gripped a round hide buckler and three short spears, no more than half as long as he was tall, with points fully as long as those of the Shienaran lances.
“I have no pipers to play the tune,” the man announced with a smile, “but if you wish the dance . . . ” He did not change his stance, but Perrin caught a sudden air of readiness. “My name is Urien, of the Two Spires sept of the Reyn Aiel. I am a Red Shield. Remember me.”
Ingtar dismounted and walked forward, removing his helmet. Perrin hesitated only a moment before climbing down to join him. He could not miss the chance to see an Aiel close up. Acting like a black-veiled Aiel. In story after story Aiel were as deadly and dangerous as Trollocs—some even said they were all Darkfriends—but Urien’s smile somehow did not look dangerous despite the fact that he seemed poised to leap. His eyes were blue.
“He looks like Rand.” Perrin looked around to see that Mat had joined them, too. “Maybe Ingtar’s right,” Matt added quietly. “Maybe Rand is an Aiel.”
Perrin nodded. “But it doesn’t change anything.”
“No, it doesn’t.” Mat sounded as if he were talking about something beside what Perrin meant.
“We are both far from our homes,” Ingtar said to the Aiel, “and we, at least, have come for other things than fighting.” Perrin revised his opinion of Urien’s smile; the man actually looked disappointed.
“As you wish it, Shienaran.” Urien turned to Verin, just getting down off her horse, and made an odd bow, digging the points of his spears into the ground and extending his right hand, palm up. His voice became respectful. “Wise One, my water is yours.”
Verin handed her reins to one of the soldiers. She studied the Aiel as she came closer. “Why do you call me that? Do you take me for an Aiel?”
“No, Wise One. But you have the look of those who have made the journey to Rhuidean and survived. The years do not touch the Wise Ones in the same way as other women, or as they touch men.”
An excited look appeared on the Aes Sedai’s face, but Ingtar spoke impatiently. “We are following Darkfriends and Trollocs, Urien. Have you seen any sign of them?”
“Trollocs? Here?” Urien’s eyes brightened. “It is one of the signs the prophecies speak of. When the Trollocs come out of the Blight again, we will leave the Three-fold Land and take back our places of old.” There was muttering from the mounted Shienarans. Urien eyed them with a pride that made him seem to be looking down from a height.
“The Three-fold Land?” Mat said.
Perrin thought he looked still paler; not sick, exactly, but as if he had been out of the sun too long.
“You call it the Waste,” Urien said. “To us it is the Three-fold Land. A shaping stone, to make, us; a testing ground, to prove our worth; and a punishment for the sin.”
“What sin?” Mat asked. Perrin caught his breath, waiting for the spears in Urien’s hand to flash.
The Aiel shrugged. “So long ago it was, that none remember. Except the Wise Ones and the clan chiefs, and they will not speak of it. It must have been a very great sin if they cannot bring themselves to tell us, but the Creator punishes us well.”
“Trollocs,” Ingtar persisted. “Have you seen Trollocs?”
Urien shook his head. “I would have killed them if I had, but I have seen nothing but the rocks and the sky.”
Ingtar shook his head, losing interest, but Verin spoke, sharp concentration in her voice. “This Rhuidean. What is it? Where is it? How are the girls chosen to go?”
 “I cannot speak of it, Wise One.”
In spite of himself Perrin’s hand gripped his axe. There was that in Urien’s voice. Ingtar had also set himself, ready to reach for his sword, and there was a stir among the mounted men. But Verin stepped up to the Aiel, until she was almost touching his chest, and looked up into his face.
“I am not a Wise One as you know them, Urien,” she said insistently. “I am Aes Sedai. Tell me what you can say of Rhuidean.”
The man who had been ready to face twenty men now looked as if he wished for an escape from this one plump woman with graying hair. “I . . . can tell you only what is known to all. Rhuidean lies in the lands of the Jenn Aiel, the thirteenth clan. I cannot speak of them except to name them. None may go there save women who wish to become Wise Ones, or men who wish to be clan chiefs. Perhaps the Jenn Aiel choose among them; I do not know. Many go; few return, and those are marked as what they are—Wise Ones, or clan chiefs. No more can I say, Aes Sedai. No more.”
Verin continued to look up at him, pursing her lips.
Urien looked at the sky as though he was trying to remember it. “Will you slay me now, Aes Sedai?”
She blinked. “What?”
“Will you slay me now? One of the old prophecies says that if ever we fail the Aes Sedai again, they will slay us. I know your power is greater than that of the Wise Ones.” The Aiel laughed suddenly, mirthlessly. There was a wild light in his eyes. “Bring your lightnings, Aes Sedai. I will dance with them.”
The Aiel thought he was going to die, and he was not afraid. Perrin realized his mouth was open and closed it with a snap.
“What would I not give,” Verin murmured, gazing up at Urien, “to have you in the White Tower. Or just willing to talk. Oh, be still, man. I won’t harm you. Unless you mean to harm me, with your talk of dancing.”
Urien seemed astounded. He looked at the Shienarans, sitting their horses all around, as if he suspected some trick. “You are not a Maiden of the Spear,” he said slowly. “How could I strike at a woman who has not wedded the spear? It is forbidden except to save life, and then I would take wounds to avoid it.”
“Why are you here, so far from your own lands?” she asked. “Why did you come to us? You could have remained in the rocks, and we would never have known you were there.” The Aiel hesitated, and she added, “Tell only what you are willing to say. I do not know what your Wise Ones do, but I’ll not harm you, or try to force you.”
“So the Wise Ones say,” Urien said dryly, “yet even a clan chief must have a strong belly to avoid doing as they want.” He seemed to be picking his words carefully. “I search for . . . someone. A man.” His eye ran across Perrin, Mat, the Shienarans, dismissing them all. “He Who Comes With the Dawn. It is said there will be great signs and portents of his coming. I saw that you were from Shienar by your escort’s armor, and you had the look of a Wise One, so I thought you might have word of great events, the events that might herald him.”
“A man?” Verin’s voice was soft, but her eyes were as sharp as daggers. “What are these signs?”
Urien shook his head. “It is said we will know them when we hear of them, as we will know him when we see him, for he will be marked. He will come from the west, beyond the Spine of the World, but be of our blood. He will go to Rhuidean, and lead us out of the Three-fold Land.” He took a spear in his right hand. Leather and metal creaked as soldiers reached for their swords, and Perrin realized he had taken hold of his axe again, but Verin waved them all to stillness with an irritated look. In the dirt Urien scraped a circle with his spearpoint, then drew across it a sinuous line. “It is said that under this sign, he will conquer.”
Ingtar frowned at the symbol, no recognition on his face, but Mat muttered something coarsely under his breath, and Perrin felt his mouth go dry. The ancient symbol of the Aes Sedai.
Verin scraped the marking away with her foot. “I cannot tell you where he is, Urien,” she said, “and I have heard of no signs or portents to guide you to him.”
“Then I will continue my search.” It was not a question, yet Urien waited until she nodded before he eyed the Shienarans proudly, challengingly, then turned his back on them. He walked away smoothly, and vanished into the rocks without looking back.
Some of the soldiers began muttering. Uno said something about “crazy bloody Aiel,” and Masema growled that they should have left the Aiel for the ravens.
“We have wasted valuable time,” Ingtar announced loudly. “We will ride harder to make it up.”
“Yes,” Verin said, “we must ride harder.”
Ingtar glanced at her, but the Aes Sedai was staring at the smudged ground, where her foot had obliterated the symbol. “Dismount,” he ordered. “Armor on the packhorses. We’re inside Cairhien, now. We do not want the Cairhienin thinking we have come to fight them. Be quick about it!”
Mat leaned close to Perrin. “Do you . . . ? Do you think he was talking about Rand? It’s crazy, I know, but even Ingtar thinks he’s Aiel.”
“I don’t know,” Perrin said. “Everything has been crazy since we got mixed up with Aes Sedai.”
Softly, as to herself, Verin spoke, still staring at the ground. “It must be a part, and yet how? Does the Wheel of Time weave threads into the Pattern of which we know nothing? Or does the Dark One touch the Pattern again?”
Perrin felt a chill.
Verin looked up at the soldiers removing their armor. “Hurry!” she commanded with more snap than Ingtar and Uno combined. “We must hurry!”


GitHub Meetup
A Quick Review of what happened at the Meetup
Create by: Adrian
Topic: Handling Large GitHub Repo
- Shallow clones for CI
- Mono repo vs Meta Repos
Topic: Docs
- GitHub for public doc
- Team Structure
Topic: Story Management
- Create Branch using jira Stories
- Get reviews and feed them into slack for live reply
Topic: Managing Community
Topic:Growing a Community
- Using a Mentor System
- Having people trained by Mentor become new Mentors
Topic: Adding more functions to development Cycle


JavaScript is disabled on your browser.
Package
Class
Tree
Deprecated
Index
Help
Prev
Next
Frames
No Frames
All Classes
Hierarchy For Package com.ichess.game
Class Hierarchy
java.lang.Object
com.ichess.game.
Common
com.ichess.game.
FEN
com.ichess.game.
Game
com.ichess.game.
Move
com.ichess.game.
MoveInfo
com.ichess.game.
MoveList
com.ichess.game.
Notation
com.ichess.game.
PGN
com.ichess.game.
Piece
com.ichess.game.
AnyPiece
com.ichess.game.
Archbishop
com.ichess.game.
Bishop
com.ichess.game.
Chancellor
com.ichess.game.
Grasshoper
com.ichess.game.
King
com.ichess.game.
Knight
com.ichess.game.
Pawn
com.ichess.game.
Queen
com.ichess.game.
Rook
com.ichess.game.
TimeUtils
com.ichess.game.
Utils
Enum Hierarchy
java.lang.Object
java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
com.ichess.game.
Common.BOARD_COLUMN
Package
Class
Tree
Deprecated
Index
Help
Prev
Next
Frames
No Frames
All Classes


{% extends 'templates/planner_card.html' %} {% block id %}book-your-first-eye-test{% endblock %} {% block css-class %}item-cta{% endblock %} {% block heading %} Book your diabetes eye check {% endblock %} {% block leadin %}
A diabetes eye check looks for damage to your eyes which can lead to sight problems and possibly blindness:


Gets shp record by id.
The record id. Starts from 1.
Remove record by a specific id.
The shp record id. Starts from 1.
Update geometry by a specific record id.
The record id to update. Starts from 1.
The geometry to update.
Generated using TypeDoc


The list of instances below were shut down
The list of instances below were already stopped and as a result no actions were performed against these instances.
The list of instances below failed to shut down. See the application logs for more details


Let's learn format for writing subtraction problem
You have 5 apples, your friend eats 3 apples.
You have two apples left
5 - 3 = 2
' - ' (minus) is the sign for subtraction,
greater number is written on the left side of minus sign,
smaller number is written on the right side of minus sign,
result has to be written on the right side of = (equal to) sign


Node.js
“Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine”
nodejs.org
First of all
Node is JavaScript for servers
Why
So, why even bother when there is Java, C#, Python, Ruby e.t.c frameworks?
Event loop
nodejs.org - Blocking vs. Non-Blocking
Hello World NodeJS http server
const http = require('http');
const hostname = '<IP_ADDRESS>';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
What is Node besides web server?
NodeJS in a nutshell
- Open source & cross-platform project
- Build on Chrome's JavaScript runtime environment
- Event driven & Non-blocking IO
- Single threaded
- Build in Async IO, HTTP/s, file-system etc
- Ability to do JavaScript on server
- Modules


{{>head}}
{{label}}
The data contains {{result.unknown_count}} site or parameter code(s) that aren't recognized by this database. These codes might correspond to existing sites and parameters, or they might be new (to this database). Use the options below to match the codes to existing codes already in the database, if any. When you are done, click Save Changes and then click continue after the changes are saved.


Personal financial crises result from unexpected events like a medical emergency, or they can just result from poor financial planning. Either way, they will wreak havoc with your budget and spiral you into debt.The thought of being hit with a major negative event that could affect your finances, such as a job loss, an illness, a car accident—or a pandemic—can keep anyone awake at night. However, the prospect of something expensive and beyond your control happening becomes less threatening if you’re properly prepared. Here are 10 steps for how to deal with an economic crisis.
This means you can take your money out at any time without incurring a financial loss. Also, unlike retirement accounts, you won’t face early withdrawal penalties or incur tax penalties when you withdraw your money, except for CDs, which usually require you to forfeit some of the interest you’ve earned if you close them early.
Don’t invest in stocks or other higher-risk investments until you have several months’ worth of cash in liquid accounts. How many months’ worth of cash do you need? It depends on your financial obligations and risk tolerance.
If you have a major obligation, such as a mortgage or a child’s ongoing tuition payments, you might want to have more months’ worth of expenses saved up than if you’re single and renting an apartment. A three-month expense cushion is considered a bare minimum, but some folks like to keep six months or even up to two years’ worth of expenses in liquid savings to guard against a long bout of unemployment.
If you don’t know exactly how much money you have coming in and going out each month, you won’t know how much money you need for your emergency fund. And if you aren’t keeping a budget, you also have no idea whether you’re currently living below your means or overextending yourself. A budget is not a parent—it can’t and won’t force you to change your behavior—but it is a useful tool that can help you decide if you’re happy with where your money is going and where you stand financially.
You might not have to do it now, but be ready to start cutting out anything that is not a necessity. If you can get your recurring monthly expenses as low as they can be, you’ll have less difficulty paying your bills when money is tight.Maybe you're in the habit of letting the heater or air conditioner run when you’re not home or leaving lights on in rooms you aren’t using. You may be able to trim your utility bills. Now might also be a good time to shop around for lower insurance rates and find out if you can cancel certain types of insurance, such as car insurance, in the event of an emergency. Some insurance companies might give you an extension, so look for the steps involved and be prepared.
Being prepared might include identifying all of your options. Do you have frequent flyer miles you can use if you need to travel? Do you have extra food in your house that you can plan meals around to lower your grocery bills? Do you have any gift cards you can put toward entertainment or sell for cash? Do you have rewards from a credit card that you can convert to gift cards? All these assets can help you lower your monthly expenses, but only if you know what you have and use it wisely. Knowing what you have can also prevent you from buying things you don’t need.
Everyone has something they can do to earn extra money, whether it’s selling possessions you no longer use (either online or in a garage sale), babysitting, chasing credit card and bank account opening bonuses, freelancing, or getting a second job. The money you earn from these activities may seem insignificant compared to what you earn at your primary job, but even small amounts can add up to something meaningful over time. Besides, many of these activities have side benefits: You might end up with a less cluttered house or discover that you enjoy your side job enough to make it your career.
In step three we recommended shopping around for lower insurance rates. If you’re carrying too much insurance—or could be getting the same coverage from another provider for a better price—these are obvious changes you can make to lower your monthly bills.
If you keep the components of your car, home, and physical health in top condition, you can catch problems while they’re small and avoid expensive repairs and medical bills later. It’s cheaper to have a cavity filled than to get a root canal, easier to replace a couple of pieces of wood than to have your house tented for termites, and better to eat healthy and exercise than end up needing expensive treatments for diabetes or heart disease. You might think you don’t have the time or money to deal with these things on a regular basis, but they can create much larger disruptions of your time and finances if you ignore them.


this is mason's blog guys
post question-analysis
How do I get to Franklin Avenue?
Franklin Ave. is very long and has a number of twists and turns that I was not aware of. Instead of asking how to get to Franklin Ave. I should have asked for specific cross streets or addresses.
Which language is easier to learn?
People have very different learning styles, knowing WHY or HOW a language is to learn is much more important than assigning an arbitrary number to its difficulty.
May I help?
Rather than asking to help, ask HOW you can help. It goes a long way.


--- layout: post title: Updating XSD file in InfoPath Form date: 2008-12-11 20:07:25.000000000 +01:00 categories: [] tags: - InfoPath - Xsd status: publish type: post published: true meta: {} author: login: admin email<EMAIL_ADDRESS>display_name: Philippe first_name: Philippe last_name: Vlérick excerpt: !ruby/object:Hpricot::Doc options: {} ---
Some time ago, I was asked to build a InfoPath form out of an Xsd file. I didn't had any experience using InfoPath, but it turned out to be pretty easy.
Today, I was asked if I could modify the form in order to take in account some changes in the Xsd.
My first attempt was to have a look in the Data Source part of the Design Task pane of the designer. However, everything in there is grayed out, so there is no way to change the values there.
My second attempt was to naively try to open the .xsn file with a text editor to see what was inside it. The content is, as expected, unreadable.
Then I stumbled upon this InfoPath Help and How-to article: Extract or combine the form files for a form template. This was what I was looking for, as it was showing how to "disassemble" the form into pieces, modify some of the content then build the form back. This is done by right clicking on the "manifest.xsf" file in windows explorer then choosing the "Design" option.
However, there is a catch. Simply replacing the old schema by the new one effectively changed in the Data Source part, but it was not automatically reflected in the form. InfoPath does not have a dynamic link to the Xsd file...
To reflect the new changes from the Xsd, you'll have to delete the part that were changed in the form, and add them again on the form.


Must be a dwarf. Will be Lawful Good. Must have Cleric (15 level min). Must have either WM or DwD. If possible, I would like some divine damager type.
Contest?
What do we win? OH, yeah.. NOTHING! THere are several dwarven clerics made, look one up.
I am wondering about the laziness of the epic builders forum when we start to see posts like this from people too lazy to search the build page.
Come on people, use your own time and search.
Peace
Lazy? Me?
Well I thought people would enjoy a challenge...
That being said, I found the following CL/WM or CL/DwD builds (taken out the ones that have less than 4 levels in one class, no monks):
I also thought it would be 'dwarvish' to wield a warhammer . GOing 13 levels in WM allows you an extra Wpn of choice no? Could one do a dual wielding variety?
OK, I'm leaning on a Cleric / WM build.
I tried a dual wielding WarHammer / Light Hammer, and he looks cool. I know it probably would make more sense if he used a HandAxe as a light weapon, but darn it if I don't just leave him with a light hammer it's so nice.
CL17/CT10/WM13 :
Warhammer: 37/32/27/22 17-20x4 L.Hammer: 37/32 17-20x3 (Both Hammers include WF and EWF) Ending STR 25 Access to Spells Level 9.
I tried also building a CL15/CT10/WM15, but I only managed to increase the AB by 1, and I lose Spells Level 9...
Both of these builds are strenght based, but I lack the feats to get Cleave / Great Cleave in order to Get Overwhelming Crit which would have been nice.
The other alternative I was thinking about was going dex route, and Perhaps being able to get Epic Dodge...


A software adventure for women
At Girl Code, beginners work together to build a web application. We meet one night a week for eight weeks.
Our classes are open to any women aged 15 or over.
We teach the same tools used by top employers like TradeMe, Spark and Air New Zealand. You'll discover what coders really do all day and what it's like to work in tech.
You don't need any previous experience – we start with the basics and our mentors help every step of the way.
Do you like making things?
At companies like TradeMe and Spark, coders build websites and apps that people use every day. There are heaps of jobs around New Zealand and the whole world. These employers need keen, creative people to give coding a chance.
Working with software means…
1 in 3 tech workers can sleep in whenever they want!
Almost all coders work together in teams
average for software engineers straight out of uni
Girl Code is a short course that lets you try being part of a real tech project.
Many of our students are leaving high school or planning a career change and are not yet sure if they want to spend years studying Computer Science at university. Our course is a quick way to see what you're getting yourself into so you can make the right choice about your future.
If you fall in love with code, you have a great career ahead of you. But even if you don't, the coding skills you learn at Girl Code will be useful in your design, business and creative pursuits.
We start with the basics. You don't need any coding experience – you just need to be ready to try new things.
With our mentors and your team there to support you, we make it fun and easy to learn to code.
The Girl Code course runs four times each year. Each class has up to ten students, and two mentors. The small class size makes it easy to get help when you need it!
Week One
Create a simple webpage using HTML and CSS, the basic building blocks of all websites.
Week Two
Make interactive webpages using JavaScript. Learn how to make parts of the page appear or move around as the user clicks on buttons.
Week Three
Create a web server using node.js and learn about server-side code. Practice using GitHub, a tool that helps teams work together and keep track of everyone's changes on a project.
Week Four to Week Eight
Start the project! From now on, everyone will make changes to the same application.
We will use project management tools to keep track of who is working on what. You will use all of the skills you developed in the first half of the course, and learn new tools and techniques depending on where the project leads us.
This part of the course is designed to be as close as possible to working on a real software project, while still being beginner-friendly.
Note: Girl Code is a short course and not a full software education. If you want to become a work-ready developer, you will need to enrol in a longer course like Enspiral Dev Academy or the University of Auckland's Computer Science degree.
Each course runs for 8 weeks.
We meet one night each week from 6:30 PM to 8:30 PM.
The cost is for the entire 16-hour course.
Scroll down to the Sign Up section to see what courses are open for sign-ups.
We meet at GridAKL / Lysaght, a startup hub that is home to over 160 entrepreneurs in Wynyard Quarter, downtown Auckland.
The GridAKL office
Alice Gatland is a web developer at Roam. She studied Web Development at Enspiral Dev Academy and also holds a degree in Mechanical Engineering from the University of Auckland.
Alice is passionate about helping more women get into technology careers. She has designed technology learning materials and taught programming to children, adults, and teachers at events across New Zealand and in New York City.
Listen to Alice talk about Girl Code on bFM:
Greta Gotlieb studied Graphic Design at AUT, she has worked in print and web ever since and has been self-employed for the last 5+ years.
Greta mainly works in software and not-for-profits. Her favourite parts of web design is problem-solving, creativity, lifestyle and the people.
Matthew Gatland studied Software Engineering at the University of Auckland. He is a video game developer and was previously a senior software engineer at Orion Health.
Matthew has spent many years in the tech industry and knows about the opportunities and challenges of the field.
He has given career talks and run workshops at more than 20 schools, and designed beginner programming activities for Auckland Libraries, Gather Workshops and OMGTech.
Please get in touch if you have any questions! You can call, text or email.


class AudioTrackUtil
The utility class which converts AudioTracks to easily-transportable data and vice versa.
internal AudioTrackUtil(server: BasaltServer)
Constructs a new AudioTrackUtil class with an attached BasaltServer. |
val server: BasaltServer
A BasaltServer reference, used to access the Source Manager. |
fun fromAudioTrack(track: AudioTrack): String
Converts a not-null AudioTrack into its data representation, which is then used for various purposes. |
|
fun toAudioTrack(data: String): AudioTrack
Converts a not-null data representation of an AudioTrack into an AudioTrack, which is then used for various purposes. |


@() @* * Call the `main` template with two arguments. The first * argument is a `String` with the title of the page, the second * argument is an `Html` object containing the body of the page. *@ @main("ImportNow") { Select a CSV file to upload @helper.form(action = routes.HomeController.upload, 'enctype -> "multipart/form-data") {
} }


Hello!
Resume Excavator, badge unlocked.
I explore the web, and build some of it.
Education
University of Southern California
Master of Science (M.S.), Computer Science - May 2014
USC Information Sciences Institute
Directed Research, Machine Learning - May 2013
Amrita School of Engineering
Bachelor of Technology (B.Tech), Computer Science - May 2012
Skills
Languages
– JavaScript (***) – Java (**) – HTML5 (***) – CSS (***) – C++ (*) – Python (*)
Frameworks
– AngularJS (***) – React (*) – Node.js (**) – Spring (**) – Rails (*) – Git (***) – Jasmine (**)
Expertise
– Advanced (***) – Intermediate (**) – Beginner (*)
Interests
– User Experience — Front End Latency — Developer Tooling — Test Automation
Experience
Software Engineer Full Stack at Ensighten
Summer 2014 - Current
- Developed user facing components and simple workflows for technically complex mobile analytics setups.
- Contributed, and owned the client side code repository mainly written in JS, HTML, CSS and AngularJS.
- Championed unit / e2e / CSS testing, linting, Git flow, code reviews and more best practices across the company.
User Experience Intern at Ontopic
Spring 2014
- Enhanced the alpha version of the product to be responsive, touch and keyboard friendly.
- Built a simple crawler that uses Twitter API and seed profiles to build a tweets data dump for analysis.
Summer Intern at Walmart Information Systems Division
Summer 2013
- Reported risks and drove decisions to deploy public mobile apps, on the internal app store for BYOD devices.
Projects
Natural Language to JavaScript Regex at Ensighten’s Internal Hackathon (awarded Best Hack)
- Built a client-side app in 3 days that suggests and converts natural language into JS regex.
- Used a Context Free Grammar, Deterministic Finite Automata and the Shunting Yard Algorithm.
- Awarded the best hack prize among 7 other hacks at Xsighten 1.1 (Ensighten’s Internal Hack fest)
Dev Tools Dependent-Element Detector at USC Web Analysis Course
- Built a firebug extension that crawls the DOM to detect elements positionally dependent on a seed element.
- Aided pixel perfect web design by allowing tweaking of CSS box model attributes of dependent elements.
Color Segmentation using a Multi-Layer Decision Tree Classification for Sophisticated Color Values
- Developed an image processing research system that cycles WEKA machine learning algorithms for experimentation.
- Reduced time to experiment with supporting modules for image disintegration, rebuilding, and reporting.
Client Side HTML5 Jukebox at Google CodeforIndia Hackathon (awarded Most Usable Hack)
- Built a jukebox in 20 hours using HTML5 Web Audio API and the SoundCloud API that plays and saves music.
- Enhanced user engagement with archival Indian classic music with real time interlay of western beats.
- Awarded most usable prize among 50 other hacks.
Technology Lead at USC Association of Indian Students Club
- Led, and deployed the redesign of the website at USC, resolving several operational bottlenecks.
- Built a matching algorithm that optimized host matching duration from several minutes to a few seconds.
Crowd Sourced Manifesto Tracker at Stanford Code for Good Initiative
- Developed a Facebook API based admin-volunteer-public login system, and polished the UX.
- Deployed and maintained the project on Heroku and AWS for the Delhi Government + Stanford initiative.
Causes
Open Source
- Participated in HacktoberFest 2015, and contributed JS code and documentation to four open source projects.
- Made bug fixes and enhancements occasionally on Front End tooling projects via Github.
Code for Good
- Hacked on two projects for Code for India, solving problems suggested by NGOs.
- Maintained a project out of Stanford's CS90SI (CS + Social Good) in collaboration with the Government of Delhi, India.
Technical Leadership
- Served as Director of Technology for Association of Indian Students at USC. Redesigned, and deployed the website.
- Introduced membership cards with a compatible check-in Android app, and other enhancements to ease operations.


Preparation time
30 mins to 1 hour
Cooking time
1 to 2 hours
Serves
Serves 4
Soused mackerel is a fragrant and beautifully summery dish, served here with fennel and carrot.
For the soused mackerel, fillet the mackerel and cut down each fillet lengthways to remove the centre bone line.
Cut the mackerel fillets in half, to create four mini fillets from each side. Season the fillets with salt and leave for 10 minutes to lightly cure.
For the pickling marinade bring 200ml/7fl oz water, the vinegar and white wine to the boil with the peppercorns, star anise and coriander seeds, add the orange zest, juice, saffron and sugar. Simmer for a couple of minutes.
In a deep tray or dish add the finally sliced fennel, top with the mackerel fillets skin side up, lay over the finely shaved carrot ribbons and shallots over the mackerel along with the coriander.
Pour the hot pickling marinade over the mackerel, making sure to cover the fish. Cling film the top of the dish to trap in the hot steam, and leave to cool. This will allow the fish to cook and lightly pickle at the same time.
Place the mackerel in the fridge for at least 30 minutes, but it can be kept for up to two days.
For the pickled orange zest, blanch the orange zest in boiling water for about a minute, then drain and refresh in iced water.
In a separate pan bring 125ml/4fl oz water, the sugar and vinegar to the boil and simmer for about three minutes.
Add the orange zest to the syrup and cook for a further five minutes. Remove from the heat and set aside to cool before using.
For the smoked eel, heat a deep fat fryer to 180C/350F, or alternatively heat vegetable oil in a deep-sided, heavy based pan, until a breadcrumb sizzles and turns brown when dropped into it. (CAUTION: hot oil is dangerous. Do not leave unattended.)
Cut the smoked eel into 2cm/1in cubes. Place the flour, egg and breadcrumbs in separate bowls. Season the flour with salt and freshly ground black pepper. Toss the smoked eel first in the seasoned flour, then dip into whisked egg and finish in the breadcrumbs.
Carefully place the breadcrumbed eel into the hot oil and cook for 2-3 minutes until golden-brown. Remove the eel from the hot oil with a slotted spoon and drain onto kitchen paper then season with salt.
To serve, remove the mackerel from the fridge and llow to come to room temperature. Spoon a little fennel into the centre of each serving bowl and top with the soused mackerel fillets. Garnish with the carrot ribbons, pickled orange zest, arrange the breaded smoked eel next to the mackerel and finish with a little of each of the cresses.


This maven2 group repository is not directly browseable at this URL.
Please use the component browser or asset browser to inspect the contents of this repository.
This maven2 group repository is not directly browseable at this URL.
Please use the component browser or asset browser to inspect the contents of this repository.


Department of Computer Science, Iowa State University
Aug 2015 - PresentAvnet Services Private Limited
June 2013 - July 2015Tata Elxsi
June 2012 - July 2012Department of Computer Science, SSN College of Engineering
2009-2013I am a Grad Student at Iowa State University. I have come to pursue my Master's in Computer Science. I was working as User Inteface Developer at Avnet Services Private Ltd from 2013 - 2015.
Personally, I am big time foodie. I love trying all kinds of food - Veggie though :'( .  When I get time I love going on long rides on my bike. Say 'hi' on Facebook and lets be friends :).


|
Brooklyn | |||||||
| PREV NEXT | FRAMES NO FRAMES |
| Interface Summary | |
|---|---|
| AccessController | |
| EntityManager | For managing and querying entities. |
| ExecutionContext | This is a Brooklyn extension to the Java java.util.concurrent.Executor. |
| ExecutionManager | This class manages the execution of a number of jobs with tags. |
| HasTaskChildren | Interface marks tasks which have explicit children, typically where the task defines the ordering of running those children tasks |
| LocationManager | For managing and querying entities. |
| ManagementContext | This is the entry point for accessing and interacting with a realm of applications and their entities in Brooklyn. |
| SubscriptionContext | This is the context through which an Entity can manage its subscriptions. |
| SubscriptionHandle | A "receipt" returned by SubscriptionContext and SubscriptionManager's subscribe() methods. |
| SubscriptionManager | The management interface for subscriptions. |
| Task | Represents a unit of work for execution. |
| TaskAdaptable | marker interface for something which can be adapted to a task |
| TaskFactory | Interface for something which can generate tasks (or task wrappers) |
| TaskQueueingContext | Marks a place where tasks can be added, e.g. a task which allows children to be added (including after it is activated); if the implementer of this is also a task, then it may be picked up by hierarchical methods (e.g. in DynamicTasks). |
| TaskWrapper | Interface for something which is not a task, but which is closely linked to one, ie. it has a task. |
| Class Summary | |
|---|---|
| AccessController.Response |
Brooklyn Multi-Cloud Application Management Platform
brooklyncentral.github.com. Apache License. © 2012.


I am user _
In this demo you can observed the public properties of all users connected to this channel and how they update in real time.


The G7 ThinQ provides the creative eye, so you can get your perfect shot. AI CAM analyses subjects in your frame and provides easy recommendations on how to improve your picture.
Your world just got a whole lot brighter. The G7 ThinQ packs additional white pixels into the screen for stunning picture clarity and brightness—while maximizing battery efficiency.
LG has announced the technical details of the LG G7 ThinQ display. Among other things, LG confirms that an IPS panel will be used. It measures 6.1 inches diagonally and has a resolution of 3,120 x 1,440 pixels. This results in an aspect ratio of 19.5:9. The LG G7 should also have a particularly bright display, the brightest in the smartphone market, according to the manufacturer. LG speaks of the panel reaching a brightness of 1,000 nits. This should ensure good legibility even in daylight. Nevertheless, the display will consume up to 30 percent less energy than previous IPS panels. In addition, LG wants to impress with its color representation. The LG G7's display supports the DCI-P3 standard and covers 100 percent of it. Users can adjust the color representation to their taste, either with several preset profiles or by setting the individual color controls according to their own wishes.


Sorry, this collection has been deleted
Please contact us to restore this collection.
{% extends '_main.html' %} {% load core_tags %} {% load datasets_tags %} {% load core_filters %} {% load static %} {% block initialGTMDataLayer %} {{ block.super }} {% endblock %} {% block page_title %} {{ source_object.name }} {% endblock %} {% block head %} {{ block.super }} {% endblock head %} {% block main %}
Please contact us to restore this collection.
{{ source_object.description|linebreaksbr }}
{{ dataset_collection.dataset.short_description }}
Search for data you'd like to add.
{% endif %}{{ visualisation_collection.visualisation.short_description }}
Search for dashboards you'd like to add.
{% endif %}{% if not collection_for_all %} Edit notes
{% endif %} {% if source_object.notes %}This collection does not have any notes. Use notes to provide additional context or information for yourself or others.
{% endif %}{{ source_object.owner.get_full_name|default_if_none:"Not assigned" }}
{% if source_object.owner %}({{ source_object.owner.email }}
){% endif %}
{% for membership in user_memberships|slice:":5" %} {{ membership.user.get_full_name }}{% if not forloop.last %}, {% endif %} {% endfor %} {% if user_memberships.count > 5 %} and {{ user_memberships.count| add:"-5"}} more {% endif %}
{% endif %} {% if collection_for_all %}This is a collection for all users. You cannot make changes to this collection.
{% else %}View and edit collection users
{% endif %} {% if not collection_for_all and source_object.user_access_type == "REQUIRES_AUTHENTICATION" %}This collection has been shared with all users.
{% endif %}


Flowr (FLWPF) Investor Presentation - Slideshow
by SA Transcripts, https://seekingalpha.com/author/sa-transcriptsThe following slide deck was published by The Flowr Corporation in conjunction with this event.
The following slide deck was published by The Flowr Corporation in conjunction with this event.


| PostgreSQL 9.0.10 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Chapter 10. Type Conversion | Next |
Values to be inserted into a table are converted to the destination column's data type according to the following steps.
Value Storage Type Conversion
Check for an exact match with the target.
Otherwise, try to convert the expression to the target type. This will succeed if there is a registered cast between the two types. If the expression is an unknown-type literal, the contents of the literal string will be fed to the input conversion routine for the target type.
Check to see if there is a sizing cast for the target type. A sizing cast is a cast from that type to itself. If one is found in the pg_cast catalog, apply it to the expression before storing into the destination column. The implementation function for such a cast always takes an extra parameter of type integer, which receives the destination column's atttypmod value (typically its declared length, although the interpretation of atttypmod varies for different data types), and it may take a third boolean parameter that says whether the cast is explicit or implicit. The cast function is responsible for applying any length-dependent semantics such as size checking or truncation.
Example 10-6. character Storage Type Conversion
For a target column declared as character(20) the following statement shows that the stored value is sized correctly:
CREATE TABLE vv (v character(20)); INSERT INTO vv SELECT 'abc' || 'def'; SELECT v, octet_length(v) FROM vv; v | octet_length ----------------------+-------------- abcdef | 20 (1 row)
What has really happened here is that the two unknown literals are resolved to text by default, allowing the || operator to be resolved as text concatenation. Then the text result of the operator is converted to bpchar ("blank-padded char", the internal name of the character data type) to match the target column type. (Since the conversion from text to bpchar is binary-coercible, this conversion does not insert any real function call.) Finally, the sizing function bpchar(bpchar, integer, boolean) is found in the system catalog and applied to the operator's result and the stored column length. This type-specific function performs the required length check and addition of padding spaces.


Easily extend form controls by adding text, buttons, or button groups on either side of textual inputs, custom selects, and custom file inputs.
Place one add-on or button on either side of an input. You may also place one on both sides of an input. Remember to place <label>s outside the input group.
Input groups wrap by default via flex-wrap: wrap in order to accommodate custom form field validation within an input group. You may disable this with the noWrap property.
Add the sizeMode property in order to change the size of the input group.
Place any checkbox or radio option within an input group’s addon instead of text.
While multiple <input>s are supported visually, validation styles are only available for input groups with a single <input>.
Multiple add-ons are supported and can be mixed with checkbox and radio input elements.
Input groups with Material Bootstrap Button as addons.
Input groups with Material Bootstrap Dropdowns that contains Material Bootstrap buttons as addons.
Input groups with Material Bootstrap Split Buttons that contains Material Bootstrap buttons as addons.
Input groups with a select insted of input.
Input groups with a file upload.


Name:
Save tabs on Android (experimental)
Summary:
Save list of open tabs. Works on Firefox for Android. Experimental only, suffers from multiple serious bugs.
Description:
This add-on saves the list of open tabs to a JSON file.
The file includes the title and URL of each tab, as well as the date and time the file was saved.
WARNING: as of Firefox for Android 68.1.1, this add-on will not save the correct title and URL for most open tabs, instead listing them with a blank title and "about:blank" as the URL.
This is because Firefox for Android saves memory by unloading background tabs (this is called "zombification"). Unfortunately, this also has the side effect of removing the title and URL of the tabs from the Webextension tabs API.
There is an option in "about:config" where the use can set "browser.tabs.disableBackgroundZombification" to true. Unfortunately, this only slightly reduces the problem; most tab URLs are still inaccessible, and the browser does not handle memory pressure as well.
There is an open Bugzilla report concerning this behavior, but it is unlikely to be fixed soon.
https://bugzilla.mozilla.org/show_bug.cgi?id=1578292
WARNING: as of Firefox for Android 80-91 and later, this add-on will not download any tab information since browser.downloads.download WebExtensions API is no longer available in Firefox for Android.
https://github.com/mozilla-mobile/fenix/issues/16585


Vice Hierarch Perwan:
Well done! You have learned the basic methods of control in the game. From now on, you can really enjoy your adventures.
Take this gift. Did you already hear the explanation about how to use it?
Now go to Kamael Village and meet the Newbie Guide there. He will advise you further, as well as give you another useful item.
To find him, follow the arrow above your head. Good luck!


Kyle Kawczynski's
Word game!
Unscramble these letters to form a
word:
(
Warning!
Sound Alert)
REYJUQ
Check


UCI is in peril! With the unsuspected threat lurking in the dark, it is now up to YOU, an inexperienced first-year undergrad, to save this university and all who live in it while also saving your grades. Ximi and the Legend of the Grade Saver is a 2D role-playing game that lets the players live like Ximi, and explore and learn about UCI.
Complete tasks on your to-do, and then add more!
Collect all the Petr stickers!
Gather clues to defeat the boss!
Adventure around UCI and learn about it!
Get ready for another experience that you cannot and will not forget...
In today's gaming world, it seems that mediocrity has become the normal — and that is just unacceptable to us.
Thus we have set out to be anormal, to break every existing mold there is to video games, and to ultimately bring you the freshest excitements.


---
layout: page
title: Tidekettle News
main_image_path: /uploads/img-2961.jpg
main_image_caption:
permalink: /news/
display_title: true
frontpage: false
description_markdown:
description: The latest news and events from Tidekettle Paper, Berwick-upon-Tweed
frontpagetitle:
_options:
layout:
hidden: true
image_path:
uploads_dir: assets/images/:year
width: 1200
height: 1200
resize_style: contain
mime_type: image/jpeg
main_image_path:
uploads_dir: assets/images/:year
width: 1200
height: 1200
resize_style: contain
mime_type: image/jpeg
content:
uploads_dir: assets/:year
_comments:
title: Page title
description: SEO one paragraph description for web search. This won't appear in your page
main_image_path: Image used to represent your page
frontpage: Show this page on the homepage
homepage_description_markdown: Text used on homepage if shown
display_title: Show page title
frontpagetitle: Alternative title for home page use
images: Add and edit images here
---
{% else %} {% endif %}
{{ post.content | strip_html | truncatewords: 50 }} read more{{ post.title }}
{% if post.main_image_path %}
{% endif %}
{% if post.main_image_path %}
Greetings to all as 2023 begins, full of hope as always for a new year.
Many thanks to those who have kindly signed onto my mailing list, only to be greeted with silence, and tumbleweeds blowing down an empty street. This is not because nothing is happening, rather the opposite. Like so many self-employed folks, I’ve been trying to do several jobs at once and not always managing to keep up with all of them.
It’s coming up on five years now since we moved to Berwick and Tidekettle opened. Back in 2018, we hit the ground running. At the time I asked our wonderful neighbour Dr. Simon Heald, the late, great owner of Slightly Foxed Books, how he had gone about the recent opening of his own shop. It seemed to me there were two options: firstly, delay opening, spend lots of time and money getting the place absolutely perfect, and do a big, splashy launch. Secondly, open up sooner while still a bit rough at the edges, and test the waters more quietly. Simon’s advice was that you don’t know how your space will work for you straight away, and that the latter was a more sensible option. How right he was, especially as the pandemic changed everything for public-facing businesses and we all had to adapt to the new normal.
We have learned so much since 2018, and it’s time to take stock.
Papermaking is a process with many stages, each requiring different types of attention and concentration, somewhat akin to ceramics in that regard. Thanks to the interdisciplinary way I learned the craft at Columbia College in Chicago, I work along multiple strands. These are, in order of time devoted to them:
This is probably typical for many similar one-person businesses. I’ve had invaluable help from Sinéad Kempley over the past couple of years, especially with tech stuff and photography, and when finances allow, would love to take on a permanent assistant.
One of the most enjoyable aspects of running the shop is presenting an inviting abundance, a rainbow variety of as many different papers as possible at a reasonable range of price points. Financial accessibility is super important as I want as many people as possible of all ages to be able to use the paper.
However, I have started to find that this approach is a bit of a recipe for overload (too many mental tabs open at once), and I need to narrow the focus a bit. In the coming year I’m going to rein it in and streamline the variety you will see in the shop, particularly in terms of colour. Of course custom orders can be as out there as you like – we will just need a bit more notice.
I also want to move towards using more locally harvested fibres, and as local plant-based papers always sell out quickly, this seems like a sensible commercial decision as well.
Another welcome development is the modest renaissance of traditional production hand papermaking in the UK after the closure of many smaller mills from the 80s onwards. Our friends at Two Rivers in Somerset are on a roll. They have been working away all along but have recently moved to new premises where they are much more visible, and visitors can see the paper being made. Most importantly, they have trained a new generation who will take the reins when needed. If you want the best specialist watercolour paper, they have it.
Another great new enterprise is the Paper Foundation in Burneside, Cumbria. When the owners of the wonderful Griffen Mill retired, they collaborated with the modern paper manufacturer James Cropper to create a new facility with very old roots. They make high quality handmade papers for artists, binders, conservators and others. They also house Simon Barcham-Green’s unique collection of heritage moulds and deckles.
As a one-person operation (for now), I do still have a wee niche at the production end of things. That is making very small-batch bespoke papers for individual projects which the slightly bigger producers might not find worthwhile, as well as keeping a selection in stock for local artists and small online customers.
I also work with fibres and inclusions which the bigger chaps and chapesses might raise eyebrows at. A vital part of the papermaking process is cleaning all the equipment between batches which is labour intensive and time consuming, and you can’t make large quantities of very unusual papers unless you are sure someone will buy them. Fewer than 100 sheets with a different plant inclusion every 5 sheets? Kozo with rag from a special garment mixed in? That’s my department.
So, going forward as people in suits like to say, I’ll be concentrating on a slightly smaller stock selection, more bespoke orders and my own artwork. The teaching side of things here in Berwick, at West Dean and Morley College goes on as ever. Thanks always for your support and here’s to 2023, when I will TRY to get out at least one newsletter. Hope springs eternal!
The most regular studio updates, pictures and news are now on Instagram, Facebook and Twitter at Lucy at Tidekettle Paper: click on the links top right to take you straight there.
You can join my mailing list via the contact page for email updates at decent intervals, though I'm rather bad at producing newsletters - too busy making paper!
Do get in touch any time using the contact page, Instagram or Facebook. We can arrange customised workshops for up to four people, adults or children - anything from an introduction to papermaking to more specialised areas. If you are an artist or student who wishes to incorporate handmade paper into a project, I would be happy to help. I also provide a reasonably-priced fibre processing service if you don't have access to a beater, do get in touch for details.
Perversions of Paper, Invitational Symposium, June 20 2014, Birkbeck College, London
Meeting the Mayor of Kagithane in Istanbul with the late, great Oz Tugrul and his lovely family (sorry no Turkish g's/i's!)
Check out my entry for The Sketchbook Project 2011
Working with young entrepreneurs
Lucy is available to teach papermaking and book arts workshops for adults and children by arrangement. Please use the contact page to discuss your requirements.


- Modify
tests/testthat/utils.R
to include skip_on_cran()
- change version numbering so it is easier to renumber when back to CRAN for fixes.
- Returned from CRAN because of errors. Mainly due to lack of Python and PyTorch installation.
- Release to CRAN
- Updated version of rTorch to adapt to new
PyTorch
versions 1.4, 1.5, 1.6.
- This rTorch release has been tested against Travis Linux, macOs, and Appveyor for Windows. All tests passed successfully. Furthermore, the package has been tested under
Python
3.6, 3.7 and 3.8. A testing matrix was implemented in Travis
and Appveyor
to test version combinations of Python, PyTorch and R. The R versions tested were R-3.4.3
, R-3.5.3
, R-3.6.3
, and R-4.0.2
.
- Fixed
travis.yml
by bringing - PYTHON_V="3.7" PYTORCH_V="1.6"
near env: metrix
. Maybe some space or alignment was preventing ennvronment variables being passed to Travis containers.
- Travis test passing with Python 3.8 in Linux and macOS. Environment variables are not being passed.
- add function
is_rtorch_env_name()
and env_name
object to torch_config()
to live unit test install_pytorch()
- add function
install_pytorch()
to vignette
- add parameter
python_version
to function conda_install()
- add backticks to roxygen text since now we are using Markdown in
Roxygen: list(markdown = TRUE)
- new pkgdown section for Installation. Add two logical functions
- use markdown in roxygen help text
- Travis test PyTorch 1.5 in R-4.0.2 for Linux and macOS with variable shortened.
- Appveyor test PyTorch 1.6 in R-4.0.2 for Windows.
- New Appveyor test with PyTorch 1.5 in R-4.0.2 for Windows. Failing. Definitely PyTorch 1.5 failing in most of the tests.
- Shorten the variable names
PYTORCH_VERSION
and PYTHON_VERSION
in Travis.
- Appveyor test PyTorch 1.6 in R-4.0.2 for Windows. Passed.
- Appveyor test PyTorch 1.5 in R-4.0.2 for Windows. Failed.
- Travis test PyTorch 1.5 in R-4.0.2 for Linux and macOS
- change logical
and
, or
and not
to be boolean or uint8 as their inputs.
- do the same for
equal
and not equal
.
- add a parameter to force to return boolean values instead of
uint8
types. Currently, AND (“!”) and OR (“|”) return booleans while NOT
and others don’t; they return uint8
. We should fix this lack of consistency.
- testing on macOS in Travis.
- add condition when PyTorch is 1.1 or lower to compare against
uint8
. Newer PyTorch versions make the conversion of the comparison and return boolean values. In 1.1 they return uint8
.
- modify functions
torch$eq()
and torch$ne()
to validate boolean inputs.
- modify tests for
eq()
and ne()
in PyTorch 1.1. They return tensor(True, dtype=torch.bool)
or tensor(False, dtype=torch.bool)
.
- add more examples in
generics.R
and properties.R
- Finding a problem when using PyTorch 1.1 in logical operations.
- logical generic functions should return
uint8
types as original PyTorch functions in generics.R
.
- new unit tests for
torch$all
, torch$any
and some generic logicals in test-tensor_comparison.R
.
- switch to a couple of Travis and Appveyor tests to save time.
- modify generic
!.torch.Tensor
to return boolean if input is boolean, otherwise return opriginal type. Fix tests in test_generics.R
and test_numpy_logical.R
.
- tests for 4 PyTorch versions in
R-4.0.2
and Python 3.7
,
- Because PyTorch 1.1 and 1.2 are failing on Python 3.8, we could install a custom pytorch with
install_pytorch(conda_python_version = "3.8", version = "1.2")
. Tests failed. But not because of PyTorch but conflict during the conda installation.
- Other custom pytorch with
install_pytorch(conda_python_version = "3.8", version = "1.4")
with tests passed.
- add
numpy
version to printout of rtorch_config()
.
- perform rebase to get rid off wrong settings for matrix jobs in travis. Keep only those settings that worked.
- maybe a good idea to remove tests with
Python 3.8
because they fail with all PyTorch versions.
- add environment variable
PYTHON_VERSION
to conda in build_script of appveyor. Twelve (12) passed.
- Duplicate matrix for Travis tests. Now we have tests for
Python 3.6
and Python 3.7
, and 3.8
for only PyTorch 1.6
, a total of 36 tests. All passed.
- Duplicate matrix for Appveyor tests. Now we have tests for
Python 3.6
and Python 3.7
, a total of 36 tests. All passed.
- Testing
develop
branch with Travis and Appveyor. All tests passed.
- branch
<IP_ADDRESS>10-fix-appveyor
- modify appveyor script. currently failing
- remove suffix
-cpu
from pytorch
and torchvision
packages from appveyor.yml
. still failing because of python version is 3.6.1.
- change python version to 3.6 in
appveyor.yml
. Passed.
-
appveyor still failing with error package ‘remotes’ was installed before R 4.0.0: please re-install it. repo
f0nzie/r-appveyor
requires some changes.
- updating file
appveyor-tool.ps1
in r-appveyor
repo. changes related to Rtools4.
- Windows tests with appveyor have been so far with
pytorch=1.1.0
. Will change to pytorch=1.4
.
- Testing Linux with
python=3.7
and pytorch=1.4
. All R versions passed.
- clean up
DESCRIPTION
. remove ctb. will credit them in README.
- Testing Linux with
python=3.7
and pytorch=1.6
. All R versions passed.
- Windows tests with
pytorch=1.4
and R-4.0.2. Passed.
- Windows tests (matrix) with
pytorch=1.2, 1.4, 1.6
and R-4.0.2. Passed.
- Windows tests (matrix) with two version of
R
: 4.0.2 and 3.6.3 over pytorch
, 1.1, 1.2, 1.4, and 1.6. using appveyor variable R_VERSION
.
- Linux tests at
python=3.8
and pytorch=1.1
failing for all R
versions. Rest of tests passed.
- Windows tests (matrix) with two version of
R
: 4.0.2
, 3.6.3
and 3.5.3
over pytorch
, 1.1, 1.2, 1.4, and 1.6. using appveyor variable R_VERSION
.
- 20200911
- add new vignette for PyTorch installation details
- clean up and imporve README
- tested on PyTorch 1.4 on macOS and Linux. All passed
- tested on PyTorch 1.6 on Linux. Passed.
- tested on PyTorch 1.2 on Linux. Passed.
- tested on PyTorch 1.2 on macOS. Passed but R-3.4.3.
- Branch
<IP_ADDRESS>08-implement-todo-items
- add test in
test_numpy_logical.R
to check sample tensors
- add test in
test_info.R
add test to check the version three components
- regenerate pkgdown site. add
make_copy
function
- Branch
<IP_ADDRESS>07-fix-auto-load-torch
- simplify imports in
package.R
- provide function for help handler after change in
on_load()
- fix function
make_copy()
to consider when an object have multiple classes. Use any
for the logical selection
- test o Travis for macOS and R-4.0.2, R-3.6.3 with pytorch=1.4. PASSED
- test o Travis for Linux Xenial and R-4.0.2, R-3.6.3 with pytorch=1.4. PASSED
- 20200829
- rename function in tests from
tensor_dim_
to tensor_ndim
- Dockerfile now using environment variables for name and version of the package insaide the script.
- export function
make_copy()
moved from unit test utilities.
- Update README. Remove mention to
torch$index
(not applicable).
- Add more installation instructions for PyTorch.
- Clarify some examples in the README. Use
message()
instead of print()
- 20200828
- All tests are passing in Travis on R-4.0.0, R-3.6.3, R-3.5.3 and R-3.4.3.
- Tests that are failing are in the
examples
.
- Error is
RuntimeError: Expected object of scalar type Byte but got scalar type Long
in [.torch.Tensor
at generics functions.
- Example causing error is a verification of the tensor
(all(y[all_dims(), 1] == y[,,,,1]) == torch$tensor(1L))$numpy()
. In older versions of R it works. We could change the test to something like as.logical((all(y[all_dims(), 1] == y[,,,,1]))$numpy()) == TRUE
. Tested in R-3.6.3 locally and PASSED. Will test via Travis.
- All tests in Ubuntu xenial with PyTorch 1.1 using Travis passed.
- Testing R-4.0.0 with PyTorch 1.1 generates 28 warnings
test_torch_core.R:211: warning: narrow the condition has length > 1 and only the first element will be used
but all test passed.
- integrating Docker with rTorch. The Docker container will create an equivalent Travis machine to save time during tests.
- Adding option
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then conda install nomkl;fi
in .travis.yml to be able to get rid off an error related to OMP
- merging branch
003.9004-fix-examples-torch-byte-to-long
with develop
.
- will start testing with PyTorch 1.4 as the average version. Installing PyTorch 1.4 with
> rTorch:::install_conda(package="pytorch=1.4", envname="r-torch", conda="auto", conda_python_version = "3.6", pip=FALSE, channel="pytorch", extra_packages=c("torchvision", "cpuonly", "matplotlib", "pandas"))
- 20200814
- creating branch, make active
fix-readme-add-tests
.
- Using _https://travis-ci.org/_
- combine tensor_functions.R and utils.R
- unit tests for transpose and permute
- Getting this warning during check:
checkRd: (5) rTorch.Rd:0-7: Must have a \description
. Also stops in travis-ci.org.
- Switching from PyTorch
1.6
to 1.1
to debug error in rTorch.Rd
- Fixed problem with rTorch.Rd. Block in package.R needed description. Added this extra line below the title:
#' PyTorch bindings for R
. The problem originated by the new R version.
- Re-install PyTorch 1.6 with
rTorch:::install_conda(package="pytorch=1.6", envname="r-torch", conda="auto", conda_python_version = "3.6", pip=FALSE, channel="pytorch", extra_packages=c("torchvision", "cpuonly", "matplotlib", "pandas"))
. Run tests. Run devtools::check(). All passed.
- Add
--run-donttest
option to check() arguments. Getting errors.
- Fix
all_dims()
examples in generics.R.
- Fix
logical_not()
examples in generics.R.
- Fix
[.torch.Tensor
examples in extract.R.
- Fix
torch_extract_opts
examples in extract.R.
- Travis stopping on error in
dontrun
examples that passed in the local machine. What is different is the PyTorch version specified in .travis.yml
. Changing variable from “1.1”" to PYTORCH_VERSION="1.6"
.
- Travis stopping on error related to suffix
pytorch-cpu==1.6
in command 'rTorch::install_pytorch(method="conda", version=Sys.getenv("PYTORCH_VERSION"), channel="pytorch", conda_python_version="3.6")'
. We need to modify function install_pytorch()
.
- tests to be performed with
R version 4.0.0 (2020-04-24) -- "Arbor Day"
- first, remove installation of gcc or libstdc++
- remove
rTorch::pytorch_install()
. Use instead rTorch:::conda_install()
.
- create environment variables for PYTORCH_VERSION, PYTHON_VERSION and LD_LIBRARY_PATH.
- remove symbolic link to
libstdc++.so.6
in the Linux installation. This is confusing Python.
- export
LD_LIBRARY_PATH=${TRAVIS_HOME}/miniconda/lib
.
- install required packages with
Rscript -e 'install.packages(c("logging", "reticulate", "jsonlite", "R6", "rstudioapi", "data.table"))
- reduce size of tensor in
test_tensor_dim.R
because throwing error due to lack of memory.
- after careful revision no more errors in Linux. Only one NOTE:
* checking for future file timestamps ... NOTE. unable to verify current time
.
- all tests running fine with R-4.0.0. Will change version to R-3.6.3.
- all tests running fine with R-3.5.3. Multiple R versions through Travis.
- all tests running fine with R-3.4.3.
- all tests passed in macOS with versions 3.6.3, 3.5.3 and 3.4.3.
- 20200810
- creating branch
fix-elimination-cpu-suffix
to address removal of suffix by developer.
- Installed PyTorch 1.1 with
rTorch:::install_conda(package="pytorch=1.1", envname="r-torch", conda="auto", conda_python_version = "3.6", pip=FALSE, channel="pytorch", extra_packages=c("torchvision", "cpuonly", "matplotlib", "pandas"))
- revise unit tests and fix version dependence. Two test failing since last release PyTorch 1.1. Four tests failing with PyTorch 1.6 installed. Related to versioning checks.
- All tests in README passing and running.
- fixed tests in
test_types.R
. Minor changes in reticulate
makes it more sensitive.
- set aside check on
mnist
dataset until internal tests are resolved
- install PyTorch 1.6 on Python 3.6`. Restart RStudio.
- fix version test with
VERSIONS <- c("1.1", "1.0", "1.2", "1.3", "1.4", "1.5", "1.6")
in test_info.R
- With PyTorch 1.6 we are getting the warning
extract syntaxsys:1: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at /opt/conda/conda-bld/pytorch_1595629417679/work/torch/csrc/utils/tensor_numpy.cpp:141.)
.
- add test custom function
expect_all_true()
in utils.R
that shortens a test with multiple TRUE returning from condition
- Fix overwriting warning by adding
r_to_py
to R array and then copying with r_to_py(r_array)$copy()
before converting to tensor
- five test files giving NumPy overwrite warning test-generic-methods.R, test_generics.R, test_numpy_logical.R, test_tensor_slicing.R, test_torch_core.R
- change functions
tensor_logical_and()
and tensor_logical_or()
in generics.R
-which use NumPy logical functions - to make a copy before converting the numpy array to a tensor
- change
as_tensor()
function in tensor_functions.R with torch$as_tensor()
. Use make_copy() to prevent PyTorch warning.
- 20190918
- Rename tensorflow old labels to pytorch
- 20190805
- Now in CRAN. 10:00
- Announce in LinkedIn and Twitter
- 20190802
- Released to CRAN at 15:20
- 20190802
- Returned from CRAN with notes
- Fix single quotes in DESCRIPTION
- Change
\dontrun
by \donttest
where applicable
- Get rid of a warning message
- Replace print/cat by message/warning
- Add
\value
to all functions with @return
- Added
cran-comments.md
- July 31 2019
- Submitted to CRAN at 15:30. Received. Waiting manual inspection.
- Test with
appveyor.yml
- Created repository r-appveyor at Oil Gains Analytics GitHub account.
appveyor
scripts now are called from this repo. Original source is at krlmlr/r-appveyor
- Test with
.travis.yml
- Copy three functions from reticulate to customize it and be able to specify the conda channel. Using
pytorch
channel in reticulate.R
.
- Specify torch-cpu and torchvision-cpu in
install.R
- Move out vignettes to reduce testing time. Will ship separately using
rsuite
.
- July 26 2019
- Vignettes temporarily moved to inst/vignettes to reduce build time of package
- Add function remainder for tensors. Equivalent to
a %% b
- Change unit tests in
test_generics.R
to use new function expect_true_tensor
- Enhance functions
any
and all
. Add examples
- Add roxygen documentation to two tensor operations
- Change download folders for MNIST datasets under project folder
- July 24 2019
- Change MNIST download folder to ~/raw_data instead of inst/
- On vignette
mnist_fashion_inference.Rmd
:
- Add dropout class to reduce overfitting
- Add a training loop for the dropout class
- Added/remove experimental code to replicate the Python function to visualize the image along with the bar plot. Unsuccessful because R (image) and Python image (plt.imshow) functions use different array dimensions.
- July 22 2019
- Added vignette
mnist_fashion_inference.Rmd
.
- Added vignette
simple_linear_regression.Rmd
.
- Add generic ! (logical not)
- Fix generics any, all using as_tensor() instead of tensor()
- July 22 2019
- New vignette using PyTorch builtin functions and classes. Rainfall dataset:
linear_regression_rainfall_builtins.Rmd
- Add comments to
linear_regression_rainfall.Rmd
- July 22 2019
- Fix version numbers. Missing the number one.
- July 22 2019
- Refresh pkgdown
- Export html files for pkgdown. Modify .gitignore.
- July 22 2019
- Add pkgdown website
- July 22 2019
- Add vignette
png_images_minist_digits.Rmd
. It uses PBG images in a local folder instead of downloading MNIST idx format images.
- Add logical operators to README.
- July 22 2019
- Add vignette
idx_images_minist_digits.Rmd
- July 21 2019
- New vignette
two_layer_neural_network.Rmd
. Had some problem with the tensor types. Fixed by using shorter generic version of the tensor gradient operation.
- July 21 2019
- Add two more vignettes.
- Get rid of a warning on roxygen documentation
- Remove old code from generics.R
- July 21 2019
- alpha version
- first release to Github
- package coming after publication of
rpystats-apollo11
- still examples to be added
- Added a
NEWS.md
file to track changes to the package.


If you're developing a new application, launching a new website, or need help refactoring a legacy system, we can help. We're experts in Ruby on Rails, React, React Native, and Jekyll ready to accept your challenge.
MoreWe support software teams, and Public Sector clients with code audits, development support, one-on-one training, and automation. Let us be your first point of contact with any technical need or concern.
MoreWe're experts in market validation, application design, project management, and product execution. Keep us in your corner as a competitive advantage, or let us help you envision your idea with a proven methodology.
More


To democratise financial privilege for everyone
using state-of-the-art technology like blockchain
and cryptocurrency.
Why Welnance
welnance aims to be the no.1 Fin-tech company in Lao.
We believe
that cryptocurrency and blockchain can shape a better
financial future
for all of us, and we are looking for the A-players
who are passionate
about Technology to join our teams.
Our Values
01 Earn Trust
02 Passionate & Dive deep
03 Challenge & Commit
04 Strive for results and actions
05 Ownership & Beyond
06 Adapt & Innovate.


### Automating the Web Archiving QA Process
#### August 02, 2014 | Atlanta, GA
[Todd Stoffer - NCSU<EMAIL_ADDRESS>[@toddstoffer](www.twitter.com/toddstoffer) | [tdstoffe<EMAIL_ADDRESS>| [go.ncsu.edu/atlanta16](https://go.ncsu.edu/atlanta16)
## QA Automation Goals
>Speed Up This Process:
>Test Crawl > Adjust Scope > Production Crawl
## QA Automation Goals
>While Also Doing This:
>* Better Utilize Student Employees
>* Document QA results for an asynchronous work environment
>* Limit additional costs (developer time)
## Current Web Archiving Workflow
![web archiving workflow](/images/partner-meeting/web-archiving-process.png)
### Initial QA Workflow
![web archiving workflow](/images/partner-meeting/qa-step-1.png)
### Task Grouping
![web archiving workflow](/images/partner-meeting/qa-step-2.png)
### Optimized QA Workflow
![web archiving workflow](/images/partner-meeting/qa-step-3.png)
## Tools We Use
* Google Forms
* Google Sheets
* Google App Scripts
* Trello
* SnagIT (Screenshots)
## How it Works
![web archiving workflow](/images/partner-meeting/system-steps.png)
## Google Forms
### [QA Automation Demo Form](https://docs.google.com/a/ncsu.edu/forms/d/e/1FAIpQLSfvHD8-_36y8B1C0grjay5MJWGs5rvpLqyDfLMCucyXOJWq9Q/viewform)
## Google Sheets
### ![Google Sheets Responses](/images/sheets.png)
## Google App Scripts
* JavaScript Platform
* In the Cloud - Always On
* Can trigger 'On Form Submit'
## Sample Script
'function formSubmitReply(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var row = SpreadsheetApp.getActiveSheet().getLastRow();
var sendToEmail =<EMAIL_ADDRESS><EMAIL_ADDRESS>var issueNumber = row;
//Overview information to be included in every ticket
var seed = e.values[2];
var wayback = "https://wayback.archive-it.org/7087/*/"+ e.values[2];
//Display error information, to be included in tickets where display error == yes
var displayError = e.values[3];
var displayErrorSource = e.values[4];
var displayErrorType = e.values[5];
var displayErrorDetails = e.values[6];
var displayErrorImage = e.values[7];
//Ready to Be Included in Hunt Library Collection?
var QAstatus = e.values[8];
var otherErrorDetails = e.values[9];
//Messages to Include in Every Ticket Body
var crawlDetails = "Seed: " + seed +"\n" + "Wayback Link: " + wayback;
//Specific Error Details
//Add Message for Display Issues
var displayIssues;
if (displayError == "Yes") {
displayIssues = "Display Issues: " + displayError + "\n" + "Display Error Source (Wayback, Proxy, Live): " + displayErrorSource + "\n" + "Display Error Type: " + displayErrorType + "\n" + "Display Error Details: " + displayErrorDetails + "\n" + "Screenshot: " + displayErrorImage;
}
else { displayIssues = "Display Issues: No Display Issues";
}
//Add Message for Ready for Inclusion
var readyToInclude;
if (QAstatus == "No") {
readyToInclude = "Is this site ready to be included in Hunt Library Impact Collection? " + QAstatus + "\n" + "Reason: " + otherErrorDetails;
}
else {readyToInclude = "This seed passed QA and can be included in the Hunt Library Impact Collection";
}
//Email Message Construction
var subject = "Ticket Number: " + issueNumber + " " + QAstatus;
var emailBody = crawlDetails + "\n\n" + displayIssues + "\n\n" + readyToInclude;
//Send Email Only If Errors Present
MailApp.sendEmail(sendToEmail, subject, emailBody)
}'
## Trello Board
![Trello Example](/images/trello-board.png)
## Trello Card
![Trello Example](/images/trello.png)
## Other Tools to Consider
* Zapier
* IFTTT
* Excel / Macros
## Results
* Hunt Library Impact collection
* 244 Initial Seeds
* Averaged 50 Seed per Day QA Rate
* Fills in Time Gaps of Current GA
* Reduced Go-Live Time by Months
## Results Part 2
* NC State Websites Collection
* Reformatted to focus on seed scoping
* Addresses hosts with large queued document numbers
* Able to spread QA work throughout staff
## What's Next?
* Update script management
- Move out to standalone scripts
- Add version control (GitHub)
* Add additional functionality
- Focus on quantitative measures
* Develop and publish tutorial
## Takeaways
* Automation doesn't have to be complicated or expensive
* It's fine to automate even small portions of the process
* One tool does fit everyone, find ways to better utilize the tools you have available
## Questions?
[Todd Stoffer - NCSU<EMAIL_ADDRESS>[@toddstoffer](www.twitter.com/toddstoffer) | [tdstoffe<EMAIL_ADDRESS>| [go.ncsu.edu/atlanta16](https://go.ncsu.edu/atlanta16)
*********
### Demo Google Forms
[go.ncsu.edu/qa-demo](https://go.ncsu.edu/qa-demo)


When running a build in the chroot environment, there are occasionally
files that you must retrieve from the chroot that are not part of the
normal build. For example, some files that you may need to get back
would include test results, auto-generated files, etc.
Set this variable in order to get the files back from the chroot build
environment.
The files that are retrieved will also automatically be archived as well
with the other build results.
This must be a comma-separated list; spaces are allowed.


The fox went over the fence
The
super fast
cat
is the best animal
in the world of animals.
D3 Visualization for Mock Data


Blink does not prevent <video controls tabindex="-1">
getting focus when using the Tab key.
I assume this is because the player controls are provided in a ShadowRoot that does not realize its ShadowHost was removed from the
document's tab sequence (by way of `tabindex="-1"`). Focusing the video element by Tab can be avoided by removing the
controls
attribute, but I assume that has other undesired side effects.
Note that you need to hit Tab several times because the video controls are also in the tab sequence, but you won't *see* them actually having focus.
Also note that the second video element (the one not supposed to get focus), emits a focus
event, but does not render the focus outline


If you need a good laugh, click the 'Begin' button below to discover new jokes but, WATCH OUT! Any time a joke about Chuck Norris is said, he will come find you!


What Programming Track is Right for Me?
This short survey can help you to strategize which programming path will be an optimal fit.
Question 1: What kind of technology do you like to work with?
I'm interested in technology that has been around for a while and is "tried and true."
I want to work with technology that is popular in many environments.
I want to work on websites that are interactive.
I like to work behind the scenes.
Question 2: What kind of environment do you want to work in?
I'd like to work for a company that's been around for awhile and build up my name.
I want to work for a Fortune 500 company.
I think I'd like to work for a small startup firm and get my foot in the door.
I want a stable government job.
Question 3: Which appeals to you more?
Reliable internal business software and solutions.
Multipurpose software available on phones, tablets, and computers.
Increased productivity and speed.
Streamlined webpage creation.
Question 4: Pick a business:
Microsoft
Android
Hulu
Etsy
Question 5: Level of difficulty
Vast libraries abound and can be tricky-challenging.
Many libraries involved in this language- intermediate level.
Bills itself as a starter language for folks to pick up- easy.
Viewed as fairly comprehensible, but inconsistent-intermediate.
Results!
Ruby
It might be a good idea to get your feet wet with Ruby and eventually Rails!
Php
It looks like you should try your hand at Php.
Java
Java seems right up your alley.
cSharp
Get funky with C sharp.


---
layout: default
---
Projects
{% for project in site.data['page_collections']['projects'].pages %}
- {{ project.title }}
{% endfor %}
This one is particularly neat: Jekyll Page Collections
Team
{% for team in site.data['page_collections']['team'].pages %}
- {{ team.title }}
{% endfor %}
Miscellaneous
{% for misc in site.data['page_collections']['miscellaneous'].pages %}
- {{ misc.title }}
{% endfor %}


Real Programmer
`Prev `__
R
`Next `__
--------------
**Real Programmer**: n.
[indirectly, from the book *Real Men Don't Eat Quiche*] A particular
sub-variety of hacker: one possessed of a flippant attitude toward
complexity that is arrogant even when justified by experience. The
archetypal Real Programmer likes to program on the `*bare
metal* <../B/bare-metal.html>`__ and is very good at same, remembers the
binary opcodes for every machine he has ever programmed, thinks that
HLLs are sissy, and uses a debugger to edit his code because full-screen
editors are for wimps. Real Programmers aren't satisfied with code that
hasn't been tuned into a state of `*tense* <../T/tense.html>`__\ ness
just short of rupture. Real Programmers never use comments or write
documentation: “If it was hard to write”, says the Real Programmer, “it
should be hard to understand.” Real Programmers can make machines do
things that were never in their spec sheets; in fact, they are seldom
really happy unless doing so. A Real Programmer's code can awe with its
fiendish brilliance, even as its crockishness appalls.
Their successors generally consider it a `*Good
Thing* <../G/Good-Thing.html>`__ that there aren't many Real Programmers
around any more. For a famous (and somewhat more positive) portrait of a
Real Programmer, see `The Story of Mel' <../story-of-mel.html>`__ in
Appendix A. The term itself was popularized by a letter to the editor in
the July 1983 Datamation titled *Real Programmers Don't Use Pascal* by
Ed Post, still circulating on Usenet and Internet in on-line form.
Typing *Real Programmers Don't Use Pascal* into a web search engine
should turn up a copy.
--------------
+------------------------------------------+----------------------------+----------------------------------+
| `Prev `__ | `Up <../R.html>`__ | `Next `__ |
+------------------------------------------+----------------------------+----------------------------------+
| real operating system | `Home <../index.html>`__ | Real Soon Now |
+------------------------------------------+----------------------------+----------------------------------+


| source_han {showtextdb} | R Documentation |
These functions provide information of the Source Han Sans/Serif fonts
that can be used in the font_install()
function.
Source Han Sans/Serif fonts provide complete support for the
CJK (Chinese, Japanese, and Korean) characters.
source_han_sans(lang = c("CN", "TW", "JP", "KR")) source_han_serif(lang = c("CN", "TW", "JP", "KR"))
lang |
Language of the font. "CN" for simplified Chinese, "TW" for traditional Chinese, "JP" for Japanese, and "KR" for Korean. |
Yixuan Qiu <https://statr.me/>
## Not run: ## Install Source Han Sans font (by default Simplified Chinese) ## to the showtexdb package font_install(source_han_sans()) ## Source Han Serif Japanese font_install(source_han_serif("JP")) ## End(Not run)


The sensor operation interface (Dedicated for TOPSENS own cameras).
More...
#include <TopsensSensor.hpp>
|
| static Error | Count (uint32_t &count) |
| | Gets the count of available sensors. More...
|
| |
| static Error | Preload (const uint32_t *resources, uint32_t count) |
| | Preloads resource data to minimize sensor startup delay. More...
|
| |
| static Error | Preload (const std::initializer_list< uint32_t > &list) |
| | Preloads resource data to minimize sensor startup delay. More...
|
| |
The sensor operation interface (Dedicated for TOPSENS own cameras).
Definition at line 11 of file TopsensSensor.hpp.
◆ Sensor()
◆ ~Sensor()
◆ Close()
◆ Count()
| static Error Count |
( |
uint32_t & |
count | ) |
|
|
inlinestatic |
Gets the count of available sensors.
- Parameters
-
| count | The count of available sensors. |
- Returns
- Error::Ok if the call succeeds, otherwise refer to Error for the specific meaning.
Definition at line 19 of file TopsensSensor.hpp.
◆ GetOrientation()
◆ IsDepthAligned()
Checks whether the depth image is aligned with the color image.
- Returns
- True if the depth image is aligned with the color image, otherwise false.
Definition at line 248 of file TopsensSensor.hpp.
◆ IsImageFlipped()
Checks whether the image is flipped.
- Returns
- True if the image is flipped, otherwise false.
Definition at line 215 of file TopsensSensor.hpp.
◆ IsMaskEnabled()
Checks whether user mask is enabled.
- Returns
- True if user mask is enabled, otherwise false.
Definition at line 280 of file TopsensSensor.hpp.
◆ IsRecording()
Checks whether records stream to file.
- Returns
- True if records strem to file, otherwise false.
Definition at line 313 of file TopsensSensor.hpp.
◆ Open()
| Error Open |
( |
uint32_t |
index | ) |
|
|
inline |
Opens the sensor instance.
- Parameters
-
| index | The index value of the sensor to use (starting from 0). |
- Returns
- Error::Ok if the call succeeds, otherwise refer to Error for the specific meaning.
Definition at line 62 of file TopsensSensor.hpp.
◆ Preload() [1/2]
| static Error Preload |
( |
const std::initializer_list< uint32_t > & |
list | ) |
|
|
inlinestatic |
Preloads resource data to minimize sensor startup delay.
- Parameters
-
| list | Preloaded resource id list. |
- Returns
- Error::Ok if the call succeeds, otherwise refer to Error for the specific meaning.
Definition at line 40 of file TopsensSensor.hpp.
◆ Preload() [2/2]
| static Error Preload |
( |
const uint32_t * |
resources, |
|
|
uint32_t |
count |
|
) |
| |
|
inlinestatic |
Preloads resource data to minimize sensor startup delay.
- Parameters
-
| resources | Preloaded resource id array. |
| count | The count of id array. |
- Returns
- Error::Ok if the call succeeds, otherwise refer to Error for the specific meaning.
Definition at line 30 of file TopsensSensor.hpp.
◆ SetConfig()
◆ SetDepthAligned()
| Error SetDepthAligned |
( |
bool |
aligned | ) |
|
|
inline |
Sets whether the depth image is aligned with the color image.
- Parameters
-
| aligned | The depth image is aligned with the color image if true, otherwise not aligned. |
- Returns
- Error::Ok if the call succeeds, Error::InvalidOperation if the sensor has been started, otherwise refer to Error for the specific meaning.
Definition at line 233 of file TopsensSensor.hpp.
◆ SetImageFlipped()
| Error SetImageFlipped |
( |
bool |
flipped | ) |
|
|
inline |
Sets whether the image is flipped.
- Parameters
-
| flipped | The image is flipped if true, otherwise not flipped. |
- Returns
- Error::Ok if the call succeeds, Error::InvalidOperation if the sensor has been started, otherwise refer to Error for the specific meaning.
Definition at line 200 of file TopsensSensor.hpp.
◆ SetMaskEnabled()
| Error SetMaskEnabled |
( |
bool |
enabled | ) |
|
|
inline |
Sets whether to enable user mask.
- Parameters
-
| enabled | Enabled if true, otherwise not enabled. |
- Returns
- Error::Ok if the call succeeds, Error::InvalidOperation if the sensor has been started, otherwise refer to Error for the specific meaning.
Definition at line 265 of file TopsensSensor.hpp.
◆ SetOrientation()
◆ SetRecording()
| Error SetRecording |
( |
bool |
recording | ) |
|
|
inline |
Sets whether records stream to file.
- Parameters
-
| recording | Records stream to file if true, otherwise not record. |
- Returns
- Error::Ok if the call succeeds, Error::InvalidOperation if the sensor has been started, otherwise refer to Error for the specific meaning.
Definition at line 298 of file TopsensSensor.hpp.
◆ Start()
Starts the sensor instance.
- Parameters
-
| colorResolution | Color image resolution. |
| depthResolution | Depth image resolution. |
| generateUsers | Generates users if true, otherwise doesn't generate users. |
- Returns
- Error::Ok if the call succeeds, otherwise refer to Error for the specific meaning.
Definition at line 87 of file TopsensSensor.hpp.
◆ Stop()
◆ WaitColor()
Gets a color frame within a certain time limit.
- Parameters
-
| frame | color frame. |
| timeout | Waiting time limit. |
- Returns
- Error::Ok if the call succeeds, Error::Timeout if the new frame is not successfully obtained within the specified time, otherwise refer to Error for the specific meaning.
Definition at line 117 of file TopsensSensor.hpp.
◆ WaitDepth()
Gets a depth frame within a certain time limit.
- Parameters
-
| frame | Depth frame. |
| timeout | Waiting time limit. |
- Returns
- Error::Ok if the call succeeds, Error::Timeout if the new frame is not successfully obtained within the specified time, otherwise refer to Error for the specific meaning.
Definition at line 134 of file TopsensSensor.hpp.
◆ WaitUsers()
Gets a users frame with a certain time limit.
- Parameters
-
| frame | Users frame. |
| timeout | Waiting time limit. |
- Returns
- Error::Ok if the call succeeds, Error::Timeout if the new frame is not successfully obtained within the specified time, otherwise refer to Error for the specific meaning.
Definition at line 151 of file TopsensSensor.hpp.
The documentation for this class was generated from the following file:


Add New Student
UserID:
Name:
Date of Birth:
Email:
Phone Number:
Address:
Password:
Is Active:
Type of User:
Add Student


Guidance
Technical specification for software suppliers defining the scope of the year 1 phonics screening check data collection 2012.
PDF , 187KB , 17 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
This specification defines the scope of the year 1 phonics screening check data collection 2012. It provides technical details and guidance for schools, academies (including free schools) local authorities, and software suppliers to successfully prepare and submit phonics screening check data to us.
It contains:
This guide must be read in conjunction with the current version of the common basic data set (CBDS) .
Published: 17 December 2013


I have a multimap with over 300k entries defined like so: std::multimap<std::string, std::string> filedata;
Using the following code and std::multimap::equal_range, I am able to successfully search for a word in the multimap and get needed data:
1 2 3 4 5 6 7 8
// Data with strings.
data = std::vector<std::string>();
// Get iterators to matched pairs.
std::pair <std::multimap<std::string, std::string>::iterator, std::multimap<std::string, std::string>::iterator> dat = filedata.equal_range(word);
// Go through each matched pair and get needed info.
for (std::multimap<std::string, std::string>::iterator iter = dat.first; iter != dat.second; iter++) {
data.push_back(iter->second);
}
Now, I would like to search the multimap using regular expressions (EX: std::regex("\\b[a-z][a-e]h\\b")). What is the fastest way to do this? Example code may look like: std::pair <std::multimap<std::string, std::string>::iterator, std::multimap<std::string, std::string>::iterator> dat = filedata.equal_range_with_regex(std::regex("\\b" + word + "\\b"));. Pseudo-code / algorithms will be enough.
By fastest, do you mean getting the work done fast or performance? Whatever people post, you know you'll have to profile to confirm what is or isn't the fastest approach in terms of performance. Can you do it on your own at all? If not, then first you need to do it somehow. Then worry about optimizing it.
By the way, typedef is your friend and mine too. It'll make your example code much easier to read.
I don't really see how equal range could work with a regex, to be honest with you. A regex match is not the same thing as equivalence between too strings, and the algorithm is designed to work on a sorted range.
I meant getting the work done fast (chrono). Thank you for your input and suggestions! Like you said, equal_range was not really useful in this case and I was forced to do it the old-fashioned, brute-force way and and iterate through the whole multimap and use std::regex_match to check each pair...


The assumption of “Poster-Set” is that a tie between individuals is defined by the group of people who contributed a post and any comments. All these people have a tie so this is an undirected network. Ties are are not weighted by the number of comments by the same person and self-commenting (loops) are ignored.
Not all course participants are considered; only people who made a contribution to the forums appear. People may be “isolates” only if they made a post that never received a comment.
Individuals who withdrew (were deleted) are not counted; other analysis will rely on role information, which is not available for these people (although it could be imputed as access_group_id=4).
## Saved to P-Set.RData
| id | nodes | edges | isolates | graph density*1000 | diameter | degree | closeness | betweenness |
|---|---|---|---|---|---|---|---|---|
| aiplan | 499 | 344 | 271 | 2.7686 | 9 | 0.1646 | 0.0016 | 0.1103 |
| astro | 3889 | 11402 | 1689 | 1.5082 | 12 | 0.0363 | 0.0003 | 0.0201 |
| crit | 4688 | 8163 | 2856 | 0.7430 | 12 | 0.0319 | 0.0001 | 0.0289 |
| edc | 2544 | 12351 | 918 | 3.8183 | 9 | 0.0662 | 0.0005 | 0.0283 |
| equine | 6244 | 9657 | 3823 | 0.4955 | 10 | 0.0299 | 0.0001 | 0.0165 |
| intro | 6989 | 23877 | 3346 | 0.9778 | 12 | 0.0514 | 0.0001 | 0.0235 |
The density is the proportion of possible edges that actually exist. Diameter is the longest path between two people, in this case the direction of edges is significant. The degree statistics give a relative measure (relative to the theoretical maximum for the network size, and comparable between courses) of the extent to which ties are concentrated. A value of zero would imply all people have the same degree centrality. A value of 1 would indicate that one person is maximally central.
Degree, closeness and betweenness for an individual differ as follows:
## Saved to P-Set I.RData
| id | nodes | edges | isolates | graph density*1000 | diameter | degree | closeness | betweenness |
|---|---|---|---|---|---|---|---|---|
| aiplan | 34 | 12 | 21 | 21.3904 | 4 | 0.2027 | 0.0153 | 0.0612 |
| astro | 2292 | 6652 | 998 | 2.5336 | 11 | 0.0503 | 0.0005 | 0.0235 |
| crit | 1493 | 2630 | 929 | 2.3613 | 11 | 0.0567 | 0.0004 | 0.0221 |
| edc | 293 | 90 | 195 | 2.1039 | 14 | 0.0289 | 0.0015 | 0.0265 |
| equine | 5101 | 6026 | 3364 | 0.4633 | 10 | 0.0305 | 0.0001 | 0.0175 |
| intro | 4535 | 10080 | 2551 | 0.9805 | 14 | 0.0228 | 0.0002 | 0.0162 |
## Saved to P-Set noI.RData
| id | nodes | edges | isolates | graph density*1000 | diameter | degree | closeness | betweenness |
|---|---|---|---|---|---|---|---|---|
| aiplan | 481 | 280 | 252 | 2.4255 | 10 | 0.1712 | 0.0017 | 0.1355 |
| astro | 2797 | 3877 | 1022 | 0.9915 | 15 | 0.0269 | 0.0004 | 0.0297 |
| crit | 3952 | 2033 | 2342 | 0.2604 | 15 | 0.0213 | 0.0002 | 0.0381 |
| edc | 2440 | 3102 | 844 | 1.0425 | 11 | 0.0326 | 0.0005 | 0.0466 |
| equine | 2851 | 3736 | 1042 | 0.9196 | 11 | 0.0588 | 0.0004 | 0.0724 |
| intro | 4374 | 6673 | 1441 | 0.6977 | 13 | 0.0373 | 0.0003 | 0.0544 |