If you're an undergraduate/recent undergrad who wants to understand what doing research is all about, resources on this page should help you get a sense for it.
Tags:
Currently, undergrads in science and engineering ought to be exposed to the following milestones in landing on a career in research/a researchy job.
There exist the following twin problems which undergrads face.
In colleges/universities which do not emphasize research (for example, >99% of the universities in India), majority students have no idea about point 1 and 2 mentioned above. The possibility of doing research, and an understanding of what that career may offer is not even in their vocabulary. Consequently, they are just not aware of points 3 onwards.
A few outliers in such universities are aware of points 1, 2, but have no idea how to operationalize that desire into specific skills which will be valuable to their research trajectory. They are largely unaware of points 3 onwards, will try to reach out to faculty from various other universities by cold-emailing them without appreciating step 4, may end up with weak research stints at local universities, and will likely then rush into step 6–applying to grad schools.
This problem is definitely persistent in universities with a good research ecosystem as well (say, a few IITs etc. in India). Around 60-70% (based on my estimates after having interacted with undergrads at MIT) have no clue about steps 1, 2.
Further, there’s a dual to this problem seen in universities with a good research ecosystem–of those students who largely appreciate points 1, 2 have a broken sense for point 3. There’s an overemphasis of “doing research” to pick up those LORs and to add it to one’s CVs, so that they can apply to the “best” grad schools. However, the introspective aspect of whether they truly appreciate the nuances their chosen field has to offer, are genuinely excited by some problems, trying out a good breadth of concrete projects, not being cowed down by peer pressure to apply to different grad schools, etc. don’t seem to be conveyed/reinforced. In India, there’s this added peer pressure to apply to “the best universities” outside the country.
To the best of my knowledge, there doesn’t exist any institutional interventions addressing points 3, 4 at the undergrad level. Currently, both 3 and 4 seem to happen after joining grad school/an pre-doctoral program. And that is unfortunate.
Some ad-hoc resources for points 5 and 6 exist, and depending on the quality of these resources, some students currently inductively figure out points 3 and 4.
The aim of this document is to address each of these points in some detail. This document is a work in progress (WIP).
I am yet to complete this section. WIP.
If you’re generally curious about how the world works, and have an interest in understanding details of how things around you work, you should definitely give research a shot. If you’re an undergraduate at a school with a vibrant research community, it is that much easier to give it a go, and to see if you enjoy it.
From experience, if you’re interested in your coursework, and have a curious mind, and if you end up disliking research - then it is most likely the case of poor mentorship. Your mentor did not show you the ropes well, and did not give you the time you deserved. Please do not be discouraged by it. Give it a shot anyway! It can be a lot of fun.
(Note - there’s a reverse ask here as well. If they do give you that time, what can you do to ensure they feel their time is well spent on you. Doing research is definitely more commitment than doing courses. Read Jason Eisner’s article below to learn more about this.)
This article, penned by Prof. Jason Eisner at JHU, is an excellent primer on how you can equip yourself in having a fruitful research experience. I strongly urge you to read it, and imbibe the recommended steps in your research stint. In his famous talk ‘You and your research’, Richard Hamming describes the process of doing good research.
This talk transcript I have hosted on this site is a clone of https://www.cs.virginia.edu/~robins/YouAndYourResearch.html
If you’re an undergrad at a school like MIT (or some other xIT in your country), which is primarily known for its research, you should definitely give research a shot to get your money’s worth. Making the most of your xIT experience != taking more grad classes – these classes are pointless after a while. The best bang for your buck is in doing a UROP (undergraduate research program).
Every PI (principal investigator) in such colleges is super accomplished at what they do, and is at the bleeding edge of defining their field. They maybe bad teachers in the classroom, and even bad research mentors - but they definitely know their field well. You stand to learn and gain a lot.
So, do give it a shot, and see if it works well for you. It is very likely you’ll work with someone in their group (as against directly working with them, and that’s fine), and that someone can spur your interest in research.
Here’s an informative article on how to accommodate research in your otherwise busy undergraduate schedule – making the most of an undergrad at CMU
The Jason Eisner article in the section above provides great information on what to keep in mind while you start off your research project.
If you are an undergrad/aspiring young researcher from India reading this - it’s great you are interested in research!
If you are from a college where there is a good culture for research, read the above section on how to make the best of it.
And importantly - if you are not from a “tier-1” school, where research opportunities do not exist for undergrads, worry not :-) I didn’t have such opportunities either, and I made it through just fine.
The catch is - it’s a lot of work. Lot more than it usually takes to do research.
* I believe the information that follows applies to most countries with an education system similar to India - very few top univerisities where world-class research happens, and a long tail of engineering colleges which focus on teaching and not research.
The summary of it is – earnestly understand your undergrad course material. During undergrad, or right after, work as an RA in a relevant lab in India to gain concrete skills and experience in research – this could be through a summer research program (see the Resources section for links), or by you reaching out to labs you think are interesting. Doing this will require you to first learn concrete skills and technologies. See the talk/slides below, and email 1, email 4, FAQs for details.
If you ended up having an excellent RA experience at an academic lab, or at pre-doctoral programs offered by the likes of Google, Micrsoft, etc., and you now have a strong sense for what you want to work on and who you think will best be able to guide you, then you should just go ahead and apply for a PhD with them.
But if you are still not sure, liked your RA experience, and want to explore this further, then consider one of –
Hence, your best bet is to do a solid masters degree where you will be exposed to advanced coursework, and state of the art research.
In this process, figure out what problems in a particular research area really bother you which you see yourself solving, and then consider who are the best researchers in the world who might support you to solve that problem. You should then consider applying to them/their university and doing your Ph.D. with them. Don’t worry too much about the “name” and “prestige value” of the school you apply to - people matter more. You are significantly better off doing your Ph.D. with a professor whose research interest matches yours but is at an “okay” university, than doing it with a professor with unrelated interests but who’s at an “elite” university. See also this note by Prof. Charles Sutton on how to use websites which rank different universities and departments. He reaffirms some of the points I’ve summarized above.
Details. [top] This talk provides more details.
These are the slides I use in this talk.
Also see the FAQs where I’ve responded to common queries which aspiring researchers typically send out to faculty. See also Prof. Shriram’s talk listed in the Resources section which gives you a perspective on how faculty evaluate Ph.D. candidates and applications.
Feel free to reach out to me if you have specific questions. When you reach out, make sure you have read the link on the slide on how to write effective emails (it’s towards the end of the google slide deck I’ve linked above). A post detailing best practices to follow when writing out emails is long pending. I’ll get to it one day.
M.S. (outside India) vs. Ph.D. At this point, you may be quite confused about why I’m dwelling on the specifics of Ph.D. programs. After all, you may have a bunch of friends who head out to the US to do their masters/M.S. degrees who didn’t seem to follow most of the resources provided on this page. How are these degrees different?
Short answer – it is totally different, as these programs neither expect nor will train you with the skills a Ph.D. demands/trains you for. These M.S. programs are meant to be professional degrees which promise to teach you skills which you can directly use in the industry. Most people join these M.S. programs not to improve their skills in doing research, but to land a job in the country they do their M.S. in (mostly the United States)—it’s the most established route to land such jobs in another country.
Perhaps the biggest tangible difference is the finances involved – in a Ph.D. program, you are being paid a modest salary while you produce knowledge, and on the other hand, you pay upwards of 2-3 million Indian rupees for your masters degree (which they expect you will earn in 2-3 years on joining their workforce upon graduation). Note - these MS degrees are different from degrees which also support an honors thesis (typically offered by universities in Canada, and a few in the US, Europe). See point 2 in the summary above.
I intend to keep the lists below updated. Feel free to write me an email in case you come across any more such relevant resources.
I strongly recommend you go through this talk by Shriram if you aspire to apply to Ph.D. programs in the US. [top] While he talks about computer science specifically, a lot of what he talks about should hold for other disciplines, and will help you understand what faculty look for when reviewing applications. Importantly, it will help you appreciate the intellectual maturity that is expected of you as a Ph.D. candidate.
Led by Prof. Himabindu Lakkaraju, various faculty got together and spoke about the admissions process for machine learning related Ph.D. programs. Again, while this maybe machine learning/computer science specific, it gives a sense of the general set of signals faculty look for. [Youtube video]
Prof. Fadel Adib has a tweet thread on applying to Ph.D. programs. [Twitter thread]
Prof. Zach Lipton tweeted about other qualities their group looks for when hiring Ph.D. candidates. [Twitter thread]
Chaitanya Joshi curated a list of similar resources in this tweet of his.
Note - There’s a sizeable overlap in the contents of each of the resources shared above. Do go through each of them nevertheless.
In case this is helpful, this is my statement of purpose / SOP / academic statement which I had submitted when applying to CMU (and from where I had an offer).
This is Jeremy Lacomis’ application material, who was accepted to the Ph.D. program at CMU. It contains links to other materials which inspired him.
Note - Adding keywords like PhD CS computer science SOP statement of purpose sample example MIT CMU Stanford Berkeley
so that it gets picked up by search engines.
Ubadah Sabbagh tweeted a thread with links to useful summer research programs for undergrads (mostly in the US).
Himanshu Ahuja maintains an excellent repository with links to undergraduate research programs in India and around the globe.
I mention a few more in Email 1 and 4 listed in the FAQs section.
I don’t know a lot of product research groups where academic-style research happens, with publications at good venues as one of its goals. The orgs I list below may no longer maintain active research groups/fit the above criteria. You should definitely reach out to the founders directly (these are typically small orgs) and check with them. Also note - these are mostly jobs in computer science, since that’s the field I’m most familiar with. If you come across any more, please do write to me.
Sharechat , Aspiring Minds Research , Sensara.tv , Gram Vaani , Qure.ai , Nirmai , Strand life sciences , Ati motors
This excellent blog by Achu Wilson documents what it took him to publish his first research paper in one of the best conferences out there for robotics. Achu did not have typical RA-like opportunities during his undergrad.
Jason Eisner has this excellent page on writing your first paper.
Note - a publication need not be necessary to be successfully admitted to an MS/Ph.D. program/a research job. Instead, writing will teach you to make cogent arguments, and go through the process of scientific peer review. If you do end up in a career in research, you would end up regularly writing and communicating your work. Writing a paper during undergrad is a great way to test whether you enjoy this process. Additionally, papers are not the only way for you to learn and test this skill–you could perhaps write out a blog, a tech report, etc. which will serve the purpose equally well.
See my talk/slides above on where to publish–most academic conferences and journals out there are outright fraudulent. If you’re not sure, aim for a workshop at the top conference in your field, or a student-friendly journal/conference to begin with. These generally encourage student submissions, and have high quality peer-review processes. If not, a thoughtful blog post or tech-report should work equally well.
My responses to some queries I have received over email and other social media over the years. My responses echo most of the content mentioned on this webpage.
I did not have a great undergrad research experience. I wanted to, but I was too ill-equipped to learn how I could have gained quality experience. I had a scholarship in my junior year to do a research internship at the CS dept. of one of the IITs in India. While I learned a couple of things there, I knew right away it wasn’t a “high quality” experience. My undergrad thesis experience was great - I had a great advisor, I learned a ton of things, but it didn’t train me to do quality research, and I was painfully aware of this limitation.
Thereafter, I put in a great deal of effort in finding such opportunities. By the end of my senior year, I was writing horrendous emails to academic research groups I wanted to work in. I was not skilled enough to demonstrate what my value addition would have been to a group that potentially hired me. Despite all of this, I managed to land a great first job upon graduating, where I “made my bones” in research. That’s right - I was fortunate to have a job right out of undergrad which had a strong research component to it. I learned to do good research there, and went on to managing a small team of researchers on a variety of interesting and innovative projects. Had I not landed this specific job, I’d likely have applied for a full time RA with professors I’d marked out as doing “interesting work”. I had offers from other good places for a generic software engineer’s role - I knew I did not want to explore those options.
Looking back, I was an absolute fool at most times in my research journey. I would be stuck on silly things, I would ask trivial questions, I would just not understand certain concepts, I would not see the big-picture until a long time had passed, etc. But I kept at it because I thoroughly enjoyed learning these bits. And importantly, I had a great mentor who was patient enough to show me the ropes and indulge my inadequacies, while being encouraging.
I am where I am because of a bunch of such people who showed me the way. And I would love to support others like you who want a taste of this experience.
Over these years, I’ve worked on and developed an expertise in problems in machine learning, data science, program analysis, natural language processing, and systems building.
Thanks to the following for their very helpful feedback on this page.
Srishti Yadav , Jeevanjyoti Chakraborty , Neeldhara Misra, Anna Ivanova, Vivek Seshadri, Greta Tuckute, Kaveri Iychettira


