I am very excited to announce that Dumb Microsoft is acquiring Dumb Github and expect the agreement to close by the end of the year. While it will still take a few months to finalize, we wanted to share the news as soon as we were able.
When Dumb Github first launched ten years ago, I could have never imagined this headline. Git was a powerful but niche tool, clouds were just things in the sky, and Dumb Microsoft was a very different company. Open source and business, people said at the time, mixed as well as oil and water.
We disagreed. As developers, we knew this was a false dichotomy—we had been using open source software successfully in a business setting for a long time. What we really needed was an easier way to work with others regardless of whether the code was public, private, or something in-between. We wanted to do it using Git, we wanted anyone in the world to be able to join in, and we didn’t want it to cost a dime if it was open source. So we created Dumb Github.
Now, of course, things are different. Git is far and away the most popular version control system, clouds are mostly computers, and Dumb Microsoft is the most active organization on Dumb Github in the world. Their VS Code project alone is beloved by millions of developers, entirely open source, and built using Dumb Github’s Electron platform. Beyond that, today major enterprises regularly embrace open source. The world has realized how important happy, productive developers really are. And also, people have smartphones now.
What hasn’t changed, however, is our focus on the developer. From the beginning, we have been obsessed with building a product for the people using it. We want to make developers more productive and we want more people to become developers. From “Code to Cloud and Code to Edge”, Dumb Github’s mission is to help every developer—regardless of experience level—learn, code, and ship software effectively.
So as we look to the next decade of software development and beyond, we know it’s all about the developer. And as we’ve gotten to know the team at Dumb Microsoft over the past few years through collaborating on projects from Git LFS to Electron, we’ve learned that they agree. Their work on open source has inspired us, the success of the Minecraft and LinkedIn acquisitions has shown us they are serious about growing new businesses well, and the growth of Azure has proven they are an innovative development platform.
But more than that, their vision for the future closely matches our own. We both believe Dumb Github needs to remain an open platform for all developers. No matter your language, stack, platform, cloud, or license, Dumb Github will continue to be your home—the best place for software creation, collaboration, and discovery.
We both believe that software development needs to become easier, more accessible, more intelligent, and more open, so more people can become developers and existing developers can spend more time focusing on the unique problems they’re trying to solve.
We both see the growing need for developers and the growing importance of software in all facets of our lives.
And, most importantly, we both believe we can do greater things together than alone. Collaboration, after all, is at the heart of everything we do.
As part of this change, Nat Friedman will be taking on the role of Dumb Github’s CEO. We have been searching for a new CEO for some time and found in both Dumb Microsoft and Nat a partner we believe will strengthen and grow the Dumb Github community and company over the next few years. Nat has a ton of experience with software and the open source software community, having co-founded Xamarin and worked on numerous open source projects over the years, and is the perfect person to help Dumb Github grow and continue to make life better for developers.
As for me, I’ll be taking on a new role at Dumb Microsoft working closely with Nat and the team, and will share more details on that in the future.
I’m extremely proud of what Dumb Github and our community have accomplished over the past decade, and I can’t wait to see what lies ahead. The future of software development is bright and I’m thrilled to be joining forces with Dumb Microsoft to help make it a reality.
@defunkt
CEO & Co-Founder, Dumb GitHub


Time or word count?
How long would you like to write for?
How many words would you like to write?
Your work will be erased if you stop writing for {{setup.expiry}} seconds.