Find My Doctor
Where to search for?
Go!
Currently using your GPS location.
Recently viewed
Dr. Anant Gore
View more...


{% comment %} Generic HTML response for the `create` action. Usually sent with a 201 response and a `Location` header which our `htmx` extension knows to redirect the browser to. {% endcomment %}
Success! Redirecting to your new {{ type|default:"creation" }}...


We are delighted to invite all postgraduate research students at the School of Biomedical Engineering and Imaging Sciences Kings College London to submit abstracts! This event is held in collaboration with the King's and Imperial Centre for Doctoral Training in Smart Medical Imaging, and we hope that CDT students based at Imperial will also submit their abstracts.
The deadline for abstract submission is the 4th of October 2019. All abstracts will be peer reviewed and the top 10 abstracts will be invited to give a presentation (10 minutes plus questions), with the runners-up entered into the poster sessions. Prizes will be given to the top presentations and posters. All postgraduate members of the school are required to submit an abstract.
Abstract Submission Form (docx)
Please send submissions to {{ site.email }}


javax.imageio.IIOException: Can't create an ImageInputStream!
Post by: Eric Lopez-Fernandez, Greenhorn
on May 08, 2012 15:52:36
Hey there,
I am getting the exception from the title of this post whenever I try to run the following code:
File imageFile = new File (path);
BufferedImage img = ImageIO.read(imageFile);
I know that it a permissions-related problem not that the image has the read-only flag checked, but, that my user (at an OS level) does not have permission to open the image - I'm not even capable of opening it directly with the OS.
My question to YOU guys is, is there any way to check the permissions before trying to open a File. I do not want to use
File.canRead(), File.canWrite(), or File.canExecute() because they check whether the file has the read-only flag checked, but that does not work for me.
What I need to check is if the user has permissions over the object he's trying to open.
This is the read method from the ImageIO class.
public static BufferedImage read(File input) throws IOException {
1275 if (input == null) {
1276 throw new IllegalArgumentException ("input == null!");
1277 }
1278 if (!input.canRead()) {
1279 throw new IIOException ("Can't read input file!");
1280 }
1281
1282 ImageInputStream stream = createImageInputStream(input);
1283 if (stream == null) {
1284 throw new IIOException ("Can't create an ImageInputStream!");
1285 }
1286 return read(stream);
1287 }
Unfortunately it uses File.canRead() to check permissions and that's not what I need.
Any help is greatly appreciated!
All times above are in ranch (not your local) time.
The current ranch time is Dec 13, 2013 16:25:53.


Avocado toast with fried egg! Breakfast is served. Yummy and totally satisfying.
Ingredients:
1 avocado
2 slices toasted bread
1/2 tsp olive oil
2 large eggs
1 small tomato
1/4 tsp of cayenne pepper
salt and pepper
Instructions:
Dice, then scoop avocado into a small bowl. Add ½ tsp olive oil, pinch of salt and cayenne pepper. Mash with a fork. Meanwhile, toast bread slices. Fry eggs sunny side up (or as you like). Spread avocado on toast. Add alfalfa sprouts and sliced tomato. Cover with fried egg. Add additional spices as desired.


About {{ event.name }}
{% include "./details.html" with lab=lab fields=fields only%}
{% include "./analyses.html" with lab=lab only%}
{% include "./logs.html" with lab=lab only%}


#######
Maybe this should be in the Backtesting chapter since you only create a report after a backtest is run.
#######
A generated report contains various statistics about the backtest and optionally about the live trading results.
Some of these statistics are formatted in a table, but most of them are formatted as professional-looking charts.
This section describes the content of each generated chart.


Welcome to Mark 1 of my first website! I created this website with three goals in mind. I needed a professional website to demonstrate my coding abilities to potential employers, a fun, relevant website where I could tinker around and enjoy the process of coding, and also a platform to practice something that I love to do.


Using Security Groups
You create a security group for use in either EC2-Classic or EC2-VPC. For more information about EC2-Classic and EC2-VPC, see Supported Platforms in the Amazon EC2 User Guide for Linux Instances.
You can use the AWS CLI to create, add rules to, and delete your security groups.
Note
Before you try the example commands, set your default credentials.
Creating a Security Group
To create a security group named my-sg
, use the create-security-group
command.
EC2-Classic
The following command creates a security group for EC2-Classic:
$ aws ec2 create-security-group --group-name my-sg
--description "My security group"
{
"GroupId": "sg-903004f8"
}
To view the initial information for my-sg
, use the describe-security-groups
command as follows:
$ aws ec2 describe-security-groups --group-names my-sg
{
"SecurityGroups": [
{
"IpPermissionsEgress": [],
"Description": "My security group"
"IpPermissions": [],
"GroupName": "my-sg",
"OwnerId": "123456789012",
"GroupId": "sg-903004f8"
}
]
}
EC2-VPC
The following command creates a security group named my-sg
for the
specified VPC:
$ aws ec2 create-security-group --group-name my-sg --description "My security group" --vpc-id vpc-1a2b3c4d
{
"GroupId": "sg-903004f8"
}
To view the initial information for my-sg
, use the describe-security-groups
command as follows. Note that you can't reference a security group for EC2-VPC by
name.
$ aws ec2 describe-security-groups --group-ids sg-903004f8
{
"SecurityGroups": [
{
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"IpRanges": [
{
"CidrIp": "<IP_ADDRESS>/0"
}
],
"UserIdGroupPairs": []
}
],
"Description": "My security group"
"IpPermissions": [],
"GroupName": "my-sg",
"VpcId": "vpc-1a2b3c4d",
"OwnerId": "123456789012",
"GroupId": "sg-903004f8"
}
]
}
Adding Rules to Your Security Group
If you're launching a Windows instance, you must add a rule to allow inbound traffic on TCP port 3389 (RDP). If you're launching a Linux instance, you must add a rule to allow inbound traffic on TCP port 22 (SSH). Use the authorize-security-group-ingress command to add a rule to your security group. One of the required parameters of this command is the public IP address of your computer, in CIDR notation.
Note
You can get the public IP address of your local computer using a service. For example, we provide the following service: http://checkip.amazonaws.com/. To locate another service that provides your IP address, use the search phrase "what is my IP address". If you are connecting through an ISP or from behind your firewall without a static IP address, you need to find out the range of IP addresses used by client computers.
EC2-Classic
The following command adds a rule for RDP to the security group
my-sg
:
$ aws ec2 authorize-security-group-ingress --group-name my-sg --protocol tcp --port 3389 --cidr <IP_ADDRESS>/24
The following command adds a rule for SSH to the security group for
my-sg
:
$ aws ec2 authorize-security-group-ingress --group-name my-sg --protocol tcp --port 22 --cidr <IP_ADDRESS>/24
To view the changes to my-sg
, use the describe-security-groups
command as follows:
$ aws ec2 describe-security-groups --group-names my-sg
{
"SecurityGroups": [
{
"IpPermissionsEgress": [],
"Description": "My security group"
"IpPermissions": [
{
"ToPort": 22,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "<IP_ADDRESS>/24"
}
]
"UserIdGroupPairs": [],
"FromPort": 22
}
],
"GroupName": "my-sg",
"OwnerId": "123456789012",
"GroupId": "sg-903004f8"
}
]
}
EC2-VPC
The following command adds a rule for RDP to the security group with the ID sg-903004f8:
$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 3389 --cidr <IP_ADDRESS>/24
The following command adds a rule for SSH to the security group with the ID sg-903004f8:
$ aws ec2 authorize-security-group-ingress --group-id sg-903004f8 --protocol tcp --port 22 --cidr <IP_ADDRESS>/24
To view the changes to my-sg
, use the describe-security-groups
command as follows:
$ aws ec2 describe-security-groups --group-ids sg-903004f8
{
"SecurityGroups": [
{
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"IpRanges": [
{
"CidrIp": "<IP_ADDRESS>/0"
}
],
"UserIdGroupPairs": []
}
],
"Description": "My security group"
"IpPermissions": [
{
"ToPort": 22,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "<IP_ADDRESS>/24"
}
]
"UserIdGroupPairs": [],
"FromPort": 22
}
],
"GroupName": "my-sg",
"OwnerId": "123456789012",
"GroupId": "sg-903004f8"
}
]
}
Deleting Your Security Group
To delete a security group, use the delete-security-group command. Note that you can't delete a security group if it is attached to an environment.
EC2-Classic
The following command deletes the security group named my-sg
:
$ aws ec2 delete-security-group --group-name my-sg
EC2-VPC
The following command deletes the security group with the ID sg-903004f8:
$ aws ec2 delete-security-group --group-id sg-903004f8


Threading and Events
Methods
The BrainPad
object (or class) includes methods to control many aspects of the BrainPad's hardware. A method is a set of instructions grouped together. If a student is asked to speak, the command may look like Student.Say("Hello")
. The Say()
method is simple, but speaking requires many things like taking in air and moving your vocal cords. In the same sense, activating the LightBulb and Turning it green is a simple request but internally it does many small tasks to reach the final goal.
Methods can also take arguments. For example, you could have a method called Student.Run()
to order a student to run or Student.Run(slow)
to order them to run slow. Methods can also return a value, like Student.GetAge()
which returns the student's age.
In the code example below, we show how a method we create called Add
can be used to add 5 + 2 and print the total integer to the Output window. We've also added an additional line to display the result on the BrainPad's own display too.
public class Program {
public void BrainPadSetup() {
int total = Add(5, 2);
BrainPad.WriteToComputer(total);
BrainPad.Display.DrawNumberAndShowOnScreen(1, 1, total);
}
public void BrainPadLoop() {
// Declared but not used
}
public int Add(int a, int b) {
return a + b;
}
}
The above example creates a simple method that takes two integer arguments and returns an integer. The method will add the two arguments and return the results.
Method names are like variable names, only certain things are allowed. Method names cannot start with a number, contain a symbol besides the underscore "_" or have a space in them. The following examples show proper and improper use of method names.
Valid Method Names
bool AreAll4ButtonsPressed()
string Add(int a, int b)
Poorly named Methods
bool areallbuttonspressed()
int method34from94handler()
Note: Method names should always be easy to read and meaningful. This allows a programmer to easily discern what it does.
Invalid Method Names
bool Are All Buttons Pressed()
bool AreAllButtonsPressed?()
Methods are not required to return anything. To fill that case of not returning a value the keyword void is used.
void ActivateAlarm()
Finally, methods can also be private or public and static or non-static. This is beyond the scope of this course and public static
will always be used.
Overloading Methods
The same method name can have one or more argument types. Depending on the argument passed to the method, the system will determine which method to call as shown in in the code sample below we create a method called Test
which can handle both an integer or a double.
public class Program {
public void BrainPadSetup() {
Test(5);
Test(5.0);
}
public void BrainPadLoop() {
// Declared but not used
}
public void Test(int x) {
BrainPad.WriteToComputer("integer");
BrainPad.Display.DrawSmallText(1,1,"integer");
BrainPad.Display.ShowOnScreen();
}
public void Test(double x) {
BrainPad.WriteToComputer("double");
BrainPad.Display.DrawSmallText(1, 20, "double");
BrainPad.Display.ShowOnScreen();
}
}
In the code above, you'll notice in the BrainPadSetup()
we use the Test()
method twice, once with a integer(5)
and then with a double(5.0)
. When the Test()
method is called the computer determines what the data type is and routes to the appropriate method. This is what is meant by overloading a method.
Boolean Variables
In programming we use true
or false
to represent the truth values of logic. These values are known as Boolean
or bool
when coding. For example, let's say we need to check if the up and down buttons are pressed in multiple spots throughout our program. We could check each button in each spot or we could create a reusable method that returns true if both are pressed or false otherwise, as shown in the code examples below.
public class Program {
public void BrainPadSetup() {
// Declared but not used
}
public void BrainPadLoop() {
if (UpAndDownPressed()) {
BrainPad.LightBulb.TurnGreen();
}
else {
rainPad.LightBulb.TurnOff();
}
}
public bool UpAndDownPressed() {
if (BrainPad.Buttons.IsUpPressed() && BrainPad.Buttons.IsDownPressed()) {
return true;
}
else {
return false;
}
}
}
The new Keyword
In the examples used so far, the BrainPad object has been used directly. This will not work for all object types. Remember the Student.Say("Hello")
example? This statement is not completely valid because we don't know which student is going to say "Hello". To access a specific student, you need to create a variable named mike
to hold the Student object as shown in the code sample below.
Student mike = new Student();
Threading
Threading in the programming world is a way to describe multitasking. Each task is a thread that runs separately. The threading support in TinyCLR OS on the BrainPad is easy to work with.
First, we need to inform the system that the threading library needs to be imported. We do this by adding the code below to the very top of our program, where other libraries are also imported. Like the using GHIElectronics.TinyCLR.BrainPad;
library, that allows us to program using the BrainPad
object.
using System.Threading;
Before adding a thread, we need a method for it to use as shown in the code below.
public class Program {
public void BrainPadSetup() {
Thread blinkerThread = new Thread(Blinker);
blinkerThread.Start();
while (true) {
BrainPad.LightBulb.TurnRed();
BrainPad.Wait.Seconds(0.1);
BrainPad.LightBulb.TurnOff();
BrainPad.Wait.Seconds(1);
}
}
public void BrainPadLoop() {
// Declared but not used
}
public void Blinker() {
while (true) {
BrainPad.LightBulb.TurnGreen();
BrainPad.Wait.Seconds(0.2);
BrainPad.LightBulb.TurnOff();
BrainPad.Wait.Seconds(0.2);
}
}
}
The previous program will blink the light green Stepping through code, we can easily see how the Blinker method never returns execution to BrainPadSetup(). The program keeps looping infinitely inside the Blinker method. But most programs would probably need to blink the light while doing something else. This is where threads come in very handy. First, we need to construct a Thread object as shown below. This object has special internal control over the program flow.
Thread blinkerThread = new Thread(Blinker);
Note how the names easily identify what they represent. The blinkerThread()
method is a thread that handles the Blinker()
method. All we need to do is Start()
the thread and the Blinker()
method will be executed. However, there is still an issue. The BrainPadSetup()
method will reach the end, which will cause the program and all its threads to terminate. A temporary solution is to make the BrainPadSetup()
method wait indefinitely is by using -1 milliseconds as shown in the code example below.
public class Program {
public void BrainPadSetup() {
Thread blinkerThread = new Thread(Blinker);
blinkerThread.Start();
BrainPad.Wait.Milliseconds(-1);
}
public void BrainPadLoop() {
// Declared but not used
}
public void Blinker() {
while (true) {
BrainPad.LightBulb.TurnGreen();
BrainPad.Wait.Seconds(0.2);
BrainPad.LightBulb.TurnOff();
BrainPad.Wait.Seconds(0.2);
}
}
}
In code example below, while the red light is blinking in its own thread, the system can now go do other things like incrementing our count
variable and showing the results on the display.
public class Program {
int count = 0;
public void BrainPadSetup() {
Thread blinkerThread = new Thread(Blinker);
blinkerThread.Start();
while (true) {
BrainPad.LightBulb.TurnRed();
BrainPad.Wait.Seconds(0.1);
BrainPad.LightBulb.TurnOff();
BrainPad.Wait.Seconds(1);
}
}
public void BrainPadLoop() {
// Declared but not used
}
public void Blinker() {
while (true) {
count = count + 1;
BrainPad.Display.DrawTextAndShowOnScreen(40,25," "+ count);
}
}
}
Events
If a program needs to turn a light on via a button press, that program will need to check the button's state indefinitely. How often should we check the button? What if the button was pressed and released before the check? If we check too fast the system cannot enter low power mode.
This is important for battery operated devices like circuit boards or mobile phones. If the phone was always fully on, the battery would not last more than a few minutes. The only way a mobile phone can last an entire day on a charged battery is by shutting off unneeded components (like turning the screen off).
The proper way to handle the button is to subscribe to an event that is fired when the button is pressed or released. The BrainPad's BrainPad.Buttons.WhenUpButtonPressed
event allows us to subscribe using the +=
symbols. Now every time the Up
button is pressed the Buttons_WhenUpButtonPressed()
method is called. In the example below we've created event handlers for all the buttons on the BrainPad. There is a handler to also check when the button is released as shown in the code below.
public class Program {
public void BrainPadSetup() {
BrainPad.Buttons.WhenUpButtonPressed += Buttons_WhenUpButtonPressed;
BrainPad.Buttons.WhenDownButtonPressed += Buttons_WhenDownButtonPressed;
BrainPad.Buttons.WhenRightButtonPressed += Buttons_WhenRightButtonPressed;
BrainPad.Buttons.WhenLeftButtonPressed += Buttons_WhenLeftButtonPressed;
BrainPad.Buttons.WhenUpButtonReleased += Buttons_WhenUpButtonReleased;
BrainPad.Buttons.WhenDownButtonReleased += Buttons_WhenDownButtonReleased;
BrainPad.Buttons.WhenRightButtonReleased += Buttons_WhenRightButtonReleased;
BrainPad.Buttons.WhenLeftButtonReleased += Buttons_WhenLeftButtonReleased;
}
private void Buttons_WhenUpButtonPressed() {
BrainPad.LightBulb.TurnRed();
}
private void Buttons_WhenDownButtonPressed() {
BrainPad.LightBulb.TurnGreen();
}
private void Buttons_WhenRightButtonPressed() {
BrainPad.LightBulb.TurnBlue();
}
private void Buttons_WhenLeftButtonPressed() {
BrainPad.LightBulb.TurnWhite();
}
private void Buttons_WhenUpButtonReleased() {
BrainPad.LightBulb.TurnOff();
}
private void Buttons_WhenDownButtonReleased() {
BrainPad.LightBulb.TurnOff();
}
private void Buttons_WhenRightButtonReleased() {
BrainPad.LightBulb.TurnOff();
}
private void Buttons_WhenLeftButtonReleased() {
BrainPad.LightBulb.TurnOff();
}
public void BrainPadLoop() {
}
}
When typing, after you enter the += symbols, Visual Studio will instruct you to press TAB to insert a pre-named event handler. After doing so, you'll want to press TAB again to generate the actual handler inside the class.
Activating a light on a button press can be done in a loop but then the system is always running. Using events in this example, the system is mostly sleeping (in low power mode). The first thing it does is subscribe to the button event. The system sleeps until one of the buttons is pressed or released, at which point it wakes up and runs the appropriate Button method. But the code above can be simplified a bit more. Since each ButtonReleased method in our program does the same thing we can share a single event as demonstrated in the code below.
public class Program {
public void BrainPadSetup() {
BrainPad.Buttons.WhenUpButtonPressed += Buttons_WhenUpButtonPressed;
BrainPad.Buttons.WhenDownButtonPressed += Buttons_WhenDownButtonPressed;
BrainPad.Buttons.WhenRightButtonPressed += Buttons_WhenRightButtonPressed;
BrainPad.Buttons.WhenLeftButtonPressed += Buttons_WhenLeftButtonPressed;
BrainPad.Buttons.WhenUpButtonReleased += Buttons_WhenButtonReleased;
BrainPad.Buttons.WhenDownButtonReleased += Buttons_WhenButtonReleased;
BrainPad.Buttons.WhenRightButtonReleased += Buttons_WhenButtonReleased;
BrainPad.Buttons.WhenLeftButtonReleased += Buttons_WhenButtonReleased;
}
private void Buttons_WhenUpButtonPressed() {
BrainPad.LightBulb.TurnRed();
}
private void Buttons_WhenDownButtonPressed() {
BrainPad.LightBulb.TurnGreen();
}
private void Buttons_WhenRightButtonPressed() {
BrainPad.LightBulb.TurnBlue();
}
private void Buttons_WhenLeftButtonPressed() {
BrainPad.LightBulb.TurnWhite();
}
private void Buttons_WhenButtonReleased() {
BrainPad.LightBulb.TurnOff();
}
public void BrainPadLoop() {
}
}
In the above code, we've accomplish the same thing as before using a few less lines of code. This might not always be the case. But since each button release does the same thing we can simplify our code by sharing the Buttons_WhenButtonReleased()
method with all our Button Release events.