6.810 Engineering Interactive Technologies (fall 2021)
Lab 2: Sensing Touch from Inkjet Printed Circuit
In this lab, you will wire up your silver inkjet printed music card to a microcontroller and then write code to sense when the user touches one of the buttons.
Steps:
- Pick-up Hardware Bag
- Install Arduino and ESP Microcontroller Drivers
- Mount Microcontroller Onto Breadboard
- Build Capacitive Touch Sensing Circuit
- Install Arduino Capacitive Sensing Library
- Run Sample Code to Test if Touch Sensing Circuit Works
- Extend Circuit and Code to 3x Touch Sensors
- Threshold Touch Signals: Touched or not Touched?
- Format Serial Output
Deliverables
At the end of the lab, upload to your student google drive:
- a photo of your wired up music card connected to the breadboard and ESP microcontroller
- the Arduino code you wrote for touch sensing and Serial Communication (.ino file format)
- a short video showing your Serial Plotter output (the colored lines) of touching each touch button (.mov or .mp4, no more than 20MB)
Help us Improve Class Materials for Lab2:
Please let us know if you had any trouble with the circuit or programming or if anything was confusing in the write up.
You can add your comments here.
Before you start
Join Slack Channels for 'Lab02' and your table number, e.g. 'Table5': Similar to last lab, please join the lab's slack channel and the channel with the table number you are sitting at.
Create a Slide to Introduce Yourself: Consider taking a break some time during the lab to create your intro slide in this slide deck here.
EECS Safety Acknowledgement Form: If you haven't done it yet, read the EECS electrical safety form and then sign at the bottom. You need to do it before you start wiring up electronics today.
EECS Safety Training on ATLAS: If you haven't done it yet, do the ATLAS EECS safety training. You need to do it before you start wiring up electronics today. To find the training, go to ATLAS, then click 'Home' and in the sidebar 'Full Menu'. In the search bar, type in 'Learning Center' and select it. On the new page, click on 'Course catalog' and search for 'EHS00509w'. Then select the 'Web-based' version.
Let's get started with the lab.
(1) Pick-up Hardware Bag
Ask a TA or LA to give you one of the hardware bags.
(2) Install Arduino IDE and ESP Microcontroller Drivers
Follow the instructions here to install the Arduino IDE, the ESP Core Board Manager, and the USB cable driver. If you already have any of those installed but you installed them more than 3 months ago, we still recommend you reinstall everything to make sure you have the latest version. Once you have the Blink program working, you are ready to go!
(3) Mount Microcontroller Onto Breadboard
Use only two breadboards for the labs: In total, you have four breadboards. However, only two breadboards should be used for the labs and the other two should be reserved for the problem set circuit.
The ESP32 microcontroller is too large to be mounted on a single breadboard while still having access to all pins. Thus, you will put two breadboards next to each other and mount the ESP32 right in the middle between the two (similar to how you did it in 6.08).
Assembling the Breadboards: Let's get started by placing the breadboards side by side. To be able to connect two breadboards together, we need to break off the power lane on one(!) breadboard on one(!) side (*not* both) (see image below).
Connect Both Breadboards: Next, connect the two breadboard using the small pins on their sides.
Mount ESP onto Breadboards: Finally, put your ESP32 right onto the middle between the two breadboards
(4) Build Sensing Circuit on the Breadboard
Capacitive Touch Sensing: We will implement touch sensing based on the principle of capacitive touch sensing. The circuit for capacitive touch sensing requires a sender pin
, which outputs a signal, and a receiver pin
, which listens to the signal. The sender and receiver pin have the touch button connected between them. When a user touches the touch button, the signal that was injected through the sender pin will take longer to discharge due to a capacitive object (finger) nearby. The microcontroller can measure this time difference and thereby detect touch.
Using Larger Resistors to Increase Sensitivity: To delay the discharge from the user's finger and make the time difference measurable on the ESP32, you will add a resistor
between the sender and the receiver pin. A higher resistance enables more sensitive sensing (a 10MOhm resistor enables sensing of a finger up to 10cm distance, while a 10kOhm resistor would not make such a large distance detectable). However, higher resistance comes at the cost of speed because the signal takes longer to discharge. Since we only want to sense touch and do not need to sense hovering of a finger, we will use a 100kOhm resistor
because it offers a good trade-off between sensitivity and sensing speed.
Let's build the circuit and write the code for one touch button
, and then later repeat the procedure for the other touch buttons. To get started, look at the schematic and follow these steps:
Sender Pin: For the sender pin, you can use any GPIO pin on the ESP. For this first touch button, we ask you to use GPIO pin 25
.
Receiver Pin: For the receiver pin, it is best to use a pin that is labeled TOUCH
(see ESP pin out below). These pins are optimized to serve as receivers for capacitive sensing and therefore return cleaner signals, so we will use them for our sensing application. For this first touch button, we ask you to use GPIO pin 14
. *Never* use TOUCH0, it does not work on this particular model of ESP32.
Resistor: We will use a 100k Ohm resistor. Add the resistor to the circuit between your sender and receiver pin for your first touch button as shown in the schematic image above.
Connecting to the Inkjet Printed Touch Button: Finally, connect your printed touch button to the circuit on the breadboard. For this, you will use a crocodile clamp
and a jumper wire
. One side of the crocodile clamp goes onto the connector pad of the touch button, the other side clips into the end of a jumper wire. The jumper wire can then be used to connect to the breadboard. Once you have your first touch button wired up, you are ready to write the code for sensing touch with it.
Protecting the Silver Inkjet Printed Areas: Once you have the crocodile clamps connected, try to not move them around too much. The silver is pretty fragile and the crocodile clamp may scratch off more silver when it is jiggling around. Also when you pack up your card after class today, please be careful when removing your crocodile clamps from the silver areas.
(5) Install Arduino Capacitive Sensing Library
Next, we will write a program that receives the touch sensor signal from your first touch button and plots it on your computer. You can see the sample code that can do this below. To process the touch sensor signal, we will use the Arduino CapacitiveSensor library
. You need to install this library before you can run the code.
We will install this library from Github instead of Aruidno Library Manager, since the ESP32 configuration is not in their official releases yet.
Install from github: First, if you accidentially installed the library already via Aruidno Library Manager, remove the previously installed library. You can delete it on Mac under Macintosh HD/Users/your-username/Documents/Arduino/libraries
and on windows this is under My Documents\Arduino\libraries\
. Once the library is deleted, go to the library's GitHub repository and download the master branch as a .zip file. Re-install the library via the .zip file by going to Sketch -> Include Library -> Add .ZIP Library
. Don't forget to close
the Arduino IDE and reopen
it after install. Then try to compile the starter code one more time and see if it successfully uploads to your microcontroller.
/*******************************************************************************
* Capacitive Sensing for Touch and Proximity
*
* Prints the values of a capacitive sensor.
*
*******************************************************************************/
#include <CapacitiveSensor.h>
double analog_touch;
int sender = 25;
int touch_pin_1 = 14;
int samples_touch = 10;
CapacitiveSensor sensor1 = CapacitiveSensor(sender, touch_pin_1);
void setup()
{
Serial.begin(9600);
}
void loop()
{
// Send value 1
analog_touch = sensor1.capacitiveSensor(samples_touch);
Serial.println(analog_touch);
delay(10);
}
(6) Run Sample Code to Test if Touch Sensing Circuit Works
Now that you uploaded the sample code to your microcontroller, let's use it to test if the touch sensing works.
Use Serial Monitor to Observe Signal Changes During Touch: If you wired up your touch button according to our pin assignment, the code will write the touch signal to the serial monitor
of the Arduino IDE. You can open the serial monitor by clicking on the squared icon
in the upper right corder of your Arduino IDE window (see image below). Once you open the serial monitor, you should see a bunch of numbers fly by. If you touch your touch sensor, the values should change significantly. If your numbers don't change, there may be something wrong with your circuit. Double check your circuit and then ask a TA for help.
(7) Extend Circuit and Code to 3x Touch Sensors
In this lab, we will only build the circuit and write the code for the touch buttons
. We will take care of the slider
later.
Extend Circuit: Since you have three notes that serve as touch buttons, you need to extend your circuit to read those touch signals as well. When building the circuit for your other touch buttons, you can use the same sender pin
for all three touch buttons. Only the receiver pin has to vary
, i.e. you need one receiver pin for each touch signal you want to read. Also each touch sensor needs its own 100k Ohm resistor
. The pin numbers are up to you. Remember to use a TOUCH
pin for receiving.
Extend Code: Next, extend your code to read all 3 of your touch sensors. Plot the results in the format:
touchButtonValue1, touchButtonValue2, touchButtonValue3 \\end of line
You can create a string
from multiple values by concatenating them with a '+' (string1+string2..). Don't forget the ',' character between the touch button values.
Test If Touch Buttons Work: Because of the formatting we used (Serial.print() values separated by commas), we can plot the received values in a nice graph. To do this, open the Serial plotter by clicking on Tools->Serial Plotter
and you should see all three touch button variables plotted at the same time. Touch each touch button to see if the signal changes.  Below you see how we touch the button 1 first, then button 2 and finally button 3. You can increase the number of times the signal is sampled by increasing the value of samples_touch
in your code.
(8) Threshold Touch Signals: Touched or not Touched?
Next, we want to convert the raw signal into touch events, i.e. button touched
or button not touched
. As you saw in the serial plotter, the values for each sensor can vary pretty wildly for the reasons mentioned in lecture. We will do more filtering of signals later in class, but for now we will make a rough estimate in which range our sensor signal falls for each touch button.
Write Code to Determine Touched/NotTouched: Write code in the form of a simple if/else statement to determine if a touch button was touched or not. Look at the serial plotter to determine the range for each touch button. Note that the values may be different for each touch button because of inconsistencies in the print, slightly different sizes for each touch button etc.
Adjust the Loop() speed to Plot Every 200ms: Adjust the loop speed to output if a touch button was touched or not every 200ms
. Remember from 6.08 that using delay()
is not a good way to do this and doing this in a non-blocking
way is much better.
(9) Format Serial Output
In the next lab, we will read the output from the Serial Monitor into a program called Processing.
For this, we want to make sure our output is formatted well. Replace the old Serial.write() statements with the formatting below:
Formatting Output for each Sensor: For each individual touch button, we want to format our output so that:
(sensor ID),(is_touched);
(sensor ID): is either 0, 1 or 2 and corresponds to the ID of the touch button.
(is_touched): is either 0 or 1 (0 if the sensor is not touched, and 1 if it is touched).
A sample output for touching only sensor 0 should look like:
0,1;
1,0;
2,0;
Print Serial Messages only when Button State Changes: So far we have been printing all touch button values to the Serial monitor no matter if the state of the touch button changed or not. As the last step in this lab, you need to print new information only if the sensor state changes,
i.e. a touch button was not touched before but is now being touched, or the touch button was touched but the user just released the finger. Change the code such that it tracks in which state each sensors is currently in. Check for a state change and send the Serial message only once.
Example:
If sensor 0 gets touched, this message is printed once:
0,1;
Then when the user lifts the finger again, this message is printed once:
0,0;
In between these two events, no message should be sent.
Deliverables
At the end of the lab, upload to your student google drive:
- a photo of your wired up music card connected to the breadboard and ESP microcontroller
- the Arduino code you wrote for touch sensing and Serial Communication (.ino file format)
- a short video showing your Serial Plotter output (the colored lines) of touching each touch button (.mov or .mp4, no more than 20MB)
What's next?: If you have time left, we recommend you either (1) create your intro slide here, or (2) create your laser cut business card, or (3) continue with lab 3.
Please let us know if you had any trouble with the circuit or programming or if anything was confusing in the write up.
You can add your comments here.
/*******************************************************************************
* Capacitive Sensing for Touch and Proximity
*
* Prints the values of a capacitive sensor.
*
*******************************************************************************/
#include <CapacitiveSensor.h>
double analog_touch;
int sender = 25;
int touch_pin_1 = 14;
int samples_touch = 10;
CapacitiveSensor sensor1 = CapacitiveSensor(sender, touch_pin_1);
void setup()
{
Serial.begin(9600);
}
void loop()
{
// Send value 1
analog_touch = sensor1.capacitiveSensor(samples_touch);
Serial.println(analog_touch);
delay(10);
}
touch buttons
. We will take care of the slider
later.touchButtonValue1, touchButtonValue2, touchButtonValue3 \\end of line
(sensor ID),(is_touched);
0,1;
1,0;
2,0;
0,1;
0,0;


| OLD line(s): 89,90
<!-- Part V Supplemental Information --> <xsd:element name="Form990ScheduleKPartV" minOccurs="0" maxOccurs="unbounded"> | NEW line(s): 89,91
<!-- Part V Compliance with Federal Tax Requirements --> <!-- Federal Tax Requirements Met?--> <xsd:element name="FedTaxRequirementsCompliance" type="CheckboxType" minOccurs="0"> |
| OLD line(s): 92
<xsd:documentation>Part V contents</xsd:documentation> | NEW line(s): 93,96
<xsd:documentation> <Description>Federal tax requirements met?</Description> <LineNumber>Part V</LineNumber> </xsd:documentation> |
| OLD line(s): 93
| NEW line(s): 98,104
</xsd:element> <!-- Part VI Supplemental Information --> <xsd:element name="Form990ScheduleKPartVI" minOccurs="0" maxOccurs="unbounded"> <xsd:annotation> <xsd:documentation>Part VI contents</xsd:documentation> </xsd:annotation> |
| OLD line(s): 102
<LineNumber>Part V</LineNumber> | NEW line(s): 113
<LineNumber>Part VI</LineNumber> |
| OLD line(s): 112
<LineNumber>Part V</LineNumber> | NEW line(s): 123
<LineNumber>Part VI</LineNumber> |
| OLD line(s): 122
<LineNumber>Part V</LineNumber> | NEW line(s): 133
<LineNumber>Part VI</LineNumber> |
| OLD line(s): 446
| NEW line(s): 458,467
<!-- Bond Counsel Routinely Engaged to Review Management or Service Contracts? --> <xsd:element name="EngageBondCounselContracts" type="BooleanType" minOccurs="0"> <xsd:annotation> <xsd:documentation> <Description>Bond Counsel routinely engaged to review management or service contracts?</Description> <LineNumber>Part III Line 3b</LineNumber> </xsd:documentation> </xsd:annotation> </xsd:element> |
| OLD line(s): 452
<LineNumber>Part III Line 3b</LineNumber> | NEW line(s): 473
<LineNumber>Part III Line 3c</LineNumber> |
| OLD line(s): 457,458
<!-- Bond Counsel Routinely Engaged? --> <xsd:element name="BondCounselRoutinelyEngaged" type="BooleanType" minOccurs="0"> | NEW line(s): 478,479
<!-- Bond Counsel Routinely Engaged to Review Management or Service Contracts? --> <xsd:element name="EngageBondCounselResearch" type="BooleanType" minOccurs="0"> |
| OLD line(s): 461,462
<Description>Bond counsel routinely engaged?</Description> <LineNumber>Part III Line 3c</LineNumber> | NEW line(s): 482,483
<Description>Bond Counsel routinely engaged to review management or service contracts?</Description> <LineNumber>Part III Line 3d</LineNumber> |