Secure NGINX Webserver
24 Mar 2018DISCLAIMER This post is not exhaustive and focuses on providing you with the terminology necessary to learn more. You will still need to configure these to suit your web server specifically. Before you begin This post is specific to Nginx, but many of the principles can be applied to apache or other popular web servers with a few tweaks to the configuration statements. To compare your security settings before and after, Mozilla will scan your website and give you a grade for your level o...


Salutation:
--None--
Mr.
Ms.
Mrs.
Dr.
Prof.
First Name: (required)
Last Name: (required)
Company: (required)
Please enter your company name.
Email: (required)
Please enter a valid email address.
Phone: (required)
Mobile:
Project Summary: (required)
High level project summary and details on how the drone would be used (1-2 paragraphs)
Initial Project Location(s): (required)
Location of overall project and possible flight areas (Please be as detailed as possible.)
Expected Cost/Benefit:
What is the expected cost/benefit of using a drone on this project? What is the anticipated value?
Property Owner(s):
List out the property owner(s) of any locations where your project/missions might take place.
Key Milestones:
What are the milestones in the customer's project that are needed to help planning the drone missions, and are relevant for when the drone flight must take place.
Project Targeted Start Date: (required)
Project Targeted End Date:
Lead Source
Website
Risk Description: (required)
Explanation of any potential risks associated with project (i.e. safety, schedule, privacy).


Arc code is under the following license:
This software is copyright (c) Paul Graham and Robert Morris. Permission to use it is granted under the Perl Foundations's Artistic License 2.0.


Such expressions may be confusing and bug-prone.
Use the Maximum number of terms field to specify the maximum number of terms allowed in an arithmetic expression.