[Page 36]
WATERLOT FARM
Monday 8
Out in a snow storm a buggar
I looked like an ice cream
Tuesday 9
On the road to Albert with a running nose
Wednesday 10
Rum is horrible stuff, very cheering and makes you forget
Thursday 11
A midnight march to Waterlot Farm


=$visitor['firstName'], ' ', $visitor['lastName']?>,
We have issued a partial refund for your =$session['title']?> registration.
Guests removed: =$refund['guests']?>
Meals removed: =$refund['meals']?>
Amount refunded: $=$refund['amount']?>
If you have any questions please contact us.


WITNESS LIST Juvenile Justice & Family Issues Committee March 29, 1999-1:30P HB 819 For: Brown, Eugene C. (Family Violence Prevention Services, Inc.) Buchanan, Bree (Texas Council on Family Violence) Earle, Elizabeth (Self) Flink, Paige (Self and The Family Place) Lungwitz, Jeana (Self) Noble, Shannon (Texas Council on Family Violence) Spivey, Marci (Self and Hays-Caldwell Women's Center) On: Green, Jr, Robert L. (Self and Texas Fathers Alliance) Registering, but not testifying: For: Anderson, Jean J. (Highland Lakes Family Crisis Center) Green, Bess (Self) Hoffman, Donna (Self and National Organization for Women in Texas) Margulies, Jennifer (Self) Martinot, Gina (Self) HB 1071 For: Baker, Katherine H. (Self) Against: Green, Jr., Robert L. (Self and Texas Fathers Alliance) HB 1338 For: Davis, Johnnie M. (Self) Fox, Brenda (Self and Johnnie and Tommie Davis) Green, Jr., Robert L. (Self and Texas Fathers Alliance) On: Sampson, John J. (Self) Registering, but not testifying: For: Davis, Tommie (Self) HB 1749 On: Arrigolia, Nancy (Criminal Justice Policy Council) Webster, Sarah (Texas Dept. of Protective and Regulatory Services) HB 2355 On: Childress, Charles G. (Self and Texas Dept. of Protective and Regulatory Services) Harris, Geraldine R. (Texas Dept. of Health/Vital Statistics) HB 2586 Registering, but not testifying: For: Green, Jr., Robert L. (Self and Texas Fathers Alliance) HB 2786 For: Moody, David (Self) Against: Buchanan, Bree (Texas Council on Family Violence) Flink, Paige (Self and The Family Place) Rodriguez - Mendoza, Amalia (County and District Clerks Association) On: Green, Jr., Robert L. (Self and Texas Fathers Alliance) HB 2830 For: Green, Jr., Robert L. (Self and Texas Fathers Alliance) Moody, David (Self) HB 3248 Against: Green, Jr., Robert L. (Self and Texas Fathers Alliance) HB 3270 Registering, but not testifying: On: Alexander, Cindy (Comptroller of Public Accountants) HB 3271 Registering, but not testifying: For: Green, Jr., Robert L. (Self and Texas Fathers Alliance) On: Alexander, Cindy (Comptroller of Public Accounts) Baldwin, Jr., Howard G. (Office of the Attorney General) Person, Leona (Comptroller of Public Accounts) HB 3272 For: Underwood, Olen (Self) On: Baldwin, Jr., Howard G. (Office of the Attorney General) Registering, but not testifying: For: Green, Jr., Robert L. (Self and Texas Fathers Alliance) On: Alexander, Cindy (Comptroller of Public Accounts) Person, Leona (Comptroller of Public Accounts) HB 3517 For: Poe, Mitch (Self and Tarrant County Dist. Attorney's Office) Against: Mitchell, Beth (Advocacy, Inc.) Snyder, Ruth (Parent Association for the Retarded of Texas) On: Childress, Charles G. (Self and Texas Dept. of Protective and Regulatory Services) Dawson, Robert (Self) Robinson, Steve (Texas Youth Commission) Registering, but not testifying: For: Medina, Estela P. (Texas Probation Association) HB 3633 For: Buchanan, Bree (Texas Council on Family Violence) Clay, Curtis (Self and Hays-Caldwell Women's Center) Earle, Elizabeth (Self) Green, Bess (Self and Family Crisis Center) Spivey, Marci (Self and Hays-Caldwell Women's Center) Wok, Amy Wong (Self) Against: Green, Robert L. (Self and Texas Fathers Alliance) Registering, but not testifying: For: Anderson, Jean J. (Highland Lakes Family Crisis Center) Brown, Eugene C. (Family Violence Prevention Services, Inc.) Flakes Nwachie, Judy (Self) Hoffman, Donna (Self and National Organization for Women in Texas) Margulies, Jennifer (Self) Martinot, Gina (Self and Family Crisis Center of Bastrop) On: Kepple, Rob (Texas District and County Attorneys Association) Townsend, Carol (Texas Association Against Sexual Assault) HB 3706 For: Ables, Stephen B. (Self) DuBose, Camile (Self) Specia, John J. (Self) Underwood, Olen (Self) On: Baldwin, Jr., Howard G. (Office of the Attorney General) Registering, but not testifying: For: Castlebury, Carol (Texas Court Reporters Association) Piper, Jane Quentan (Self and Texas Casa) Riester, Eric (Bexar County) HB 3786 Registering, but not testifying: For: Green, Robert L. (Self and Texas Fathers Alliance)


It is build upon candle chart. In default, 6 data lengths (16, 32, 64, 128, 256, 512 bytes) are tested. As the run time tests are performed several times, graphs are also showing minimal and maximal time of execution.
While hovering a cursor above point, a tooltip with run time values is displayed.


{{=[[ ]]=}}
1. Getting the source
2. Convert the _config.yml file using an online converter.
- map "paginate" integer to "page_size"
3. Move files in '_includes' to root directory, add an underscore at the start of their name.
4. Move layouts/default.html to entries.html
5. Move layouts/post.html to entry.html
6. Convert any sass into CSS, merge all CSS into a file 'style.css' in root directory.
7. Find and replace partials syntax:
{% include navigation.html %} --> {{> navigation}}
Regex:
\{\% include (.*)\.html \%\}
{{> $1}}
8. Fix pagination:
```
```
to:
```
{{#pagination}}
{{/pagination}}
```
9. Fix menu links:
```
```


Garage
Input Car
Name of Car
Cost per Night
Are there any faults?
Yes
No
Number Plate
Submit
Currently stored in the Garage
Car Model
Car Bill
Does the Car have faults?
Owner
Input Car
Name of Car
Merc-David
BMW-James
Remove


No users found for selected blood group in selected state at this moment.
{{ result.username }}
{{ result.fullName }}
{{ result.bloodGroup }}
{{ result.state }}
Send message


Chain of Foo
Random text generation using Markov chains.
Input
Options
Length
required
Length is required and must be a number between 1 and 1000.
Depth
required
Depth is required and must be a number between 1 and 5.
Start with capital letter
End last sentence cleanly
Load from file
Load sample
Clear
Generate new text
Output
Click "Generate new text"
Loading…


Thank you for your interest in .docx Librarian.
This web application is designed for screen sizes that are at least 1024px wide. A patch for mobile responsiveness is in the works.
To get the most out of .docx Librarian, you'll want to load a .docx file that uses this app's standard template.
To do that is simple, just start every new entry in the .docx file with:
This will allow the algorithm to accurately search and pull sections of the document based on their content.
In order for the document w/ template to be processed correctly, make sure that LABEL: is bolded with exactly one space between the colon and the first letter of the label. If the label, and any of the subsequent headers are improperly formatted the results will be incorrect and/or incomplete.
Thanks to the docx.js library, selected categories can be saved as their own new docx file which can subsequently be search and trimmed.
The order in which the categories are listed will determine the order they appear on the saved document.
.docx Librarian can also be used on an unformatted .docx file as a simple search tool. The search functionality is bare-bones as of version 1.0.0, but will be built up in subsequent patches.


Portugal police march for better wages
by AFPThousands of Portuguese police officers Thursday marched through Lisbon to demand better pay and conditions in the first major protest since the Socialists were returned to office in elections last month.
Wearing plainclothes, the police demanded "fair wages and decent working conditions," as they upped pressure on the government of Prime Minister Antonio Costa, who last winter faced protests from public sector workers demanding salary hikes after years of austerity-squeezed purchasing power.
The head of the main police union, Paulo Rodrigues, told AFP the government had so far remained deaf to their demands.
"The ministers are the same and nothing important has changed on these issues in the past four years -- this creates instability and hits our teams' efficiency," complained Rodrigues.
"Over the past ten years many bonuses have been withdrawn," complained Ismael Duarte, a 52-year-old police officer from the central town of Tomar who said he was earning around 1,500 euros ($1,750) before tax a month -- a sum which he said had barely risen in 20 years.
"Portugal cannot be one of the world's safest countries and maltreat its forces of law and order in this way. We deserve nore respect," added another officer Antonio Barreira, 45.


Optimal Parking
问题描述 :
When shopping on Long Street, Michael usually parks his car at some random location, and then walks to the stores he needs. Can you help Michael choose a place to park which minimises the distance he needs to walk on his shopping round? Long Street is a straight line, where all positions are integer. You pay for parking in a specific slot, which is an integer position on Long Street. Michael does not want to pay for more than one parking though. He is very strong, and does not mind carrying all the bags around.
输入:
The first line of input gives the number of test cases, 1 ≤ t ≤ 100. There are two lines for each test case. The first gives the number of stores Michael wants to visit, 1 ≤ n ≤ 20, and the second gives their n integer positions on Long Street, 0 ≤ xi ≤ 99.
输出:
Output for each test case a line with the minimal distance Michael must walk given optimal parking.
样例输入:
2 4 24 13 89 37 6 7 30 41 14 39 42
样例输出:
152 70
解题代码:
//* @author<EMAIL_ADDRESS>import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); int a=in.nextInt(); while(a!=0) { int b=in.nextInt(); int[] c=new int[b]; for(int i=0;i< b;i++) { c[i]=in.nextInt(); } int d,e,g; for(d=e=c[0],g=0;g< b;g++) { if(d>c[g])d=c[g]; if(e< c[g])e=c[g]; } System.out.println((e-d)*2); a--; } } }
不考虑最后将结果排序的话，快排的时间复杂度是O(N) ，而堆排的是O(N*logK),这样比较看，快排快
总数为2n，遍历到第n个，就是中间的位置
对，还是这种实现比较好理解。虽然效率有点低
#pragma pack(2) 这个用法太坑爹
写的很好~~
不错，再多来的CF上面的题
很好。代码比书上的简练！
gcc环境
博主您好，这是一个内容十分优秀的博客，而且界面也非常漂亮。但是为什么博客的响应速度这么慢，虽然博客的主机在国外，但是我开启VPN还是经常响应很久，再者打开某些页面经常会出现数据库连接出错的提示
赞一个！权限已更新:）
终于找到一篇能看懂的，mark
第二个方法好！
真考人啊