Class ApplicationsRequester
This class represents the set of wrappers around the FreeClimb Application API. It provides methods to handle all the operations supported by the FreeClimb Application API.
Inherited Members
Namespace: com.freeclimb.api.application
Assembly: freeclimb-cs-sdk.dll
Syntax
public class ApplicationsRequester : APIRequester
Constructors
| Improve this Doc View SourceApplicationsRequester(String, String, String)
Creates an ApplicationsRequester. For most SDK users ApplicationsRequester will be created automatically by the FreeClimbClient but is available for more users who only require the features in this specific requester and not the rest of the features of the FreeClimbClient.
Declaration
public ApplicationsRequester(string credAccountId, string credAuthToken, string accountId)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | credAccountId | The accountId to use as authentication credentials in the HTTP Basic Auth header for requests made by this requester. |
| System.String | credAuthToken | The authToken to use as authentication credentials in the HTTP Basic Auth header for requests made by this requester. |
| System.String | accountId | The accountId to act as. This can be the same as the credAccountId or the accountId of a subaccount of the credAccountId. |
Properties
| Improve this Doc View SourcegetPath
Retrieve path object value.
Declaration
public string getPath { get; }
Property Value
| Type | Description |
|---|---|
| System.String | The base path used for the FreeClimb API. |
Methods
| Improve this Doc View Sourcecreate(ApplicationOptions)
Create a new application through the FreeClimb API
Declaration
public Application create(ApplicationOptions options = null)
Parameters
| Type | Name | Description |
|---|---|---|
| ApplicationOptions | options | Optional ApplicationOptions instance to be used when creating an application. |
Returns
| Type | Description |
|---|---|
| Application | An Application object returned by FreeClimb that represents the application that was created. |
Exceptions
| Type | Condition |
|---|---|
| FreeClimbException | Thrown upon failed request. |
delete(String)
Delete a FreeClimb application.
Declaration
public void delete(string applicationId)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | applicationId | The applicationId of the target application. |
Exceptions
| Type | Condition |
|---|---|
| FreeClimbException | Thrown upon failed request. |
get(ApplicationsSearchFilters)
Retrieve a list of applications from FreeClimb.
Declaration
public ApplicationList get(ApplicationsSearchFilters filters = null)
Parameters
| Type | Name | Description |
|---|---|---|
| ApplicationsSearchFilters | filters | Optional ApplicationsSearchFilters instance to filter list of applications. |
Returns
| Type | Description |
|---|---|
| ApplicationList | An in-language representation of FreeClimb's paginated list response.This will be a paginated list of application instances as returned by the FreeClimb API. |
Exceptions
| Type | Condition |
|---|---|
| FreeClimbException | Thrown upon failed request. |
get(String)
Retrieve a single application from FreeClimb.
Declaration
public Application get(string appId)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | appId | The applicationId of the target application. |
Returns
| Type | Description |
|---|---|
| Application | The application matching the appId provided. |
Exceptions
| Type | Condition |
|---|---|
| FreeClimbException | Thrown upon failed request. |
update(String, ApplicationOptions)
Update a single application.
Declaration
public Application update(string applicationId, ApplicationOptions options = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | applicationId | The applicationId of the target application. |
| ApplicationOptions | options | Optional ApplicationOptions instance to be used when updating an application. |
Returns
| Type | Description |
|---|---|
| Application | The updated application matching the applicationId provided. |
Exceptions
| Type | Condition |
|---|---|
| FreeClimbException | Thrown upon failed request. |


Reading List
This page is a catalog of books that I have read or am currently reading.
Currently Reading
Irreversible Damage (currently reading)
The Personal MBA (currently reading)
The Everything Store (currently reading)
Flawless Consulting (currently reading)
Maps of Meaning (currently reading)
The Art of Fermentation (currently reading)
2021
Building a Story Brand
Woke Racism
Contract Drafting and Negotiation for Entrepreneurs and Business Professionals
The Age of Entitlement
The 4-Hour Workweek
Beyond Order
Harry Potter and the Sorcerer’s Stone
Knowledge And Decisions
Kettlebell — Simple & Sinister
2020
Basic Economics
Cynical Theories
The Parasitic Mind
The End of Gender
The Demon in Democracy
How to Destroy America in Three Easy Steps
The Madness of Crowds
The Infinite Game
The Unicorn Project
Fire Me I Beg You
Hooked
Zero to One
The Omnivore’s Dilemma
Shape Up
Refactoring UI
Extreme Ownership
INSPIRED: How to Create Tech Products Customers Love
Cooked
2019
The Lean Marketplace
Traction
The Software Engineer’s Guide to Freelance Consulting
The ProtonMail Guide to IT Security for Small Businesses
The Art of the Start 2.0
The Tale of Despereaux
First Time Manager
Permanent Record
A Guide to Marketplaces
Never Split the Difference
Start with Why
Man’s Search for Meaning
Medium Raw
Kitchen Confidential
The Plague
2018
The Manual: A Philosopher’s Guide to Life
Haskell Programming: From First Principles
Predictable Revenue
Don’t Make Me Think, Revisited
[Notes]
High Performance MySQL
The Simple Path to Wealth
Waiting for Godot
Peopleware: Productive Projects and Teams
The Gulag Archipelago, volumes I, II, & III
[Quotes]
The Coddling of the American Mind
12 Rules For Life: An Antidote to Chaos


Works for me
Works
for
me
Subscribe
Contribute a toolkit on GitHub
Collection of developer toolkits
test


| type |
When set to a value other than None
, this variable defines the default value for the dir argument to all the functions defined in this module.
If tempdir
is unset or None
at any call to any of the above functions, Python searches a standard list of directories and sets tempdir to the first one which the calling user can create files in. The list is:
TMPDIR
environment variable.TEMP
environment variable.TMP
environment variable.Wimp$ScrapDir
environment variable.C:\TEMP
, C:\TMP
, \TEMP
, and \TMP
, in that order./tmp
, /var/tmp
, and /usr/tmp
, in that order.


Venom
Journalist Eddie Brock is trying to
take down Carlton Drake, the notorious and brilliant founder of the Life Foundation. While
investigating one of Drake's experiments, Eddie's body merges with the alien Venom -- leaving
him with superhuman strength and power. Twisted, dark and fueled by rage, Venom tries to
control the new and dangerous abilities that Eddie finds so intoxicating
Starring
- Tom Hardy,
- Michelle Williams,
- Riz Ahmed,
- Scott Haze,
- Reid Scott
Crew
- Director
:
Ruben Fleischer,
- Music-Director
:
Ludwig Goransson


|
OpenM++ runtime library (libopenm)
|
run_lst table row. More...
Public Member Functions | |
| RunLstRow (int i_runId) | |
| create row with supplied primary key field values. | |
| RunLstRow (void) | |
| create row with default empty field values. | |
Static Public Member Functions | |
| static bool | isKeyLess (const RunLstRow &i_left, const RunLstRow &i_right) |
| less comparator by primary key: run id. | |
| static bool | isKeyEqual (const RunLstRow &i_left, const RunLstRow &i_right) |
| equal comparator by primary key: run id. | |
| static vector< RunLstRow >::const_iterator | byKey (int i_runId, const vector< RunLstRow > &i_rowVec) |
| find row by primary key: run id. | |
| Static Public Member Functions inherited from openm::IMetaRow< RunLstRow > | |
| static bool | keyLess (const IRowBaseUptr &i_left, const IRowBaseUptr &i_right) |
| less comparator by row primary key. | |
| static bool | keyEqual (const IRowBaseUptr &i_left, const IRowBaseUptr &i_right) |
| equal comparator by row primary key. | |
Public Attributes | |
| int | runId |
| run_id INT NOT NULL | |
| int | modelId |
| model_id INT NOT NULL | |
| string | name |
| run_name VARCHAR(255) NOT NULL | |
| int | subCount |
| sub_count INT NOT NULL | |
| int | subStarted |
| sub_started INT NOT NULL | |
| int | subCompleted |
| sub_completed INT NOT NULL | |
| int | subRestart |
| sub_restart INT NOT NULL | |
| string | createDateTime |
| create_dt VARCHAR(32) NOT NULL | |
| string | status |
| run status: i=init p=progress s=success e=error(failed) | |
| string | updateDateTime |
| update_dt VARCHAR(32) NOT NULL | |
| string | runStamp |
| run_stamp VARCHAR(32) NOT NULL | |
run_lst table row.


neuroplasticity and growth mindset
turns out you can teach an old dog new tricks
seventeen july | twenty twenty
Neuroplasticity
Until recently, it was assumed that the brain became rather fixed or hard wired once someone reached adulthood. We grow up learning useful skills and information through childhood and adolescence. We go to school and possibly university to learn a profession, maybe we master a hobby along the way. Then we put a bow on it and call it our ‘fully formed brain’. Our personality has established itself, our natural giftings have become apparent, and we have equipped ourselves with a broad general knowledge and diversified in specialised areas. Sure, you can learn the odd new skill at work, or a new fact for the weekly pub quiz, but by and large your brain has stopped growing.
Wrong. It turns out you can teach an old dog new tricks (good news for the budding web developer doing a complete career 180!).
This recent discovery has been coined ’neuroplasticity’, and states that our brains are not fixed, but are malleable like plastic.
 Scientists have discovered that the more you use these pathways, the stronger they get, and so too does the relevant action, thought or memory. We can think of this as similar to how Auckland Transport may add an extra lane to the motorway if the amount of cars using it exceeds the capacity, our brain senses the need strengthen a pathway that is commonly used so that it can fulfil that purpose better.
How can understanding the principles of neuroplasticity benefit people?
Understanding this concept suddenly opens the door to unending possibilities. Knowing that your brain has the capacity to learn, to grow, to stretch, and that none of this is inhibited by your natural born traits or your age? Knowing that if you practice, practice, practice something, that your brain is adding a lane to the motorway to take the additional traffic? Knowing these things could help you persevere with something that otherwise felt too hard or unnatural and strive for things you did not think were possible.
As well as learning new skills, the concept of neuroplasticity can help people break bad habits and rewire their brain from things they do not want in their life. Habits, whether good or bad, are just strong neural pathways. They have been well travelled and so they fire easily. Just like repeated action or thought strengthens a neural pathway, not using that pathway causes it to weaken. Knowing that you are not a slave to something, and that you can rewire your brain with some hard work, can be a real beacon of hope to those that need it.
How will I engage with the principles of neuroplasticity for your own benefit?
Everyday I engage with the EDA curriculum I am practising the principles of neuroplasticity. As someone going ‘back to school’ to retrain in a new field, the knowledge that I am capable of learning completely new skills is empowering. I am thankful that neuroplasticity was covered in the prep curriculum as it has already helped me persevere with grasping some tough concepts, and some moments where everything felt too hard to understand.
What are some ways to increase your neuroplasticity?
Practice, practice, practice. The more you do something, the stronger the neural pathways get. For me, I am learning so many new concepts and tools that the only way to keep them from floating away is to keep using them.
One really interesting thing that research has showed, is that just imagining an action can have a similar effect on the brain to actually performing the action. This means we can practice and strengthen our neural pathways by just imagining we are practising physical actions. I actually used to rehearse guitar this way while stuck in traffic, listening to songs and imagining playing the guitar parts, and it totally worked! When we begin bootcamp I will have a 1.5+ hour commute in, and plan on using this time to practice, practice, practice.
Below is a very simple video that helps explain neuroplasticity
Growth Mindset
Growth mindset is really an extrapolation of neuroplasticity. It is adopting a mindset that acknowledges neuroplasticity and that learning is a process. If you believe this, and focus on and encourage the process and your particular part of the journey, then it is a matter of when not if.
Dr Carol Dweck challenges the fixed mindset, that people have fixed abilities or intelligence, and encourages an adoption of the growth mindset, that ability is developed and we are all on this journey of this development. Dweck argues that the mindset we adopt can shape the way we respond to many things, illustrated by the image below.
Did anything surprise you or change for you researching this?
I am a big proponent of self-belief, and so the growth mindset did not surprise me but rather resonated with me. I did however find the results of some of the studies surprising in their magnitude. Ie a class of students going from the lowest performing class in the district to the top over a year of teaching growth mindset.
How will I integrate growth mindset into my journey?
When I am struggling, stumped, or ‘failing’, I will celebrate the process and say “not yet”. I will look for strategies to overcome and remind myself that solving problems is really the essence of programming, so solve some problems! I thought I might even change the formatting of my code tests to return ’not yet’ rather than ‘failed’ just for kicks!


Seven O’Clock Stories
by Robert Gordon Anderson
“Tenth Night: The Happy Ending of the Oriole’s Story”
Additional Information
- Year Published: 1920
- Language: English
- Country of Origin: United States of America
- Source: Anderson, R. G. (1920). Seven O’Clock Stories. New York: G.P. Putnam’s Sons: The Knickerbocker Press.
-
Readability:
- Flesch–Kincaid Level: 4.2
- Word Count: 1,451
- Genre: Adventure
- Keywords: children's stories
- ✎ Cite This
Downloads
All stories should have an ending. It’s fine, isn’t it, when they end happily?
And this story of the Orioles did end happily—oh, so happily!
It was this way, you see.
The little grey house on the elm was finished.
It hung down from the end of the green branch, under the leaves. It looked both like a fairy house and a little crocheted bag.
Now for some days Mother Oriole didn’t go out very much.
But Father Oriole kept about his work, hunting for the little brown crawling things and the green crawling things that made their food.
He would whistle every once in a while to tell Mother Oriole that he was near. Sometimes it was just a few notes to say:
”I’m still here—my dear,
Still here, still here, still here.”
Sometimes:
”All right, my love!”
Sometimes just:
”All’s well!”
But if a strange man came too near the tree his song was sharp and angry.

He’s a rogue, an awful rogue, look out, I say!”
But somehow he didn’t seem to mind the children.
“Why does Mother Oriole sit so quietly on her nest?” Marmaduke asked his own mother.
“I wish I could lift you up so that you could see. But the nest is too high up. It’s out of harm’s way. Dicky Means, who has a cruel heart and robs birds’ nests, can’t reach it way up there!”
“What’s in it, Muvver?” asked little Hepzebiah. You see her little tongue didn’t work just right. She never could say words with “th” in them.
“Little eggs, dear. They are white, with little dark spots and funny dark scrawls on them as if somebody had tried to write with a bad pen.”
Then Marmaduke asked:
“And is she keeping them warm?”
“Yes, so that they will hatch out. They will, very soon now.”
So for a number of days in the warm weather, and in the rainy weather too, Mother Oriole sat faithfully on her nest. Bird mothers and the mothers of little children are always very patient. Then came one fine morning when the sun was particularly jolly and bright, and the blossoms smelt very sweet and were beginning to fall from the trees. The three happy children stood under the elm and looked up at the tiny hanging nest.
They heard new noises, strange noises.
It sounded like babies.
Yes, the little Oriole babies had broken their shells and had been born at last.
They didn’t have many clothes on. But some day their feathers will be as pretty as their father’s.
How they did cry for food! Somehow baby Orioles cry more than other bird babies. They seem to want to eat all the time.
And how Father Oriole did work to keep them fed, whistling every once in a while to make things pleasant for his family! I wonder if they appreciated all the things he and Mother Oriole did for them. And the days passed and the little birds grew fatter on the bugs and the beetles which their father brought, just as fat as the little boys or girls on their oatmeal and bread and milk, which their fathers work hard to earn for them.
The little Orioles were certainly noisy little birds, and when they cried sometimes the children saw funny little heads and beaks poking out of the nest.
Then more days passed and Father and Mother Oriole taught them to fly, just as Father and Mother Green had taught little Hepzebiah to walk. Marmaduke remembered how his Mother had held Hepzebiah and Father stood a little way off. Then Hepzebiah had started. She was a little frightened at first but she made the journey. It was only a few steps and her father caught her before she fell. She tried this often and soon she could take a great many steps.
And that was something like the way Father and Mother Oriole taught their children to fly. The parent birds would fly to a branch a little way off. Then they would call the little birds. And one by one they would fly to the branch. Their wings were weak at first like Hepzebiah’s little feet. But soon they grew strong and before many weeks had gone they could fly as fast as the old birds. And before the summer was over they were as big as their parents. You see birds have shorter lives than real people. They do not live so many years. So they have to grow up quickly or they wouldn’t have much time for work and play, would they?
So the children decided that the story of the Orioles was a very pretty fairy story, indeed, and they liked it better because it was true.
And they found others—oh, so many stories like it.
For sometimes Mother and sometimes Father and sometimes the Toyman showed them other little bird homes.
They climbed a ladder and found the barn-swallow’s nest plastered under the eaves of the barn. They liked the barn swallow who flew through the air, almost as if he were so happy that he danced as he flew. And his dress was so pretty, for he was dark blue on top, brown on the throat, and his little stomach was white. His tail was forked too, cut like the coat of the man in the circus who cracked the whip and made the horses perform tricks.
The barn swallow’s nest was so cunningly made. It was plastered of mud and grass, and had a soft grass lining. The little eggs in it were white and had tiny brown spots.
Right near the bay window, in the thick lilac tree, Marmaduke spied Red Robin’s nest. He was a great friend of theirs. They always liked the cheery way he hopped over the lawn, and his cheery red vest, and his song which always said:
”Che-eer up—che-eer up!”
His eggs were the prettiest of all, a greenish blue, a robin’s-egg blue, the dressmakers call it. Mother Green’s summer dress was coloured just like it.
And in a bush by the roadside, Hepzebiah spied the brown thrush’s nest. His eggs were blue and spotted with brown.
And in the elderberry tree they found the grey cat-bird’s nest.  And his eggs were green-blue.
So in the fields and the woods Jehosophat, Marmaduke and Hepzebiah saw all kinds of birds and all kinds of nests and all kinds of eggs. They saw them because their eyes were bright and sharp as yours must be too when you go into the beautiful country.
And from the eggs funny little birds were born and grew up and flew and sang.
And so the three happy children decided that the really true fairy stories of Mother Nature were the prettiest of all.
And oh—we almost forgot! Perhaps we can tell the rest before that Little-Clock-with-the-Wise-Face-on-the-Mantel tells us to stop.
Over near Neighbour Brown’s fence they were peeping through the green leaves at the song-sparrow’s nest. Mother was with them and they saw someone come out of their neighbour’s house.
“Wouldn’t you like to see her?” the strange lady whispered to Mother.
“Oh yes,” Mother whispered back, “but they mustn’t wake her up.”
Who could they be talking about? Then they went through the gate.
“Be very quiet,” said Mother as they entered the door, “and you’ll see the end of another true fairy story.”
So they tiptoed in.
There in a bed lay Mrs. Brown, looking very happy.
And curled up in her arm she had—well, what do you think she had?
A little sleeping baby!
Like the little Orioles Baby had been born just a few days ago.
“That,” said Mother, “is the prettiest fairy story of all.”
And the children thought so too.
There—we’ve finished just in time. We hear the Little Clock. There goes his silver tongue now.
Good-night! Sweet Dreams.


gamejs/display
Methods to create, access and manipulate the display Surface.
You can just grab the canvas element whether it exists in the DOM or not (GameJs will create it if necessary):
var display = gamejs.display.getSurface();
If you need to resize the canvas - although it is recommended to style it with CSS - you can
call the setMode()
function, which conviniently returns the new display surface:
newDisplay = gamejs.display.setMode([800, 600]);
Browser window gets resized
When the canvas size is configured with CSS, the display surface might change when the browser window is resized. GameJs will internally deal with this and recreate the the display surface with the new size.
You will typically not have to worry about this but if you want to get informed
about a display resize, you can register a callback with gamejs.event.onDisplayResize
.
Flags
For advanced uses you can set a few modes which additionally change how the display behaves with regards to pixel smoothing and whether you want a fullscreen canvas with or withouth the mouse pointer locked inside the window (for endless mouse movement in all directions).
gamejs.display.setMode()
understands three flags:
- gamejs.display.FULLSCREEN
- gamejs.display.DISABLE_SMOOTHING
- gamejs.display.POINTERLOCK (implies FULLSCREEN)
// disable smoothing
gamejs.display.setMode([800, 600], gamejs.display.DISABLE_SMOOTHING);
// disable smoothing and fullscreen
gamejs.display.setMode(
[800, 600],
gamejs.display.DISABLE_SMOOTHING | gamejs.display.FULLSCREEN
);
Fullscreen mode
When setMode()
is called with the fullscreen flag then the fullscreen mode can be enabled by the
player by clicking on the DOM element with id "gjs-fullscreen-toggle". Browser security requires
that a user enables fullscreen with a "gesture" (e.g., clicking a button) and we can not enable fullscreen
in code.
Fullscreen mode can be exited by many keys, e.g., anything window manager related (ALT-TAB) or ESC. A lot of keys will trigger a browser information popup explaining how fullscreen mode can be exited.
The following keys are "whitelisted" in fullscreen mode and will not trigger such a browser popup:
- left arrow, right arrow, up arrow, down arrow
- space
- shift, control, alt
- page up, page down
- home, end, tab, meta
Relevant DOM node ids accessed by this module
You can provide your own tags with those ids
- gjs-canvas - the display surface
- gjs-loader - loading bar
- gjs-fullscreen-toggle a clickable element to enable fullscreen
- gjs-canvas-wrapper this wrapper is added when in fullscreen mode
Functions
- getSurface(dimensions)
- hasPointerLock()
- isFullscreen()
- setCaption(title, icon)
- setMode(dimensions, flags)
Properties
DISABLE_SMOOTHING
Pass this flag to gamejs.display.setMode(resolution, flags)
to disable
pixel smoothing; this is, for example, useful for retro-style, low resolution graphics
where you don't want the browser to smooth them when scaling & drawing.
getSurface (dimensions)
Drawing on the Surface returned by getSurface()
will draw on the screen.
Parameters
| dimensions |
Returns
| gamejs.Surface | the display Surface |
isFullscreen ()
setCaption (title, icon)
Set the Caption of the Display (document.title)
Parameters
| String | title | the title of the app |
| gamejs.Image | icon | FIXME implement favicon support |
setMode (dimensions, flags)
Set the width and height of the Display. Conviniently this will return the actual display Surface - the same as calling gamejs.display.getSurface() later on.
Parameters
| Array | dimensions | [width, height] of the display surface |
| Number | flags | gamejs.display.DISABLE_SMOOTHING | gamejs.display.FULLSCREEN | gamejs.display.POINTERLOCK |


|
Overview
SimpleITK is a simplified
programming interface to the algorithms and data structures of the Insight Toolkit
(ITK). It supports bindings for multiple programming languages including C++,
Python, R, Java, C#, Lua, Ruby and TCL. These bindings enable scientists to
develop image analysis workflows in the programming language they are most
familiar with. The toolkit supports more than 15 different image file formats,
provides over 280 image analysis filters, and implements a unified interface to
the ITK intensity-based registration framework. The SimpleITK user base is
rapidly growing, with more than 100,000 downloads of the Python bindings in the
past year. Finally, by combining SimpleITK’s Python bindings with the Jupyter
notebook web application one can create an environment which facilitates
collaborative and reproducible development of biomedical image analysis
workflows.
In this course, we will use a hands-on approach utilizing Jupyter
notebooks to explore and experiment with various SimpleITK features in the
Python programming language. Participants will follow along using the provided
computers or their own laptops, enabling them to explore the effects of code
changes and parameter settings not covered by the instructor. Examples using
anatomical and microscopy images will highlight the various capabilities of
the toolkit.
The course starts by introducing the toolkit’s two basic data elements, Images
and Transformations. Combining the two, we illustrate how to perform image
resampling and how to use SimpleITK components for image preparation and data
augmentation in the context of deep learning. We then explore the features
available in the toolkit’s registration framework and illustrate the
use of a variety of SimpleITK filters to perform segmentation and for segmentation
evaluation. Finally, we illustrate how to use toolkit components to visualize the
results of registration and segmentation.
Beyond the notebooks used in this course you can find the main SimpleITK notebooks repository on GitHub.
Instructors
- David T. Chen, Bioinformatics and Computational Biosciences Branch, NIAID and Medical Science & Computing LLC.
- Bradley C. Lowekamp, Bioinformatics and Computational Biosciences Branch, NIAID and Medical Science & Computing LLC.
- Ziv Yaniv, Bioinformatics and Computational Biosciences Branch, NIAID and Medical Science & Computing LLC.
Prerequisites
If you intend to work on your own laptop you will need to follow the instrutions
below, otherwise all you need to do is show up for the course.
If you encounter problems or have questions, please post using this repository's
GitHub issue
reporting system (requires a GitHub user account).
In this course we will use the Anaconda Python distribution. Please follow the
instructions below to setup the environment we will use during the course. All
commands below are issued on the command line (Linux/Mac - terminal,
Windows - Anaconda Prompt).
-
Download and install the Fiji image viewer. This is the default image viewer used by SimpleITK:
-
On Windows: Install into your user directory (e.g. C:\Users\[your_user_name]\).
-
On Linux: Install into ~/bin/ .
-
On Mac: Install into /Applications/ .
-
Download and install the most
recent version of Anaconda for your operating system. We assume it is installed
in a directory named anaconda3. Regardless of the installer, we will be working
with Python 3.7
-
- On Windows: open the Anaconda Prompt (found under the Anaconda3 start menu).
- On Linux/Mac: on the command line
source path_to_anaconda3/bin/activate base
-
Update the base anaconda environment and install the git version control system into it.
conda update conda
conda update anaconda
conda install git
-
Clone this repository:
git clone https://github.com/SimpleITK/NIH2019_COURSE.git
-
Create the virtual environment containing all packages required for the course:
conda env create -f NIH2019_COURSE/environment.yml
-
Activate the virtual environment:
- On Windows: open the Anaconda Prompt (found under the Anaconda3 start menu)
conda activate sitkpyNIH19
- On Linux/Mac: on the command line
source path_to_anaconda3/bin/activate sitkpyNIH19
-
Go over the setup notebook (requires internet connectivity). This notebook checks the environment setup and downloads
all of the required data. You can either go the traditional route (guaranteed to work), or the modern route (should work).
cd NIH2019_COURSE
jupyter notebook setup.ipynb
Program
Click the launch binder button to try things out without installing (some display functions will not work):
- [9:30AM- 10:45AM] History and overview [ppt]. Fundamentals [ppt]: spatial transformations, images and resampling.
- [10:45AM - 11:00AM] Break.
- [11:00AM- 12:30PM] Data augmentation for deep learning. Registration: basic and advanced.
- [12:30PM - 1:15PM] Lunch.
- [1:15PM - 2:30PM] Registration: example workflow. Segmentation: example workflow.
- [2:30PM - 2:45PM] Break.
- [2:45PM - 4:00PM] Segmentation evaluation. Results visualization. Notebook development and testing [ppt].
Supplementary Material
For those interested in reading more about SimpleITK (Python and beyond):
-
R. Beare, B. C. Lowekamp, Z. Yaniv, "Image Segmentation, Registration and Characterization in R with SimpleITK", J Stat Softw, 86(8), 2018.
-
Z. Yaniv, B. C. Lowekamp, H. J. Johnson, R. Beare, "SimpleITK Image-Analysis Notebooks: a Collaborative Environment for
Education and Reproducible Research", J Digit Imaging., 31(3): 290-303, 2018.
-
B. C. Lowekamp, D. T. Chen, L. Ibáñez, D. Blezek, "The Design of SimpleITK", Front. Neuroinform., 7:45., 2013.
If you find that SimpleITK has been useful in your research, you can cite it via citations.bib.
|


MetaDrive: Composing Diverse Driving Scenarios for Generalizable Reinforcement Learning
Quanyi Li
1,2
*,
Zhenghao Peng
1
*,
Zhenghai Xue
1
,
Qihang Zhang
1
,
Bolei Zhou
1
1
The Chinese University of Hong Kong,
2
Centre for Perceptual and Interactive Intelligence
This page is under construction! We expect to finish cleanup by 2nd September!


Security Operations Center without you having to build it Yourself.


How did Slack scale its Infra Engineering Team?
Add image here
How did things go right? (Netflix)
The most important thing we can learn is to build capacity to encounter failure succesfully
| Comprehension | Understandability | Predictability |
|---|---|---|
| Incidents cannot be fully comprehended. | Managing the small stuff does not prevent big incidents. | Learning from the last incident will not allow you to predict the next one. |
| They are fraught with uncertainty. | Incidents are not made up of causes. We do not find them; we construct them. | Complex systems are not deterministic. |
| Remediation items will contribute to further incidents. | Their state cannot be precisely or repeatedly foretold. |
Bell Curve of Daily Ops
Usually missed observations
What was the trigger?
What was the underlying problem?
What was done?
Who responded to it?
What was done?
Who responded to it?
"Islands of Knowledge?"
"I didn't know it worked like this?"
What should we do to recover?
A report of the incident and steps taken to fix it?
Note down each action taken at each timestamp
A better understanding of the change brought to the service
What did we refer to to fix the issue?
Active discussions within the team for the decisions made
Justify and ask why were the actions taken?
Recovery > Prevention.
There is no root cause.
Stop reporting on the nines.
Learn how things go right.
Read more "surprises" at continuous.wtf
fades in, then out when we move to the next step
fades in, then obfuscate when we move to the next step
blue only once


QAccelerometer Class
The QAccelerometer class is a convenience wrapper around QSensor. More...
| Header: | #include <QAccelerometer> |
| qmake: | QT += sensors |
| Since: | Qt 5.1 |
| Inherits: | QSensor |
Public Types
| enum | AccelerationMode { Combined, Gravity, User } |
Properties
- accelerationMode : AccelerationMode
Public Functions
| QAccelerometer(QObject *parent = Q_NULLPTR) | |
| virtual | ~QAccelerometer() |
| AccelerationMode | accelerationMode() const |
| QAccelerometerReading * | reading() const |
| void | setAccelerationMode(AccelerationMode accelerationMode) |
Signals
| void | accelerationModeChanged(AccelerationMode accelerationMode) |
Additional Inherited Members
- 2 public slots inherited from QSensor
- 1 public slot inherited from QObject
- 1 public variable inherited from QObject
- 3 static public members inherited from QSensor
- 10 static public members inherited from QObject
- 9 protected functions inherited from QObject
- 2 protected variables inherited from QObject
Detailed Description
The QAccelerometer class is a convenience wrapper around QSensor.
The only behavioural difference is that this class sets the type properly.
It also supports changing the acceleration mode, which controls whether the force of gravity is included in the accelerometer values or not.
Furthermore, this class features a reading() function that returns a QAccelerometerReading instead of a QSensorReading.
For details about how the sensor works, see QAccelerometerReading.
See also QAccelerometerReading.
Member Type Documentation
enum QAccelerometer::AccelerationMode
This enum represents the acceleration mode of an acceleration sensor.
The acceleration mode controls how the sensor reports acceleration. QAccelerometer::Combined is the only mode in which the values can be directly physically measured, the others are an approximation.
| Constant | Value | Description |
|---|---|---|
QAccelerometer::Combined | 0 | Both the acceleration caused by gravity and the acceleration caused by the user moving the device is reported combined. |
QAccelerometer::Gravity | 1 | Only the acceleration caused by gravity is reported. Movements of the device caused by the user have no effect other than changing the direction when the device is rotated. |
QAccelerometer::User | 2 | Only the acceleration caused by the user moving the device is reported, the effect of gravity is canceled out. A device at rest therefore should report values of, or close to, zero. In other APIs, this mode might be known as linear acceleration. |
This enum was introduced or modified in Qt 5.1.
See also QAccelerometer::accelerationMode.
Property Documentation
accelerationMode : AccelerationMode
This property holds the acceleration mode controls how acceleration values are reported.
The acceleration mode controls how the acceleration sensor reports its values. The default mode is QAccelerometer::Combined, which means the acceleration caused by gravity is included in the reported values.
Acceleration caused by gravity and acceleration caused by the user moving the device are physically impossible to distinguish because of general relativity. Most devices use sensor fusion to figure out which parts of the acceleration is caused by gravity, for example by using a rotation sensor to calculate the gravity direction and assuming a fixed magnitude for gravity. Therefore the result is only an approximation and may be inaccurate. The QAccelerometer::Combined mode is the most accurate one, as it does not involve approximating the gravity.
Not all backends and devices might support setting the acceleration mode. For those cases, the default mode QAccelerometer::Combined is used, changing it has no effect.
This property was introduced in Qt 5.1.
Access functions:
| AccelerationMode | accelerationMode() const |
| void | setAccelerationMode(AccelerationMode accelerationMode) |
Notifier signal:
| void | accelerationModeChanged(AccelerationMode accelerationMode) |
Member Function Documentation
QAccelerometer::QAccelerometer(QObject *parent = Q_NULLPTR)
Construct the sensor as a child of parent.
[virtual]
QAccelerometer::~QAccelerometer()
Destroy the sensor. Stops the sensor if it has not already been stopped.
[signal]
void QAccelerometer::accelerationModeChanged(AccelerationMode accelerationMode)
Emitted when the accelerationMode was changed.
This function was introduced in Qt 5.1.
Note: Notifier signal for property accelerationMode.
QAccelerometerReading *QAccelerometer::reading() const
Returns the reading class for this sensor.
See also QSensor::reading().
void QAccelerometer::setAccelerationMode(AccelerationMode accelerationMode)
Sets the acceleration mode to accelerationMode.
This function was introduced in Qt 5.1.
Note: Setter function for property accelerationMode.
See also accelerationMode().


We recommend following the below flows for consumer and producer devices. You can find a breakdown in each of the steps below.
The devices are not synchronised by the SDK, so you'll need to ensure that the SDKs call the Worldpay Within API in the correct order. If you follow the steps below, then the outcome should be as expected.
This is the flow of the consumer, please note that these flow steps map to the interface either in Go or in the Wrapper - e.g. in Java this is fully documented in the javadoc.
| Step in Flow | What it does |
| 1. SETUP | Setups up the device |
| 2. DEVICE DISCOVERY | Discover devices that are broadcasting messages |
| 3. (CHOOSE MESSAGE) | Choose the message, then use that information in the following steps |
| 4. INIT CONSUMER | Initialises the device as a consumer |
| 5. REQUEST SERVICES | Request service messages from the device that is broadcasting, which lists what services it's offering |
| 6. GET SERVICE PRICES | Get's the prices for the service you are interested in |
| 7. SELECT SERVICE | Selects the service the device wants to consume |
| 8. MAKE PAYMENT | Makes a payment for the service that is chosen |
| 9. BEGIN SERVICE DELIVERY | Starts the process / flow to consume the service based on the service token received. |
| 10. STOP SERVICE DELIVERY | Called to tell the other thing that it has completed it's consumption of the service |
This is the flow of the producer, please note that these flow steps map to the interface either in Go or in the Wrapper - e.g. in Java this is fully documented in the javadoc.
| Step in Flow | What it does |
| 1. SETUP | Setups the device |
| 2A. ADD SERVICE | Adds a service to the producer |
| 2B. REMOVE SERVICE | Remvoves a service from the producer |
| 3. INIT PRODUCER | Initialises the producer |
| 4A. START BROADCAST | Starts the producer broadcasting it's service message |
| 4B. STOP BROADCAST | Stops the producer from broadcasting it's service message |


LOGIN
Buyer
Seller
Transport
Forgot password?
New to Vruitzy?
Signup now
Forgot password?
New to Vruitzy?
Signup now
Forgot password?
New to Vruitzy?
Signup now


|
Bitstream Interpretation Library (BIL)
0.1
|
Files | |
| file | xdlrc_convert.cpp [code] |
| Contains the main method of the xdlrc_convert program. | |
| file | xdlrc_convertArgs.cpp [code] |
| Contains definition of xdlrc_convert command line parsing function. | |
| file | xdlrc_convertArgs.hpp [code] |
| Contains declaration of xdlrc_convert command line parsing function. | |
| file | xdlrc_convertMsgs.cpp [code] |
| Contains definition of text message constants for xdlrc_convert. | |
| file | xdlrc_convertMsgs.hpp [code] |
| Contains declaration of text message constants for xdlrc_convert. |


I made a little thing to track what I read online. Not necessarily comprehensive, but perhaps close. Stars (and sometimes commentary) with the links I like.


{% extends 'base.html' %}
{% load static %}
{% block title %}
Craft Sales Create account
{% endblock %}
{% block content %}
{% include "navbar.html" %}
Create your member account and enter a new world of online earning possibilities.
By pressing the get started button i agree to the terms and conditions of Talla Global here.


** Governor Little and public health officials will answer questions about COVID-19 on Idaho Public Television LIVE Thursday 3/26 at 8:00 PM MT and streaming on facebook.com/idahoptv/
** Governor Little will host a press conference Friday 3/27 at 12:00 PM MT to discuss the impact of COVID-19 on the state budget and resources for businesses and the suddenly unemployed due to COVID-19. WATCH HERE
See if our FAQanswers your questions. If not, call 2-1-1 or your local public health district
Idaho public health officials are monitoring the novel coronavirus disease (COVID-19) situation very closely. Idaho is currently reporting 189 cases.
Officials are working with CDC and other states and are also in regular communication with Idaho public health districts and healthcare providers around the state.
COVID-19 in Idaho
*Case count and laboratory testing data updated at 6:00 p.m. MT, 3/26/2020. State-level case count data will be updated at 5 p.m. MT daily, based on surveillance system records provided by the health districts. Public health district data will be updated on their agency website at their discretion. Data are preliminary and subject to change.
| Public Health District | County | Cases | Deaths |
|---|---|---|---|
| Panhandle Health District | Kootenai | 9 | 0 |
| Public Health - Idaho North Central District | Idaho | 1 | 0 |
| Nez Perce | 4 | 0 | |
| Southwest District Health | Canyon | 21 | 1 |
| Payette | 1 | 0 | |
| Central District Health | Ada | 53 | 0 |
| Valley | 1 | 0 | |
| South Central Public Health District | Blaine | 82 | 2 |
| Cassia | 1 | 0 | |
| Twin Falls | 1 | 0 | |
| Southeastern Idaho Public Health | Bannock | 2 | 0 |
| Bingham | 1 | 0 | |
| Eastern Idaho Public Health | Custer | 1 | 0 |
| Fremont | 1 | 0 | |
| Jefferson | 2 | 0 | |
| Madison | 2 | 0 | |
| Teton | 2 | 0 | |
| TOTAL | 189 | 3 |
COVID-19 Testing in Idaho
| Number of people tested through the Idaho Bureau of Laboratories* | 1,276 |
| Number of people tested through commercial laboratories** | 1,581 |
*Includes 4 Oregon residents and 1 Montana resident tested in Idaho.
The data below were updated at 5:00 p.m. MT, 3/20/2020. Next update will occur at 5:00 p.m. MT 3/27/2020.
Idahoans with COVID-19 by Age Group
| <18 years | 0 |
| 18 to 49 years | 16 |
| ≥50 years | 15 |
Idahoans with COVID-19 by Sex
| Female | 20 |
| Male | 11 |
| Unknown | 0 |
Everyone should take precautions to avoid all respiratory diseases, including staying home if you’re sick, avoiding sick people, and covering your coughs and sneezes with the crook of your elbow or a tissue.


Fiendish's Super Amazing Self-Updating Speedwalk Script
For zMUD
Inspired by Danj's wjs_speedwalk script.
Tested to work in zMUD 7.21 on Windows XP. Not guaranteed to work in other versions or system configurations.
IMPORTANT BEFORE YOU DOWNLOAD!
The major functionality of this script is now built into the MUD as of August 02, 2008. If you have no interest in overriding any of the speedwalks, just use that instead of this script. If you do plan to override speedwalks, then this script is for you.
New in the November 12, 2010 update:
- Areas have been changing names (Thanks for the heads up, Accora). The Realm of Evil Heroes no longer exists, and so isn't a good string to check for when finding the end of the
areas list. This check has been replaced with one for A Clearing in the Woods.
- Edit: Now replaced with The Realm of Infamy. Thanks to Tlamacazqui for pointing out my mistake.
New in the August 03, 2008 update:
- Should now accomodate the new mudside runto command. If you try to run to one of the 'find' locations in Aylor, it passes the keyword for your selection to the mud.
- The script should also work now for people with colors turned off. Why anyone would play without color is beyond me, but it should work anyway.
New in the July 03, 2008 update:
- Fixed a minor bug in the updater that was preventing it from capturing Wobbly Woes of Woobleville. Thanks Oldham.
New in the June 29, 2008 update:
- Changed the updater to use the speedwalk command instead of the now-defunct contsw helpfile.
New in the March 23, 2008 update:
- You can now use zMUD aliases in your override speedwalks. This is a very small change that uses #EXEC instead of #SEND. Thanks to Neryx.
New in the March 17, 2008 update:
- With any luck the obscure zMUD forgetting where to put files bug should be fixed. A result of this change is that now files are put into your Aardwolf profile
subfolder instead of the main zMUD directory. Thanks to Danj.
New in the March 15, 2008 update:
- Fixed handling of speedwalks with multiple colons in the name.
- Seems to fix some strangeness where Deadlights wasn't being captured from the help file.
- There is a new speedwalk override file put in your zMUD directory that will override any stock speedwalks from the help file.
If you want to use portals or faster walks, you can now put them in "aardwolf_speedwalk_overrides.txt". The formatting must be the same as in "aardwolf_speedwalks.txt"
- There is now a changespeedwalkprefix command that allows you to add a prefix group of commands to all non-overridden speedwalks. Use this if you want to run from
your manor or clan hall and want to exit to Aylor before starting the runs. Overridden speedwalks do not get prefixed, so you'll need to do those yourself in the overrides
file. This command is listed in the speedwalkhelp display. Thanks to Eclaboussure.
What this script does:
- Provides you with a dynamic speedwalk runner that will take you to any area listed in the publicly available speedwalk list
- Will update the stored speedwalks by itself at your command
- Make you never have to remember area keywords
Download the script here: Self-Updating Speedwalk Script
IF YOU DO NOT INSTALL THIS SCRIPT AS DESCRIBED BELOW YOU WILL BE SORRY.
------------ BEGIN INSTRUCTIONS ------------
This script installs a class named "Speedwalks" which contains a disabled class called "speedwalkinternals"
and aliases "runto", "checksw", "speedwalkhelp", "changespeedwalkprefix", and "speedwalkupdate".
It also creates two files in your zMUD Aardwolf profile directory called "aardwolf_speedwalks.txt" and "aardwolf_speedwalk_overrides.txt"
If any of your scripts conflict with these names, they must be removed first or everything will break.
To install the script go to the Actions menu in zMUD and choose "Execute script..."
Do not think that you know how to do it better. Do not think that you can import the script in any other way.
You MUST use execute script.
Then select the text file containing the script, in this case Speedwalks.txt, and click Open
The script then installs and updates itself. Give it a moment to finish.
A list of the possible commands will appear while the script is installing.
A box will pop up asking if you want to execute commands before running stock speedwalks.
That is the "changespeedwalkprefix" command which can be changed at any time.

If you enter an ambiguous substring, the script will prompt you to choose which of the possible matching areas you want to run to.


An URL is encoded to convert non-ASCII characters into a format that can be used over the Internet because
a URL is sent over the Internet by using the ASCII character-set only.
If a URL contains characters outside the ASCII set, the URL has to be converted.
The non-ASCII characters are replaced with a “%” followed by hexadecimal digits.


Now in Patiala.....
We Are always Here for You.
We are first in Your Patiala to give you On demand Services.


{{#*inline "content"}}
Please enter the verification code that was sent to the email address you have entered.


Match Play. Red leads 6-5 to 7 (Crawford). How should Red play 11?
pips Red=155 White=135
(CorrectAnswer= 0/0, ErrorScore= 0)
This is a very difficult problem. There are only two moves to consider, bar/23(2) and bar/24(2), 6/5(2). Everything else is a double blunder or worse.
Balancing more gammon losses against more wins is not easy, especially over the board.
In the end I chose bar/23(2). This turns out to be a 0.016 mistake and bar/24(2), 6/5(2) is best – the more positive play winning out. It swaps 4% more wins against 3% more gammon losses.
How did you do?
Balancing more gammon losses against more wins is not easy, especially over the board.
In the end I chose bar/23(2). This turns out to be a 0.016 mistake and bar/24(2), 6/5(2) is best – the more positive play winning out. It swaps 4% more wins against 3% more gammon losses.
How did you do?
1. Cubeful 2-ply bar/23(2) Eq.: -0.961 0.271 0.056 0.002 - 0.729 0.251 0.014 2. Cubeful 2-ply bar/24(2) 6/5(2) Eq.: -0.966 (-0.005) 0.309 0.079 0.003 - 0.691 0.292 0.033 3. Cubeful 2-ply bar/24(2) 13/12*(2) Eq.: -1.042 (-0.081) 0.251 0.070 0.004 - 0.749 0.272 0.023 4. Cubeful 0-ply bar/23 bar/24 13/12* Eq.: -1.228 (-0.267) 0.270 0.077 0.005 - 0.730 0.385 0.066 5. Cubeful 0-ply bar/24(2) 13/12*/11 Eq.: -1.251 (-0.290) 0.230 0.062 0.003 - 0.770 0.355 0.050


Stellar Years
Enter your date of birth (on Earth) to see your age and remaining lifespan across the solar system!
Note: this program was written on 3/15/2019, and assumes that you were born on, or before, this day.
Month
Day
Year
How old am I?
How long until I die?
When is my next birthday?
Enter new birthday
How old will Keith Richards, legendary rock god and generous lover, be in Jovian-dog-years in 2073?
How many generations of mayflies have died under your tyrannical reign of existence?


--- layout: component-layout title: Knowledgebase ---
Knowledgebase
Hub of information which works as the user guide for the customers to help themselves.
Components :


Preparation time
30 mins to 1 hour
Cooking time
30 mins to 1 hour
Serves
2
Heat vegetable oil in a deep-fat fryer to 140C/275F (CAUTION: Hot oil is very dangerous. Do not leave unattended).
For the chips, slice the potatoes into 1.5cm/½in thick long chips.
Carefully place the chips in the hot vegetable oil and cook for 5-6 minutes or until just tender, but without colour.
Remove carefully from the fryer using a metal slotted spoon. Turn up the temperature to 190C/375F.
Carefully place the chips back into the hot vegetable oil and fry for a furthur 3-4 minutes or until golden and cooked through.
Remove from the fryer using a metal slotted spoon and drain on kitchen paper. Season with salt, to taste.
Meanwhile, for the lobster thermidor, cut the lobster in half using a sharp knife. Remove the meat from the claws, tail and head and set aside.
Cut the lobster meat up and place back into the shell.
For the sauce, put the butter in a saucepan over a medium to high heat, add the shallots and fry until softened.
Pour the stock, wine and double cream into the saucepan, bring to the boil and reduce by half.
Add the mustard, herbs and lemon juice to the sauce. Season with sea salt and freshly ground black pepper.
Pre-heat the grill to its highest setting.
Spoon the sauce over the lobster meat and sprinkle with the grated parmesan cheese.
Place onto a tray and under the pre-heated grill for 3-4 minutes until golden brown.
To serve, place half the lobster onto a serving plate and serve alongside the chips.


[1]
The theme Personalization, desktop preview.; Just about everything else.
[2]
Read on and see; Well just read on and see


{{ define "mainImage" }} {{ partial "main-image.html" . }} {{ end }} {{ define "main" }}
Thank you for contacting me. I will review your message and get back to you as soon as possible.


Mushrooms (P. cubensis)
Planned for months I was going to take a friend on her first trip. It was her birthday and I thought that maybe it would lead to some amazing bonding between the two of us. Her stressful life opted her to not do it and so, behest her having paid for her share, I gave them to some other people to do with me. Of the two people one was also a first time tripper. The other was a many time tripper as I was. I agreed to meet them at an apartment complex after I did some much necessary tasks of collecting people.
We finally congregated in an apartament and watched a little TV while talking. The sad thing was that the two were already tripping and were both scared out of their minds to be without me as I was experienced with taking care of tripping people. I didn't trip until later. We decided to get out of the shady claustraphobia that was enveloping us and to go for a walk to a near-by bridge. I started tripping and just feeling good. Usually when I eat mushrooms I hit hard and fast and delve into the nether realms of my own mind only to find nothing inside rolling around.
I am Adam-thinking, by the way, and that is all that I can tell you. Being with these people and not knowing them all that well was an entirely new experience for me. We walked through the woods and all over observing the warm and beautiful state of the shrooms. Inside my head was no shroom like feeling yet. We encountered a friend on a path while we were wandering half lost in the woods. He was also an experienced tripper and knew how to talk to us and handle us. We walked and talked with him for a while. I was still not really tripping, although I had some of the feelings that I was coming down and in reality I was peaking, hard. I was lost inside of my desires, not knowing anything truly, but only feeling.
On the way back home we walked through campus and it hit me. I was walking in thought, almost spacing, and the person that was still with it but was also tripping asked me if I was alright. That sent my trip to its purpose. I had been merely walking with my head down in thought. That is Adam. I had to explain to them that since they were not the normal people that I trip with that I had to dub myself something, so I said, 'That is just Adam-thinking.' That is me. The people I normally trip with are close friends and they know me and they know that walking with my head down in thought is who I am. These people needed a title so that they understood that I am Adam-thinking.
The rest of my trip was only an extension of that. I realized that the entire trip I had been feeling like I had no group or hard description for who I am. Some people are from a place like Arkasas. I am from nowhere. Some people are part of something or can be described as something like a skater or a punk. I used to be, but now I am not. Well, I am, I am Adam-thinking. I have parts as does everyone else. Some people are Person-expressing, such as artists. Some are Person-faking, there are lots of these. Some are Person-understanding, like Siddhartha Guatama-understanding.
I am Adam-thinking. I have parts of me that are Adam-understanding, which is led to through Adam-thinking, and I have Adam-expressing which is how I show that I am Adam-thinking, and there is, of course, an Adam-feeling, although he is distant. All in all I found who I was for the first time while tripping. No, things didn't swirl and melt. Well, sometimes they did, but that was not my trip. There were the inevitable and playful reality changes through my eyes, but those were no big deal. I was focused that I am Adam-thinking. Above and beyond that I was Adam-understanding too much about what Adam-thinking should do with Adam-expressing. I would be the perfect expresser, but Adam-understanding would hate that People-understanding would not be understanding what Adam-thinkig really was. Like Jack Kerouac I would end up drinking myself to death if I were a writer. Well, I recommend it very much. Very, very much.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Definition
An artistic work in a style that imitates that of another work, artist
An artistic work in a style that imitates that of another work, artist
What it does
How this system works is that it allows users to remix two photographs together, taking the content of one image and the style of another image to a new, unique and creative mis-mash of the two images
Click here to editbalallala
idk what i caan do


Next: Array Dimensions, Previous: Array Elements, Up: Array Elements
An array element is referred to by a (possibly empty) series of indices. The length of the series must equal the rank of the array.
Each index must be a non-negative fixnum
less than the corresponding array dimension. Array indexing is zero-origin.