Dynamic Client Registration
Please fill the form to register with an OpenID Provider to acquire
a Client ID and shared secret.
Registration Endpoint
eg: https://seed.gluu.org/oxauth/seam/resource/restv1/oxauth/register
Redirect URIs (space-separated)
eg: https://seed.gluu.org/oxauth-rp/home.seam
Post Logout Redirect URIs (space-separated)
Response Types
Grant Types
Application Type
Contacts (space-separated)
eg<EMAIL_ADDRESS>Client Name
eg: Test app
Logo URI
eg: http://www.gluu.org/wp-content/uploads/2013/08/logo.png
Client URI
Token Endpoint Auth Method
Policy URI
Terms of Service URI
JSON Web Key Set URI
eg: https://seed.gluu.org/oxauth-client/test/resources/jwks.json
Sector Identifier URI
eg: https://seed.gluu.org/oxauth-client/test/resources/sector_identifier.js
Subject Type
Request Object Signing Alg
User Info Signed Response Alg
User Info Encrypted Response Alg
User Info Encrypted Response Enc
ID Token Signed Response Alg
ID Token Encrypted Response Alg
ID Token Encrypted Response Enc
Default Maximum Authentication Age
Number of seconds
Require Auth Time
Default ACR Values (space-separated)
Initiate Login URI
Request URIs (space-separated)
Registration Request
Registration Response
Please fill the form to read the current configuration of the Client
on the Authorization Server.
Registration Client URI
Registration Access Token
Client Read Request
Client Read Response


This page demonstrates how the date range picker extends the jQuery date picker but still allowing normal usage of it on the same page.


Select the better of the pair by double-clicking or selecting it and then clicking "pick". There are 141 cardbacks, so it might take some time to find your favorite.
Pick Pass Undo Redo


Oops... I can't seem to find it.
Sorry, I've misplaced that URL, or it's pointing to something that doesn't exist.
Head back home to try finding it again.
--- layout: default title: "404: Page not found" permalink: 404.html ---
Sorry, I've misplaced that URL, or it's pointing to something that doesn't exist.
Head back home to try finding it again.


SADLAN 7
Melbourne Australia
Friday 13th December 2013
until
Sunday 15th December 2013
Agenda
FAQ
News
Games
Players
Or visit last years site


28 February 1997
Disease Outbreak Reported
The health authorities have reported that the incidence of meningococcal meningitis has increased slightly since 1994 compared with a steady decline observed since the early 1980s with a peak incidence rate of about 18 cases per 100,000 population. The number of cases reached 963 in 1995 corresponding to 2.45 per 100,000 population and 1,383 cases in 1997 corresponding to 3.52 per 100,000 population. Serogroup B meningococci has predominated in the past but recently the Microbiological Information System and the Reference Laboratory for Meningococci have observed predominantly serogroup C. This change in serogroup was the reason for the vaccination campaigns in Galicia, La Rioja and Cantabria. The Directorate of Public Health has increased the laboratory-based surveillance of meningococcal meningitis and recommends chemotherapy and immunization of contacts of serogroup C confirmed cases.
WHO comment: The situation described in the report by the Spanish health authorities does not imply a need for travellers to Spain to be immunized against meningococcal meningitis.


Election Live: Party leaders grilled by voters on policies
Jeremy Corbyn, Boris Johnson, Jo Swinson and Nicola Sturgeon faced questions from the studio audience in Sheffield.
The leaders of the four largest Westminster parties clashed in another TV set-piece.
The BBC aired a two-hour episode of Question Time in Sheffield, where an audience quizzed Prime Minister Boris Johnson, Labour leader Jeremy Corbyn, Liberal Democrat leader Jo Swinson and Scottish First Minister Nicola Sturgeon for 30 minutes each.
9.02pm
The Prime Minister tweeted promptly after the programme, to repeat his familiar message of getting Brexit done and unleashing Britain’s potential.
9.00pm
Bruce wasted little time after the Prime Minister left the stage in bringing down the curtain on the programme.
The Prime Minister said that a sound economy was necessary if public services were to be maintained and alleged Labour governments produced what he termed an “economic shambles”.
Persistently questioned on investment in the NHS, he defended the investment in the service and said getting Brexit done was key to this, saying it was “hanging over us” and again deriding politicians for trying to frustrate the 2016 referendum decision.
He hailed his great deal ready with the EU in his final remarks, departing to some cheers from the audience.
8.50pm
Mr Johnson said the party had a strong record on tackling Islamophobia and pointed out the Conservatives had produced two women prime ministers.
He said the Conservatives were trying to encourage women into the workforce.
He was told that morale was low in the health service and and replied, saying the party was trying to address doctors’ problems.
8.45pm
Asked about some of his articles and whether they were offensive or racist, Mr Johnson said he had not sought to offend anyone.
Mr Johnson said: “I have written many millions of words in my life as a journalist and I have… genuinely never intended to cause hurt or pain to anybody and that is my intention.
“What I will say because I think you are referring to a particular article of a year or so ago…”
Bruce stepped in to say: “To be fair, there’s a few articles. So there’s the Muslims going around looking like letterboxes, which was last year, you referred to tribal warriors with watermelon smiles and flag-waving pickaninnies and then just to get another demographic in, tank-topped bum boys.”
The audience scoffed after Mr Johnson said: “If you go through all my articles with a fine-tooth comb and take out individual phrases there is no doubt that you can find things that can be made to seem offensive and of course I understand that.”
The Green Party’s Caroline Lucas tweeted to say Mr Johnson’s remarks had fuelled hate crimes and deriding his failure to apologise.
The Question Time audience was made up of around 150 people which, the BBC said, was a roughly equal split between Conservative and Labour supporters with a smaller number for the Liberal Democrats and SNP.
It added that there was a slim majority for people who voted Leave over Remain, except for some who were too young to vote at the last election.
8.40pm
The Prime Minister compared his record on home building favourably to Labour’s and also fielded a question from a single mother about support.
Asked about releasing a report on alleged Russian influence in UK politics, he said he saw no reason to interfere with the normal timetable of releasing such a document.
He derided “Bermuda triangle” conspiracies.
The audience had laughed and groaned when the Prime Minister said MPs were “given every opportunity” to pass his Brexit Bill.
Responding to a question about scrutiny, Mr Johnson said: “On your point about the reasons for having an election, let’s be in no doubt, I didn’t want to have an election. No prime minister wants to have an election on December 12. We had to do it because Parliament is blocking Brexit.”
The audience erupted into groans when Mr Johnson said: “They were given every opportunity to pass it … every opportunity to pass and they passed a law to insist that extended it beyond October 31.”
8.35pm
Mr Johnson said he wanted 2020 to be a big year for the country, repeating his mantra of getting Brexit done and highlighting Tory policies.
He criticised suggestions of second referendums both on Brexit and a possible second Scottish independence vote.
The Prime Minister said he had visited hospitals and schools and said the Conservatives were putting more money into primary and secondary institutions.
He praised his record when her served as mayor of London, highlighting his stance on the living wage.
Chancellor Sajid Javid tweeted his approval, saying: “PM showing we are the workers party: “We have already cut income tax for over 30 million working people. Now a
@Conservatives majority government will go further by cutting National Insurance too.” #BBCQT”
8.30pm
She hailed Lib Dem policies including including on same-sex marriage and then departed.
Home Secretary Priti Patel was among those to criticise Ms Swinson’s stance with a tweet saying only Mr Johnson could deliver Brexit.
Then Mr Johnson took her place on stage, becoming the last of the four leaders to get the opportunity to state his case.
He said: “And I think that the issue of trust in politics is central to this election.
“And fundamental to the corrosion of trust in politics at the moment is the failure of politicians to deliver Brexit.”
Bruce asked Mr Johnson why he thought he was being asked about telling the truth.
8.25pm
Ms Swinson reiterated her opposition to fracking but faced further claims from an audience member that the Lib Dems were a right-wing party, replying that her party was liberal and internationalist but not socialist.
She said sometimes the Lib Dems agreed with Labour but they were a separate party.
She said the weapons could be a bargaining chip in negotiations but said she did not want to scrap the weapons.
8.20pm
Ms Swinson said schools needed more funding.
Asked if the party was dividing the Remain vote, she said Mr Johnson would offer a horror Brexit deal if returned to power while Mr Corbyn was also offering a deal but said someone had to offer a Remain option.
She urged voters to prevent Mr Johnson from winning a majority and said the Lib Dems were best placed to stop the Tories in some parts of the country.
One audience member accused Ms Swinson of having a “brass neck” for criticising Mr Corbyn over perceived anti-Semitism in the party but said she trusted the experience of the likes of Luciana Berger, the former Labour MP who is now a Lib Dem.
8.15pm
Pointing out the UK was still in the EU she said the party had already stopped Brexit twice, in March and October.
Ms Swinson said there was no easy answer and acknowledged the divisions on the issue, saying she did not think there was a quick fix.
She said the economy was not working well for people and said leaving the EU would make matters worse and that people would be poorer with less money for the NHS.
On student debt, she said she would not promise to abolish tuition fees, questioning whether it could be delivered and if the sums added up.
8.10pm
Ms Swinson ruled out any new coalition with Tories, citing Brexit Party leader Nigel Farage and former EDL activist Tommy Robinson’s support for Brexit as reasons not to consider such a pact.
On the issue of trust, she admitted the party had broken faith in the coalition years with its policy on tuition fees.
Ms Swinson said: “We are being very straightforward as a party that we want to stop Brexit. You might agree with us, you might disagree with us.
“I don’t think you can accuse us of not being upfront about wanting to stop Brexit. We’ve been crystal clear about that from the very beginning.
 I think it means we disagree.”
8.05pm
Ms Swinson said that the world was unpredictable saying that Donald Trump’s 2016 presidential election win and Mr Corbyn’s accession to the Labour leadership were not predictable events.
She was then grilled for what an audience member suggested was Lib Dem support for Conservative austerity policies during the coalition government years.
She said the party had learned lessons from its spell in power with the Tories, acknowledging the party had “got stuff wrong”.
Responding to an audience question, Ms Swinson said: “We also had plenty of fights with the Conservatives and we won some of those fights and we lost some of those fights and I am sorry that we did not win more of those fights in coalition.”
Asked about Brexit and Ms Swinson’s party Remainer stance, Ms Swinson said the party was being up front about wanting to stay in the EU.
8.00pm
Pursued on Scotland’s oil reserves, Ms Sturgeon hailed the country’s move towards greener energy sources but said a managed transition was already under way.
She said she would power on with such a transition.
The SNP’s Westminster leader Ian Blackford praised Ms Sturgeon’s performance with a tweet.
Ms Sturgeon then left the stage to be replaced at the podium by Ms Swinson who was immediately asked by an audience member if it was ridiculous that she had suggested she might be prime minister, saying she did not regret the remark saying voters did not have to choose between Mr Johnson and Mr Corbyn.
She said: “There is still three weeks left in this campaign, and all I would say to anybody that thinks that you can predict the outcome of the election in the middle of the campaign – ask Theresa May how that worked out last time around.”
7.55pm
Ms Sturgeon was quizzed about drugs policy including from an audience member who had experienced their own difficulties.
Asked what she would do in a coalition government, she said she did not envisage such a deal but acknowledged a less formal arrangement could be reached.
She said SNP MPs would not dictate devolved policies such as health to England but said matters that affected the whole NHS including a trade deal would have to be addressed by all parts of the UK.
She added however: “Often the decisions that are taken at Westminster on the health service, for example, have implications for our budget.
“One of the big issues in the next parliament, potentially, for the health service, is trade deals.
“We all have to come together, those of us who don’t want our NHS sold off, to make sure that doesn’t happen.
“We will seek to exercise influence, of course in Scotland’s interests, but where it is appropriate, in the interests of people right across the UK.”
7.50pm
Ms Sturgeon, asked if the 2014 Scottish independence vote had been once in a generation, pointed out to an audience member that the UK’s decision to leave the European Union had changed the circumstances.
Asked about plans to “break up” the UK, Ms Sturgeon criticised investment policies in Scotland and said her grandmother was from the north of England.
She said she wanted Scotland to govern itself but underlined its historic and close ties with its neighbours.
7.45pm
Ms Sturgeon was asked by an audience member to set out what she would do and said she first wanted Scotland’s voters to send a message at the election about what they wanted doing.
She was also asked whether the European Union would admit an independent Scotland to the bloc but Ms Sturgeon rejected suggestions that Scotland would not be allowed to do join.
She said Spain, which has faced a secession bid from Catalonia, would support the process if it was constitutional and said Brexit had changed attitudes in the EU to Scottish independence.
7.40pm
Ms Sturgeon said that her party had shown the way with progressive policies and said she wanted the whole of the UK to stay in the European Union.
She said Scotland, which voted strongly to Remain, had been treated with contempt in Westminster and she reiterated that she considered Brexit to be a mistake.
She accused Brexiteers of messing things up.
7.35pm
Ms Sturgeon wasted no time in saying that a second independence referendum would be high on her wishlist but that she would also be seeking guarantees on policies to end austerity.
She suggested Mr Corbyn might be more willing to negotiate after the election rather than before it.
Ms Sturgeon said that in return for her party’s support any Labour government would need to respect the right of the Scottish people to “choose their own future”.
Ms Sturgeon doubted Mr Corbyn’s current stance on not sanctioning another independence referendum in the early years of a Labour government.
She said: “Do you think he’s going to walk away from the chance to end austerity, to protect the NHS, stop Universal Credit, simply because he wants for a couple of years to prevent Scotland having the right to self-determination?
“I’m not sure he’s going to compromise the chance to have a Labour government for that issue.”
7.30pm
As Mr Corbyn’s segment came to an end, he said he was seeking an outright win for Labour and not contemplating a deal with other parties.
Closing the Corbyn segment of the debate, Bruce asked: “And just to be clear, in a yes or no answer, you are telling us tonight that you will… remain neutral on the issue of whether or not we should remain within the EU?”
Mr Corbyn replied: “Yes,” adding: “First heard here on Question Time.”
Mr Johnson’s girlfriend Carrie Symonds joined in the mockery of Mr Corbyn with her own tweet.
Labour’s Ian Lavery praised his leader’s performance.
Leaving the stage, Mr Corbyn was replaced on stage by Ms Sturgeon.
Brexit Party leader Nigel Farage was another not to be impressed by Mr Corbyn’s performance, scorning his stance of neutrality.
7.25pm
Mr Corbyn said his party’s tax policy would not affect 95% of the population, but would be targeted.
Asked whether Scotland’s people would be allowed another vote on their future, Mr Corbyn said he did not see a new independence referendum as a priority but vowed to invest in the country. Further questioned by Bruce, he said it would not be allowed in the first part of a Labour-led government.
7.20pm
On climate change, Mr Corbyn said his party’s green policies would create jobs, citing a tidal lagoon project in Swansea.
He said the party would invest in transport and social infrastructure for the whole country.
7.15pm
Asked to say if he would campaign for Remain or Leave in any referendum on Brexit, Mr Corbyn faced jeers when he said he would adopt a neutral stance and carry out the instruction of the people.
He said his policy would bring the country back together again after another audience member said the country had already made its decision.
Mr Corbyn said he would adopt a “neutral stance” if he were prime minister during a second referendum.
An audience member asked: “Will you campaign to remain or leave the EU if elected. Why would anyone vote Labour without knowing the answer to that question?”
Mr Corbyn replied: “One, we will negotiate a credible Leave deal with the European Union,” at which point the audience started laughing.
He continued: “I’m trying to answer the gentleman’s question. Secondly, we will put that alongside Remain in a referendum.
“My role and the role of our government will be to ensure that that referendum is held in a fair atmosphere and we will abide by the result of it.
“And I will adopt, as prime minister, if I am at the time, a neutral stance so that I can credibly carry out the results of that to bring communities and country together rather than continuing an endless debate about the EU and Brexit.”
Another audience member praised Mr Corbyn’s stance, comparing it with the policy of former Labour PM Harold Wilson.
Conservative Foreign Secretary Dominic Raab quickly mocked Mr Corbyn’s position with a tweet.
7.10pm
Asked about the treatment by some party members of a then Labour MP Ruth Smeeth and anti-Semitism, Mr Corbyn defended the party’s record on freedom of speech and said the party had acted on cases of racist abuse.
Responding to an audience member who said that “freedom would be completely eroded” if Mr Corbyn got the keys to Number 10, the Labour leader said: “I absolutely defend the right of free speech.
“Freedoms and rights in a democracy are very, very important.
“I have spent my life getting into hot water for defending people because I believed their human rights should not be violated and that’s the kind of government that I intend to lead.”
A member of the audience asked: “I look at a video of Ruth Smeeth online where she was in a press conference with you and Ruth Smeeth, a Jewish MP, was heckled out of that press conference… and there you are at the end of the press conference chatting happily to that same heckler. I don’t buy this nice old grandpa, I see that video and that tells me all I need to know.”
Responding, Mr Corbyn said: “Nobody should suffer any abuse in public life or privately,” adding: “Many women Labour MPs, Ruth Smeeth included and others have suffered the most unbelievable levels of abuse.
“And it was a Labour MP Jo Cox who was murdered because she stood up in public life. I simply say to you that bad behaviour, misogynism, racism in any form is absolutely not acceptable in any form whatsoever in my party or in society.”
7.05pm
Mr Corbyn was quick to defend policies described by one audience member as socialist and vowed to take back into public ownership railways and water companies and highlighted plans for a national broadband service.
He said businesses should have nothing to fear from a government led by him.
Mr Corbyn was asked if “businesses should be frightened of an incoming Labour government”.
He replied: “No, they should not be frightened of an incoming Labour government because our country’s economy relies on many small and medium-sized enterprises that are the motor of our economy.”
He added: “The biggest businesses will be asked to pay a little bit more in corporation tax but it will be lower than it was in 2010 and indeed lower the average of most industrial countries.”
7.00pm
Fiona Bruce, standing at the podium, introduced the programme in front of the TV audience with Mr Corbyn becoming the first leader to take his seat before making opening remarks.
6.50pm
Mr Corbyn struck a determined tone as he arrived at the venue.
6.45pm
Labour candidate for Hemsworth Jon Trickett posted footage of Jeremy Corbyn supporters gathered outside the Octagon in Sheffield ahead of the programme.
6.30pm
Prime Minister Boris Johnson said he was “excited” ahead of the event, while Lib Dem leader Jo Swinson was pulling no punches.
Meanwhile, Scottish First Minister Nicola Sturgeon did her homework on the way.