Federal student loans are loans made or guaranteed by the Department of Education. They typically have names like Direct Loan, Stafford, PLUS or Perkins. They are the most common type of student loan.
Private or non-federal student loans are any other type of student loans. They can be made by a bank, a credit union, a state student loan agency or a college or university. They may have names like “alternative” or “institutional” loans.
Many student loan borrowers have both private and federal student loans. Because repayment options for each type of loan are different, start by selecting the loan type that you are most concerned about. You can always return to the beginning of the tool and select the other loan type here in step one.
In order to use this tool, it will be helpful to have a list of your loans and required monthly payment amounts. If you don’t have this information, don’t worry.
You can get a list of all federal loans made to you by visiting the National Student Loan Data System and selecting “Financial Aid Review.” Click each individual loan to see who the servicer is for that loan (this is also the company that sends you a bill each month).
To learn more about your private student loans, take a look at your credit report or contact your school’s financial aid office.
Have you missed one or more payments on your student loans?
Missing payments on your federal or private student loans can hurt your credit rating and your financial future.
Missing a payment on a student loan can result in late fees, additional interest charges, and can increase the cost of repayment over the lifetime of your loan.
Are you currently in default?
If you have gone more than 9 months (270 days) without making a payment on your federal student loans, you may be in default.
Many private student loans go into default as soon as you are 120 days late. In some cases, a borrower may default by missing just one or two payments. You can also default on a private student loan if you declare bankruptcy or default on another loan. Review your private loan contracts carefully to better understand what rights you have if you are worried about going into default.
Are you able to make any payments on your defaulted federal loan?
Do you need to go back to school in the fall?
When you default on a federal student loan, you lose eligibility to receive additional federal student aid. For many students, this makes going back to school impossible.
Do you need to get credit (for example, get a credit card, take out a mortgage, or qualify for a car loan)?

Are you confident you can make the full payment?
When you consider your current income, loan payments, other debt and living expenses, are you confident that you can make your full monthly student loan payments?
Are you an active duty servicemember?
You're well on your way as long as you keep up with your loan payments.
Remember, you might also have other options. The best way to learn about all of them is to contact your servicer.
Consolidation may be a good option if you're looking to simplify your repayment process. A Federal Direct Consolidation Loan can replace multiple federal student loans with one new loan featuring a single monthly payment. However, it won't lower your interest rate or your monthly payments.
WARNING FOR SERVICEMEMBERS: Taking out a new Federal Direct Consolidation Loan will impact your eligibility for an interest rate reduction under the Servicemembers Civil Relief Act.
To get started on consolidation, contact the Department of Education (1-800-557-7392) to find out if consolidation is right for you. To begin the application process, check out the consolidation website. You can also use the Department's calculator to determine your payments if you choose to extend your loan term and lower monthly payments.
If you are currently serving on active-duty you are eligible to have the interest rate lowered to 6% on all student loans taken out prior to your military service. This benefit applies to both your federal and private (non-federal) student loans and is available for all active-duty servicemembers, regardless of where you serve. Most borrowers on active-duty will qualify for this benefit, so it makes sense to start here.
To obtain an interest rate reduction under the Servicemembers Civil Relief Act (SCRA), contact your servicer and ask about this option directly. You will be required to provide your servicer with proof of your active-duty status in the form of orders from your commanding officer.
Learn more about the Servicemembers Civil Relief Act and other benefits for servicemembers with student loans from the U.S. Department of Education.
You may also be eligible for other benefits available to servicemembers, such as military deferment and Income-Based Repayment.
This is one of the best options to stay on the road to repayment for federal student loan borrowers. Income-driven repayment plans ties your payment to your income and family size. (The chart below gives you an idea of your approximate payment.)
For borrowers who will make a career out of military service, Income-driven repayment plans provide another major benefit— you may be eligible for loan forgiveness after 10 years of reduced monthly payments. If you think you will spend a decade or more in the military, it is important to enter into an income-driven repayment plan as soon as possible; each qualifying monthly payment gets you closer to Public Service Loan Forgiveness (PSLF).
If you leave the military but plan to pursue another qualifying public service profession, like teaching or serving in government, you may still be eligible for PSLF.
Get started by enrolling online at StudentLoans.gov. Once you sign in, select “Income-Driven Repayment Plan Request.” These plans are always available for free to federal student loan borrowers with eligible loans.
You can also contact your servicer (the company that sends you a bill each month) about enrolling. They will likely ask for proof of your income, such as a tax return or pay stub, to determine your payment.
If you have an older federal loan made by a private lender, you may need to consolidate your loans in order to enroll in the income-driven repayment plan with the lowest monthly payment. Learn more about how this works here.
For federal loans, consider IBR before options that postpone payment like forbearance or deferment. While completely postponing payment is an attractive option, if you enroll in IBR you can keep your payments low and, if you continue to make payments and continue your service for 10 years, your loan will be forgiven.
Use this chart to see what your approximate monthly payment would be given your income and family size under the income-driven repayment plans with the lowest monthly payment. Check out the Department of Education's repayment estimator for precise amounts and more information.
| Annual income | Family size | ||||||
|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| $10,000 | $0 | $0 | $0 | $0 | $0 | $0 | $0 |
| $15,000 | $0 | $0 | $0 | $0 | $0 | $0 | $0 |
| $20,000 | $20 | $0 | $0 | $0 | $0 | $0 | $0 |
| $25,000 | $61 | $9 | $0 | $0 | $0 | $0 | $0 |
| $30,000 | $103 | $51 | $0 | $0 | $0 | $0 | $0 |
| $35,000 | $145 | $93 | $41 | $0 | $0 | $0 | $0 |
| $40,000 | $186 | $134 | $82 | $30 | $0 | $0 | $0 |
| $45,000 | $228 | $176 | $124 | $72 | $20 | $0 | $0 |
| $50,000 | $270 | $218 | $166 | $114 | $62 | $10 | $0 |
| $55,000 | $311 | $259 | $207 | $155 | $103 | $51 | $0 |
| $60,000 | $353 | $301 | $249 | $197 | $145 | $93 | $41 |
| $65,000 | $395 | $343 | $291 | $239 | $187 | $135 | $83 |
| $70,000 | $436 | $384 | $332 | $280 | $228 | $176 | $124 |
You are eligible to have federal loans deferred for a certain period of time if you are an active-duty member of the military serving in a military operation or national emergency.
Learn more about deferment for students, servicemembers, and other special situations from the Department of Education.
Remember, military deferment doesn't make your loans go away—and can mean that you will owe a lot more once you reenter repayment.
To get a deferment, contact your servicer and ask about this option directly. Once you're in deferment, you can still make a payment if you get some extra cash.
Remember, you might also have other options. The best way to learn about all of them is to contact your servicer.
Most borrowers with federal student loans can choose to set their monthly payment based on how much money they make. Income-driven payment plans provide the security of knowing that you can afford your payments.
If you are a recent grad, Pay As You Earn (PAYE) is a newer repayment plan that is likely available for your federal student loans. The plan caps your monthly federal student loan payment at 10 percent of your discretionary income. If you think you might be eligible, learn more about who qualifies for PAYE here.
 You can get a lower payment if your federal student loan debt is high compared to your income and family size. You can learn more here about who is eligible and the differences between these plans.
Get started by enrolling online at StudentLoans.gov. Once you sign in, select “Income-Driven Repayment Plan Request.” These plans are always available for free to federal student loan borrowers with eligible loans.
You can also contact your servicer (the company that sends you a bill each month) about enrolling. They will likely ask for proof of your income, such as a tax return or pay stub, to determine your payment.
If you have an older federal loan made by a private lender, you may need to consolidate your loans in order to enroll in the income-driven repayment plan with the lowest monthly payment. Learn more about how this works here.
Use this chart to see what an approximate monthly payment would be given your income and family size for PAYE/REPAYE, the income-driven repayment plans with the lowest monthly payments.
| Annual income | Family size | ||||||
|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
| $10,000 | $0 | $0 | $0 | $0 | $0 | $0 | $0 |
| $15,000 | $0 | $0 | $0 | $0 | $0 | $0 | $0 |
| $20,000 | $20 | $0 | $0 | $0 | $0 | $0 | $0 |
| $25,000 | $61 | $9 | $0 | $0 | $0 | $0 | $0 |
| $30,000 | $103 | $51 | $28 | $0 | $0 | $0 | $0 |
| $35,000 | $145 | $93 | $41 | $0 | $0 | $0 | $0 |
| $40,000 | $186 | $134 | $82 | $30 | $0 | $0 | $0 |
| $45,000 | $228 | $176 | $124 | $72 | $20 | $0 | $0 |
| $50,000 | $270 | $218 | $166 | $114 | $62 | $10 | $0 |
| $55,000 | $311 | $259 | $207 | $155 | $103 | $51 | $0 |
| $60,000 | $353 | $301 | $249 | $197 | $145 | $93 | $41 |
| $65,000 | $395 | $343 | $291 | $239 | $187 | $135 | $83 |
| $70,000 | $436 | $384 | $332 | $280 | $228 | $176 | $124 |
If you enroll in one of these options:
You never have to pay someone an up-front or monthly fee to enroll in these plans. Student loan debt relief scams can cost you thousands of dollars and drive you further into debt.
If you're not eligible for these plans, or if your payment is already lower than the chart says it would be, you may be able to find a different plan that reduces your payment.
If you are currently in default on a federal student loan and plan to go back to school, you may benefit from a direct consolidation loan. If you cannot afford to pay off your loan in full, this is the fastest way to get out of default and restore your eligibility for federal student aid.
Through consolidation, your defaulted loans are paid off by a new loan with new repayment terms. If you do not make any payments on your defaulted loan(s) prior to consolidating them, you will be required to sign-up immediately for one of the alternative payment plans available to all federal student loan borrowers.
Ask your debt collector for specific information about fees. The costs associated with bringing your loan out of default may vary substantially depending on your individual circumstances.
Before you consolidate, make sure you understand the terms of this new payment arrangement and the terms of your new loan. If you default again, your only option to get out of default is to agree to a repayment plan with your debt collector.
Loan rehabilitation may be a better option for some borrowers; however, rehabilitation can take up to 10 months to complete. Like consolidation, loan rehabilitation restores your federal student aid eligibility but will also remove the default notation from your credit history. And in some cases, it can be cheaper than consolidation.
Under most circumstances, you have the right to pursue these options. Request information on both of these options from your debt collector or you may apply for a new direct consolidation loan with the U.S. Department of Education.
Contact your servicer or debt collection agency immediately to learn more about your options and to make arrangements to bring your loan out of default. If a debt collector refuses to offer you an option for which you believe you qualify, ask to speak with the debt collector's Special Assistance Unit. If your issue has not been resolved through the servicer's Special Assistance Unit, you may wish to review your options through the Federal Student Aid Ombudsman Group at the U.S. Department of Education.
When speaking with your servicer or a debt collector, be sure that you have written documentation about what federal student debt you owe. If you are concerned that you never borrowed certain loans, check the National Student Loan Data System. If the loan does not appear there, contact the collector and inform the collector of the problem. Remember, that system shows only your federal student loans, not your private student loans.
If you are currently in default on a federal student loan and you are interested in pursuing an option that offers the lowest monthly payment or the greatest benefit to your credit, you may benefit from rehabilitation.
If a debt collector refuses to offer you an option for which you believe you qualify, submit a complaint online or by calling<PHONE_NUMBER>.
Rehabilitation won't repair your credit completely—your previous missed payments may still show up on your credit report—but any default notation will be removed. Your servicer or debt collector may ask you to provide documentation to demonstrate that you need a lower payment than they are suggesting. When negotiating with your debt collector, the law requires your collector to determine your payment amount based on your income; however, once you agree to a payment plan, you are required to make your monthly payment in order to rehabilitate your defaulted loan.
Contact your servicer or debt collector immediately to learn more about your options and to make arrangements to bring your loan out of default.
Ask the debt collector for specific information about fees. The costs associated with bringing your loan out of default may vary substantially depending on your individual circumstances.
When speaking with your servicer or a debt collector, be sure that you have written documentation about what federal student debt you owe. If you are concerned that you never borrowed certain loans, check the National Student Loan Data System. If the loan does not appear there, contact the collector and inform the collector of the problem. Remember, that system shows only your federal student loans, not your private student loans.
Contact your debt collector to learn more about your options and to determine your pay-off balance. For some borrowers, this can be the cheapest way to bring a federal student loan out of default.
Your defaulted debt will be gone afterward, but it will continue to appear on your credit report as a defaulted loan that was repaid. By repaying your defaulted federal loan, you will restore your eligibility for federal student aid, if you chose to go back to school.
Ask the debt collector for specific information about fees. The costs associated with bringing your loan out of default may vary substantially depending on your individual circumstances.
If a debt collector refuses to offer you an option for which you believe you qualify, ask to speak with the debt collector's Special Assistance Unit. If your issue has not been resolved through the servicer's Special Assistance Unit, you may wish to review your options through the Federal Student Aid Ombudsman Group at the U.S. Department of Education.
When speaking with your servicer or a debt collector, be sure that you have written documentation about what federal student debt you owe. If you are concerned that you never borrowed certain loans, check the National Student Loan Data System. If the loan does not appear there, contact the collector and inform the collector of the problem. Remember, that system shows only your federal student loans, not your private student loans.
Generally speaking, you have three options when dealing with the collector on a federal student loan:
Contact your servicer or debt collector immediately to learn more about your options and to make arrangements to bring your loan out of default.
Ask the debt collector for specific information about fees. The costs associated with bringing your loan out of default may vary substantially depending on your individual circumstances.
If a debt collector refuses to offer you an option for which you believe you qualify, ask to speak with the debt collector's Special Assistance Unit. If your issue has not been resolved through the servicer's Special Assistance Unit, you may wish to review your options through the Federal Student Aid Ombudsman Group at the U.S. Department of Education.
When speaking with your servicer or a debt collector, be sure that you have written documentation about what federal student debt you owe. If you are concerned that you never borrowed certain loans, check the National Student Loan Data System. If the loan does not appear there, contact the collector and inform the collector of the problem. Remember, that system shows only your federal student loans, not your private student loans.
If you are currently in default on a federal student loan and cannot afford to make any payments toward your loan, you may benefit from a direct consolidation loan. If you cannot afford to pay off your loan in full, this is the fastest way to get out of default.
Under most circumstances, you have the right to pursue this option. You can either request a consolidation application from your debt collector or you may apply for a new direct consolidation loan with the U.S. Department of Education.
Remember to ask your debt collector for specific information about fees. The costs associated with bringing your loan out of default may vary substantially depending on your individual circumstance.
Through consolidation, your defaulted loans are paid off by a new loan with new repayment terms. If you do not make any payments on your defaulted loan(s) prior to consolidating them, you will be required to immediately sign-up for one of the alternative payment plans available to all federal student loan borrowers. You will also restore your eligibility for federal student aid, if you choose to go back to school. Before you consolidate, make sure you understand the terms of this new payment arrangement and the terms of your new loan. If you default again, your only option to get out of default is to agree to a repayment plan with your debt collector.
Loan rehabilitation may be a better option for some borrowers; however, rehabilitation can take up to 10 months to complete. Like consolidation, loan rehabilitation restores your federal student aid eligibility but will also remove the default notation from your credit history. And in some cases, it can be cheaper than consolidation.
Contact your servicer or debt collection agency immediately to learn more about your options and to make arrangements to bring your loan out of default.
If a debt collector refuses to offer you an option for which you believe you qualify, ask to speak with the debt collector's Special Assistance Unit. If your issue has not been resolved through the servicer's Special Assistance Unit, you may wish to review your options through the Federal Student Aid Ombudsman Group at the U.S. Department of Education.
When speaking with your servicer or a debt collector, be sure that you have written documentation about what federal student debt you owe. If you are concerned that you never borrowed certain loans, check the National Student Loan Data System. If the loan does not appear there, contact the collector and inform the collector of the problem. Remember, that system shows only your federal student loans, not your private student loans.
You’re well on your way as long as you keep up with your loan payments. Here's some helpful advice to keep you on track:
If you enroll in auto-debit, your servicer (the company that sends you a bill each month) will automatically withdraw money from your bank account so you’re less likely to miss a payment. Many servicers and lenders offer an interest rate reduction for those who set up auto-debit, which could save you hundreds or thousands of dollars over the life of the loan!
If your budget allows for it and you have already set aside some funds for emergencies, then you could consider making a payment for more than what is required. You’ll pay off your loan faster and pay less interest.
You can copy and paste this text.
I am writing to provide you instructions on how to apply payments when I send an amount greater than the minimum amount due. Please apply payments as follows:
After applying the minimum amount due for each loan, any additional amount should be applied to the loan that is accruing the highest interest rate.
If there are multiple loans with the same interest rate, please apply the additional amount to the loan with the lowest outstanding principal balance.
If any additional amount above the minimum amount due ends up paying off an individual loan, please then apply any remaining part of my payment to the loan with the next highest interest rate.
It is possible that I may find an option to refinance my loans to a lower rate with another lender. If this lender or any third party makes payments to my account on my behalf, you should use the instructions outlined above.
Retain these instructions. Please apply these instructions to all future overpayments. Please confirm that these payments will be processed as specified or please provide an explanation as to why you are unable to follow these instructions.
Thank you for your cooperation.
Borrowers repaying their private student loans may have much better credit than they did when they first borrowed for college. Unlike federal student loans, you may be able to consolidate (or refinance) your private student loans at a lower interest rate.
Although consolidation and refinance opportunities for private student loans have declined since 2008, a growing number of commercial lenders offer private student loan consolidation or refinance for creditworthy borrowers.
Contact your servicer to ask about these options. You may also want to check with your bank or credit union to see if they offer similar products.
 Releasing your co-signer can protect you from surprise defaults, even if you’ve been making your payment on time. Many lenders advertise that a co-signer may be released from a private student loan after a certain number of consecutive, timely payments and a credit check to determine if you are eligible to repay the loan on your own.
You can copy and paste this text.
I am writing to you because I am seeking the release of my co-signer on my loan. Please conduct a review of my account to determine if I am eligible for co-signer release.
If you determine that I am not eligible to have my co-signer released from my l oans, please provide an explanation, including the following:
What is your current co-signer release policy?
For what reason(s) am I ineligible for co-signer release?
If I am not eligible for co-signer release now, when will I become eligible?
What steps do I need to take to qualify for co-signer release?
Do you anticipate modifying these requirements in the future? Will any future modifications apply to me when I seek to release my co-signer?
If I am unable to exercise this option at this time, please update/annotate my account to reflect that I intend to seek co-signer release as soon as possible. Please contact me at the point-in-time at which I am eligible to have my co-signer released.
In addition, if you are unable to provide any of the information or documentation I have requested or otherwise cannot comply with this request, please provide an explanation.
Thank you for your cooperation.
Remember, if you’re having a problem with a student loan, you can submit a complaint online or call us at<PHONE_NUMBER>.
If you are currently serving on active duty, you are eligible to have the interest rate lowered to 6% on all student loans taken out prior to your military service. This benefit applies to both your federal and private (non-federal) student loans and is available for all active-duty servicemembers, regardless of where you serve. Most borrowers on active duty will qualify for this benefit, so it makes sense to start here.
To obtain an interest rate reduction under the Servicemembers Civil Relief Act (SCRA), contact your servicer and ask about this option directly. You will be required to provide your servicer with proof of your active duty status in the form of orders from your commanding officer.
Learn more about the Servicemembers Civil Relief Act and other benefits for servicemembers with student loans from the U.S. Department of Education.
You may also be eligible for other benefits available to servicemembers, such as military deferment and Income-Based Repayment (IBR) for federal student loans.
Some private student loan servicers offer deferment or forbearance for servicemembers on active duty. This may provide temporary relief, but it does not eliminate your obligation to repay your loans.
Unlike some federal student loans, for most private student loans, interest will still accrue during periods of deferment and forbearance. If you do work with your servicer to temporarily suspend your monthly payments, your total debt will continue to grow and your monthly payments may be much higher when you begin to repay.
To get a military deferment or forbearance, contact your servicer and ask about this option directly. Once you're in deferment, you can still make a payment if you get some extra cash. If you can afford it, making interest-only payments is a good idea. It will stop your student debt from growing.
Remember, you might also have other options. The best way to learn about all of them is to contact your servicer.
You may have options to lower your monthly payment. Many companies say that they have alternate payment programs for borrowers who might not be able to make a full payment. These plans may include:
Asking for help when you run into trouble can keep you from falling further behind. Contact your student loan servicer and ask what options are available to you. Your student loan servicer is the company that sends you a bill each month.
You can copy and paste this text.
I am writing to you because I need to reduce my monthly private student loan payment due to a financial hardship. I am requesting a payment that allows me to meet my other necessary living expenses.
Please conduct a review of my account to determine whether I am eligible for an alternative repayment plan.
[This paragraph is optional] I believe I can afford to pay $____ per month toward my loan(s). If you require details on my monthly income and expenses, I have attached a worksheet which you can use to make an evaluation.
If you require additional authorization in order to reduce the amount of my monthly payment, please consider this letter a written request that you contact my lender or other authorized party to conduct a review of my account and provide a response within 15 days of receipt of this letter.
If you do not grant this request for a reduced payment plan, I will be at risk of default. If I receive a reduced payment plan, I may be able to avoid default, which is in the best interest of all parties.
If you determine that you are unwilling to provide a reduced payment plan, please provide the following information:
What available reduced payment options do you offer other than forbearance?
For what reason(s) am I ineligible for these repayment programs?
If I am not eligible for these repayment programs, when will I become eligible?
What steps do I need to take to qualify for these repayment programs?
Do you anticipate modifying these repayment programs in the future?
Where on your website can I find additional information on these alternative repayment programs?
In addition, if you are unable to provide any of the information or documentation I have requested or otherwise cannot comply with this request, please provide an explanation.
I hope we will be able to agree upon an acceptable repayment plan.
Thank you for your cooperation.
Some student loan companies have told us that they may ask for recent pay stubs or a bank statement to verify income and expenses. Consider including these documents with your request, which you can mail or send through your private student loan servicer’s website after you login.
Keep in mind that unfortunately not all private student loan companies offer assistance when consumers are struggling to repay their loans. Using this letter may help you get a clear answer and avoid long hold times and transfers from one call center representative to another.
Remember, if you’re having a problem with a student loan, you can submit a complaint online or call us at<PHONE_NUMBER>.
Dealing with a defaulted loan and debt collectors can be stressful. If you are in default on a private (non-federal) loan, it is important that you know your rights and responsibilities. While it is your responsibility to pay what is owed, remember that you have rights when dealing with debt collectors, and it is against the law for a collector to abuse, harass, or make false statements to you.
Unless provided in the initial contact, within five (5) days, every debt collector must send a written “validation notice” indicating how much money you owe, the name of the creditor you owe, what dispute rights you have if you think you do not owe this debt, and how to obtain information about the original creditor. Keep this notice and use it as a reference when speaking with a debt collector.
You may receive a notice that your entire student loan must be paid off immediately and in full, however you may be able to negotiate or set up a payment plan. You may also have the opportunity to negotiate with the collector to settle your debt for less than you currently owe. Below are some key points to keep in mind and some sample instructions you can use when communicating with collectors and creditors.
For borrowers in default, it is important to remember that there are major differences between federal and private student loans.
A debt collector seeking to recover a private student loan does not work for, represent, or collect on behalf of the U.S. Department of Education or any other branch of the federal government. A debt collector trying to collect payments on a private student loan generally may not:
The first step to moving forward and getting out of default is clearly communicating with debt collectors. We’ve created five action letters that you can consider using in order to get valuable information about claims being made against you or protect yourself from inappropriate or unwanted collection activities.
If you do not immediately recognize the debt a collector has identified or if you want to find out more about the debt before you pay it, you may use this sample letter text to request more information.
You can copy and paste this text.
I am responding to your contact about a debt you are trying to collect. You contacted me by [phone/mail], on [date] and identified the debt as [any information they gave you about the debt]. Please supply the information below so that I can be fully informed:
Why you think I owe the debt and to whom I owe it, including:
The amount and age of the debt, including:
Details about your authority to collect this debt.
I have asked for this information because I have some questions. I need to hear from you to make an informed decision about your claim that I owe this money. I am open to communicating with you for this purpose. In order to make sure that I am not put at any disadvantage, in the meantime please treat this debt as being in dispute and under discussion between us.
In addition to providing the information requested above, please let me know whether you are prepared to accept less than the balance you are claiming is owed. If so, please tell me in writing your offer with the amount you will accept to fully resolve the account.
Thank you for your cooperation.
If you do not want to discuss the debt until you have additional information verifying the debt, you may use this template letter to inform a collector that you are disputing the debt and instructs the collector to stop contacting you until they provide evidence that you are responsible for that debt.
You can copy and paste this text.
I am responding to your contact about collecting a debt. You contacted me by [phone/mail], on [date] and identified the debt as [any information they gave you about the debt].
I do not have any responsibility for the debt you’re trying to collect.
If you have good reason to believe that I am responsible for this debt, mail me the documents that make you believe that. Stop all other communication with me and with this address, and record that I dispute having any obligation for this debt. If you stop your collection of this debt, and forward or return it to another company, please indicate to them that it is disputed. If you report it to a credit bureau (or have already done so), also report that the debt is disputed.
Thank you for your cooperation.
The Fair Debt Collection Practices Act prohibits debt collectors from contacting a consumer about a debt at a time or place they should know is inconvenient. If you want to work with a collector to resolve your debt, you may use this sample text to clearly state to the debt collector how you would like to be contacted.
You can copy and paste this text.
I am responding to your contact about collecting a debt. You contacted me by [phone/mail], on [date] and identified the debt as [any information they gave you about the debt].
You can contact me about this debt, but only in the way I say below. Don’t contact me about this debt in other way, or at any other place or time. It is inconvenient to me to be contacted except as I authorize below.
You can only contact me at:
[Mailing address if you want to get mail]
[Phone number and convenient times if you want to be contacted by phone]
[If correct, include the following] My employer prohibits me from receiving communications like this at work.
Thank you for your cooperation.
If you have hired a lawyer, generally, the debt collector should be contacting the lawyer instead of you. You may use this letter template to give the debt collector the lawyer’s information and instruct the collector to contact only the lawyer.
You can copy and paste this text.
I am responding to your contact about collecting a debt. You contacted me by [phone/mail], on [date] and identified the debt as [any information they gave you about the debt].
Please contact my lawyer about this debt, and do not contact me directly again. My lawyer’s contact information is:
[Contact information for your lawyer].
Thank you for your cooperation.
You also have the right to stop a debt collector from attempting to contact you. Stopping contact from a debt collector does not cancel the debt. Stopping contact does not stop the collector from pursuing other remedies, such as reporting the collection on your credit report or suing you. Consider using this letter template if you feel you are being harassed by a collector’s communications.
You can copy and paste this text.
I am responding to your contact about a debt you are attempting to collect. You contacted me by [phone/mail], on [date]. You identified the debt as [any information they gave you about the debt].
Please stop all communication with me and with this address about this debt.
Record that I dispute having any obligation for this debt. If you forward or return this debt to another company, please indicate to them that it is disputed. If you report it to a credit bureau (or have already done so), also report that the debt is disputed.
Thank you for your cooperation.
Remember, if you think that a debt collector has lied to you, harassed you or otherwise broken the law, you may want to see a lawyer. If you have a problem with debt collection, you can also submit a complaint online or call us at<PHONE_NUMBER>.
To download these letters as individual documents, visit our blog post on this topic.
Dealing with student loan debt should be a financial priority because student loan debt will not “just go away” if you ignore it.
IIf you fail to repay a private student loan in default, it can severely damage your credit record and your credit score, making it difficult or more expensive to take out a mortgage, buy a car or even get a credit card. You may be subject to collection efforts by a debt collector or a law firm.  And, unlike most other types of consumer debt, student loans cannot be discharged through bankruptcy, absent extraordinary circumstances (called “undue hardship”).
Unlike federal student loans, there is a statute of limitations on the collection of private student debt.
For borrowers contacted by a debt collector about very old debt (generally debt you have not made any payments toward for two years or longer, depending on your state), you may be able to challenge a lawsuit from a debt collector on these grounds. In some states, a partial payment on an old account may restart the time period during which you can be sued. Learn more about your rights here.
If you are currently serving on active duty you are eligible to have the interest rate lowered to 6% on all student loans taken out prior to your military service. This benefit applies to both your federal and private (non-federal) student loans and is available for all active-duty servicemembers, regardless of where you serve. Most borrowers on active duty will qualify for this benefit, so it makes sense to start here.
To obtain an interest rate reduction under the Servicemembers Civil Relief Act (SCRA), contact your servicer and ask about this option directly. You will be required to provide your servicer with proof of your active duty status in the form of orders from your commanding officer.
Learn more about the Servicemembers Civil Relief Act and other benefits for servicemembers with student loans from the U.S. Department of Education.
You may also be eligible for other benefits available to servicemembers, such as military deferment and Income-Based Repayment (IBR) for federal student loans.
Call your private (non-federal) loan servicer and ask what options are available to you. Most of the big lenders say that they have alternate payment programs for borrowers who might not be able to make a full payment. You can often find out about these options on your servicer's website.
If you can afford to make partial payments, you may want to ask about graduated repayment or extended repayment. Not all private (non-federal) loan servicers offer these programs, but some do.
Remember, both of these programs increase the total amount you pay in interest over the life of the loan, often substantially.
If you can't afford to pay at all, some of the most popular programs for temporarily stopping your payments are deferment and forbearance. Unlike federal student loans, your private (non-federal) loans don't have a common set of consumer protections when it comes to deferment and forbearance.
Some private student loan servicers offer deferment or forbearance for servicemembers on active duty. This may provide temporary relief, but it does not eliminate your obligation to repay your loans.
Unlike some federal student loans, for most private student loans, interest will still accrue during periods of deferment and forbearance. If you do work with your servicer to temporarily suspend your monthly payments, your total debt will continue to grow and your monthly payments may be much higher when you begin to repay.
To get a military deferment or forbearance, contact your servicer and ask about this option directly. Once you're in deferment, you can still make a payment if you get some extra cash. If you can afford it, making interest-only payments is a good idea. It will stop your student debt from growing.
Remember, you might also have other options. The best way to learn about all of them is to contact your servicer.


I am John Oliphant and I am an Oracle Hyperion administrator and developer. I live in Baltimore MD, with my wife a two daughters. I currently work for Allegis Group, the parent company of Aerotek and TEKsystems, based out of Hanover MD.
This site, and accompanying blog, is my corner of the internet. A place to play with web technologies, servers, networking, and other fun things that peak my interest.
Finally this is a place where I can be found without using a social network. If you need me, I am right here. Always.
On the internet most folks are no longer anonymous, so instead of hiding behind a 'thin wall of security through obscurity'...


Comparing a variable against itself is usually an error, either an typo or refactoring error. It is confusing to the reader and may potentially introduce a runtime error.
The only time you would compare a variable against itself is when you are testing for NaN
. However, it is far more appropriate to use typeof x === 'number' && isNaN(x)
or the Number.isNaN ES2015 function for that use case rather than leaving the reader of the code to determine the intent of self comparison.
This error is raised to highlight a potentially confusing and potentially pointless piece of code. There are almost no situations in which you would need to compare something to itself.
Examples of incorrect code for this rule:
/*eslint no-self-compare: "error"*/
var x = 10;
if (x === x) {
x = 20;
}
This rule was introduced in ESLint 0.0.9.


Screening results analysis. ( a, b) PANTHER ( http://www.pantherdb.org/) and Ingenuity ( www.ingenuity.com) gene ontology (GO) analysis for enrichment of certain categories in the context of biological processes or molecular functions, respectively. See Supplementary Fig. 2 for a graphical illustration of some pathways included in the GO terms labelled in blue in b.


Hello from the MindTrails Team!While completing the MindTrails study, you might've been wondering: ''Who's behind all this?'' Well, here's your answer! This newsletter will introduce you to some of the members of the MindTrails team. If you have more questions after reading, contact us at<EMAIL_ADDRESS>Meet the MindTrails TeamBethany Teachman, Ph.D., is the Director of MindTrails as well as the Director of Clinical Training and a Professor of Psychology at the University of Virginia. She is a researcher, teacher, mom to two girls, and a licensed clinical psychologist who has been treating anxiety disorders for more than 20 years. Check out her website at teachman.org and this video of her talking about MindTrails for Ignite Mental Health. P.S. She has seven siblings! Dan Funk is the lead software developer for MindTrails. He also is the founder of Sartography, which is a software development company based in Staunton, Virginia. His mission is to partner with innovators and scientists to create engaging software that improves the health and well-being of our communities. He is also an incredible sandcastle architect! Henry Behan is the Project Coordinator on the MindTrails team. He's originally from Ireland, and his name in Irish is 'Anraí' which is pronounced similar to 'Henry' in French. He works on many different aspects of the project, including programming the website, data processing and management, content development, and participant recruitment.  Here is a photo of him performing onstage a while ago, which not only looks like it was taken in the 1970s, but feels like it too. Alex Werntz, Ph.D., is a researcher on the psychology side of the MindTrails team. Although she's worked with the team since MindTrails started, her current role is adapting the program to meet the needs of children and teens who may not otherwise have access to mental health services. And, since the pandemic started, her office-mates have been three talkative hairless cats (she's obsessed with her cats!). Jeremy Eberle, MA, and is a Ph.D. student in clinical psychology. He's been working on the MindTrails team since 2017 with a focus on research methodology, data management, and statistical analysis. His research concerns pinpointing exactly how interventions like MindTrails alleviate emotional distress. He's embracing the ability to grow a pandemic beard that's a bit longer than usual, which actually reduces his health risk given that he once accidentally trimmed off half his eyebrow! María Larrazabal is a clinical psychology graduate student who works with other team members to optimize participants' experience in the program. They test out ways to keep participants engaged in MindTrails and explore the effects of COVID-19 on the effectiveness of MindTrails as a tool to help people think more flexibly. The first time María read the Harry Potter books was when they were over the age of 20 (and loved them!) Allie Silverman is a graduate student in psychology working with the MindTrails team. Right now, her efforts are focused on helping to expand the reach of our program so that even more individuals who are experiencing anxiety have access to MindTrails. Outside of graduate school, she loves getting outside as much as possible, whether it's on a bike ride or hiking in the Blue Ridge mountains. Suraj Patel is a third-year undergraduate student at the University of Virginia studying Psychology and Gender Studies. Some of the work that he's done with MindTrails includes working as a coach for participants at high-risk to dropout. Currently, he's working on analyzing the data of participants who received coaching to find out the influence of characteristics like gender and age on the engagement of participants with their coaches. Some fun facts about him are that his front teeth are all fake and he almost exclusively ate meat for about a year! Tylar Schmitt is a second-year undergraduate at the University of Virginia studying psychology. Her work on the MindTrails project includes analyzing demographic data, developing retention strategies, and adapting the program for adolescents. One of the things that she's missed the most since being in quarantine is holding the lab tarantulas! Thanks for reading!Thank you for reading this newsletter. If you have any questions, contact us at<EMAIL_ADDRESS>Best, The MindTrails Project Team To make sure you receive our emails, please add our email address<EMAIL_ADDRESS>to your list of contacts. By adding us to your contacts, you ensure all our emails don't end up in your spam folder. Please note that email is not a secure form of communication and should not be used to discuss any confidential matters, including personal health information, given that its confidentiality cannot be assured. You received this email because you signed up to participate in the MindTrails study. You can manage your contact preferences, or exit the study at any time by visiting your Account Settings. |


Welcome
In 2012, the Sainsbury Library invited the faculty and researchers of the School to nominate up to two works that they felt had, in some way, contributed to them becoming critical thinkers, and to offer their personal insights on how those works had done so.
This lead to a remarkable collection of vignettes which were featured in a small printed book and on a Critical Thinking website: more importantly, it created an opportunity for the sharing of personal reflections, which culminated in a social event at which the school community were able to continue the dialogue about the particular power of ideas, while examining the works that were selected by others.
Since 2012, we have had repeated requests from those who took part to run a repeat of that initiative, and we are now able to present this publication: Notable Works 2017.
Chris Flegg
Bodleian Business Library
Ali Gümüsay
In a hasty world, this book published first in 1952 presents a timely critique on ‘universal utilitarianism’ and a decelerating comment on the meaning of leisure – not as a means to work better, but as an end in itself. Pieper writes: “No one who looks to leisure simply to restore his working powers will ever discover the fruit of leisure…” Unfortunately, breaks and pauses are too often servile to a utilitarian motive rather than practiced as deep contemplations.
Pieper finds the capability of understanding and practicing leisure in the divine. This fits squarely with findings from my research on the role of religion in and outside organizations and notions such as wor(k)ship and metaphysical pursuit.
The book also helped me reflect on our academic profession – for instance in considering that scholars frequently receive an honorarium rather than a wage. This is, Pieper argues, because of an incommensurability between performance and recompense. Purpose lies beyond measurable profit.
While total labor invades all spheres of life, the book is a plea for active leisure that holds societies together and transforms individuals towards a fullness of character and being; so that we may find tranquility, contentment and intensity in contemplation as individuals and enriching cultures as collectives.
Siddhartha is a work of fiction that contains so much truth. In fact, I believe, a bit of Siddhartha is in us all: throughout life we strive for some and err in many things. As Goethe pointedly put: “Man must err, as long as he strives.”
I feel that in research, I will also continue to err as long as I explore – and that the beauty of the profession and practice lies in such constant pursuit. It is this luxurious contemplative work that makes me feel deeply humbled and honored – to be allowed to research life and value spheres of individuals, organizations and societies. Yet, we also need to put our re-search into perspective. Siddhartha tells his friend that in all his searching, he may not find the time for finding. This summarizes well the paradoxical nature of the scholarly profession specifically and life more generally.
Siddhartha yearns for answers to what the theologian Tillich calls ultimate concerns or dimensions of depth. It is his struggle for an elusive yet eternal dwelling, similar to the journey of Goethe’s Faust that blends pleasure and pain. Faust sought eternity in the moment, yet, we may need to seek the moment in eternity.
The book also helped me to re-think teaching. The quest for meaning is very personal and Siddhartha says that wisdom cannot be imparted and indeed, if tried, it always sounds like foolishness to someone else. While I am neither wise nor teach wisdom (yet), this made me more patient and humble in my teaching objectives – assisting students to move forward and beyond.
Pieper explains and Hesse shows vividly the struggle between pursuit and contemplation towards a reflective and tranquil movement that can blend the paradox between stability and change. We need to explore questions without imposing them onto us. Then we may find a hesitant and pleasant while: a moment so elusive and ever-lasting at the same time – a drop of thirst quenched in the quest for and through questions about good research, teaching & life.
Right-to-left support
Wowbook can order the book pages from right to left if you need to use right-to-left script.
Lazy loading
Wowbook can defer the loading of a page contents until the page is shown. This is especially useful in books that contains a lot of images.
DESIGN
Let the book fits into your site's design, and not the other way around.
Thumbnails
Basic support for displaying thumbnails.
CSS Sprite thumbnails:
You need to create a CSS Sprite and define a thumbnail size.
They are lighter and faster, but need to rebuild the image whenever you change the page contents and/or the thumbnails size.
Automatic thumbnails:
Automatically created, each thumbnail is a clone of the page that is scaled down to the thumbnail size. They are more resource intensive than sprites thumbnails, but easier to update. Some browsers don't do the "scale down" part very well, leading to less than optimal (i.e., ugly) results.
Change Type:
Change Size:
Only valid with automatic thumbnails.
Change position:
Zoom
The zoom feature lets your users magnify your content to admire all the minimum details.
Configurable, multiple levels of zoom.
Design friendly : control the size and the position of the book when zoomed.
Deep linking
Create a link to any page and they will work as expected, like this one (opens a new window).
wowBook updates the browser's address bar to point to the current page, allowing your user bookmark what he is seeing and get back later.
Back button support
wowBook doesn't breaks your browser's back button.
Automatic page numbering
Numbering the pages of your book is boring , specially during development. Let wowBook do it for you.
Choose where the numbers start and where they ends.
Customize the appearance and position using CSS.
FLASH
It's possible to use flash (like youtube videos) in your books, but the page that contains the flash object will be limited to the "basic flipping effect" (and ONLY that page).
Currently, most browsers do not handle well the css transformations used by wowbook when applied to a flash object.
and MORE
- Browser support :
- Keyboard navigation
- Mouse wheel navigation / zoom
- Play flipping sound
- Documentation
- Source code
- Examples
- Rich API


On this page
The bot detector module checks incoming connections to the gateway to determine if a bot made them, helping you detect and reject bots carrying out scraping, content theft, and form spam.
Bots are detected by inspecting the User-Agent
and comparing its value with a set of configuration rules provided by you. The bot detector module does not set any initial rules, meaning that is up to you to decide the best rules for your use case, and choose how restrictive or permissive you are with bots.
As the bot detector module is flexible in its configuration, you can use it for other purposes than just discarding bots. For instance, you could set a whitelist rule for your mobile application User-Agent
which would be allowed to interact with KrakenD and discard the rest of the traffic.
Configuring bot rules
The configuration rules of the bot detector have to be included inside the extra_config
’s namespace github_com/devopsfaith/krakend-botdetector
at the root level of your krakend.json
file.
For instance:
"extra_config": {
"github_com/devopsfaith/krakend-botdetector": {
"whitelist": ["MyAndroidClient/1.0", "Pingdom.com_bot_version_1.1"],
"blacklist": ["a", "b"],
"patterns": [
"(Pingdom.com_bot_version_).*",
"(facebookexternalhit)/.*"
],
"cacheSize": 0
}
}
The available configuration options in the bot detector module are:
whitelist
: An array with EXACT MATCHES of trusted user agents that can connect.blacklist
: An array of EXACT MATCHES of undesired bots, to reject immediately.patterns
: An array with all the regular expressions that define bots. Matching bots are rejected.cacheSize
: Size of the LRU cache that helps speed the bot detection.
Notice that the whitelist
and the blacklist
do not expect regular expressions, but literal strings. The purpose of this design is to get the best performance as comparing a literal string is much faster than evaluating a regular expression.
On the other hand, the patterns
attribute expects regular expressions. The syntax is the same general syntax used by Perl, Python, and other languages. More precisely, it is the syntax accepted by RE2
The order of evaluation of the rules is sequential in this order: whitelist
-> blacklist
-> patterns
. When a user agent matches in any of the former evaluations, the execution ends, and the connection is accepted (whitelist) or rejected (blacklist and patterns).
Building your bot rules
Fighting against spam, spiders, scrapping, theft, and bots is a problematic matter. There are different angles you can choose to combat it using the bot detection module.
Maybe you want to have a massive list of regular expressions of bots that are troubling you, and caching enabled.
Or perhaps you only require a single negative pattern that discards anything that you don’t know is legit.
Whatever rules you decide to set in place, remember than whitelisting and blacklisting are faster but are inflexible and require you to set the exact user-agent. On the other hand, regular expressions are very convenient, but the cost of evaluating them is higher in comparison.
Caching
Evaluating every user agent against a ** substantial list of patterns** can be a time-consuming operation. Even when we are talking about a few milliseconds, you can enable caching by setting cacheSize
and avoid reprocessing User-Agents checked before. Every millisecond counts!
The LRU caching system is in-memory and does not require running a separate set of servers, thus reducing the operation pain. There are neither cache expiration times, nor explicit cache evictions. When/if the cache is full, the least recently used (LRU) element is automatically replaced with the new one. An order of magnitude of megabytes should be enough to save the different User-Agent requests and combinations.
Set in the cacheSize
an integer with the fixed size of the cache, or 0
to disable caching.


I was married one week ago today. As cliched as this sounds, it was indeed the happiest day of my life. To see all my favorite people in one place sharing in our happiness was surreal and wonderful. On that day, I felt a sense of Accomplishment, Closeness, Confidence, Control, Excitement, Friendship, Family, Growth, and Loyalty. Look, I could go on and on but I will stop there for now.
Loyalty is important to me for a variety of reasons. Growing up an Italian-American in Brooklyn, we were all infused with this sense of loyalty; never turn on your friends, respect your family, never "rat" on any one. Even though I no longer live in that environment (I'm not sure it even exists any more)I try to take a lot of these notions and apply them to my life in all aspects.
In general, I would say that I live up to my values as close as possible. When someone asks me advice on some problem going on in their lives, I always try to remind them of their value system. If you think about what is important to you, it becomes (somewhat) easier to make the hard decisions.
There are also plenty of exercises I recommend to people when they are feeling down or questioning themselves and their decisions. Meditate. RUN! Breathing exercises. But most importantly, I advise people to write down their feelings and identify which of their feelings are irrational and which ones aren't.


"This happens every 25 or 50 years, people get all amped up about 'machines are going to take all the jobs' and it never happens." - Marc Andreesen- Netscape Developer, co-founder of VC firm Andreesen Horowitz, coined the phrase "software is eating the world"
from codecon May 2017


ChronoCity is an online platform for simple geometric change-detection for aerial point clouds. It is developed for the Geomatics Sythesis Project at TU Delft and powered by Fugro. The viewer is heavily based on Markus Schutz's Potree viewer.
The platform relies on many external libraries and previous work. For full credits, check the Potree website or Github.
This tool identifies changed geometries on xyz-points solely. You have to specify two moments in time which you want to compare, a region of interest and sme optional parameters. The results will show up when the algorithm is done.
Region of Interest
Parameters (optional)
Numbers:
Params:
Processing request ...
We are now processing your request. This can take a while, depending on the area you selected. Below is an indication of the procesingtime;
Calculated Changes
New points are shown in green, removed points are shown in red. You can toggle layers using the checkboxes below.
Restart
◢ Download and Export
Image export
You can save the viewport as an image (png). Navigate to the view of your choice and press the button 'Export'
Download point clouds
Future Feature.
◢ Share your view
Share your 3D view with everybody by copying and sending the below generated link!
◢ Search and Go
This feature is under development. Only simple Dutch zip-codes or streetnames are guaranteed to work. You will be sent to the best result for the search.


Binding definitions are the core of working with JiBX. In order to usefully apply JiBX to your applications you need to understand what can and can't be done in a binding definition. This tutorial is designed to give an overview of doing various types of binding operations in JiBX to help you get up to speed as quickly as possible. For full information on working with binding files, see the Binding Definition reference section of the documentation.
You can go through the tutorial in sequence using the forward links at the bottom of each page, use the menu to the left to browse by individual page, or use this table of contents to jump directly to a particular section of the tutorial:
The actual Java code, binding definition files, and XML documents for many of the examples are included in the JiBX distribution under the /tutorial directory. The /tutorial/index.html file gives a list of the specific examples provided.


Introduction
The Maker Board to Rule Them All!
FEZ (fast and easy) is our magnificient maker board. This low cost board offers Arduino pinout compatibility, optional Wi-Fi for IOT applications, and can be programmed using multiple programming languages and development environments.
Pricing, purchasing and other information can be found on the FEZ page on our main website.
Specifications
| Spec | Value |
|---|---|
| Processor | STMicroelectronics ST32F401RET6 |
| Speed | 84 MHz |
| Internal RAM | 96 KByte |
| Internal Flash | 512 KByte |
| Dimensions | 70.6 x 56.0 x 14.5 mm |
Peripherals*
| Peripheral | Quantity |
|---|---|
| GPIO (5V tolerant) | 22 |
| IRQ | 22 |
| UART | 1 |
| I2C | 1 |
| SPI | 1 |
| PWM | 8 |
| 12 Bit ADC | 8 |
| CAN | 0 |
| USB Client | 1 |
| Wi-Fi | Optional |
*Note: Many peripherals share I/O pins. Not all peripherals will be available to your application.
Resources
Programming Options
| TinyCLR Embedded programming using Visual Studio .NET. Learn more... |
Arduino Very popular open source standard. Learn more... |
| Mbed Free online C/C++ compiler. Learn more... |
MicroPython A version of Python for microcontrollers. Learn more... |
| Bare Metal Use the Cortex-M4 compiler of your choice. Learn more... |
Accessories Selected to help get you started. Learn more... |
Our TinyCLR operating system lets you program the FEZ (and other devices) in C# or Visual Basic using Microsoft's Visual Studio -- and it's all free! Learn more....
Visit our main website at www.ghielectronics.com and our community forums at forums.ghielectronics.com.


Switcheroo
Nintendo Switch JailBreak PoC
This page demonstrated an approach of JailBreaking the new Nintendo Switch console. It was created for academic purpose ONLY.
While the the tool we present here might be allow for an actual JailBreak solution, it'll only crash the console on sucess. without applying any software modification.
For more information about the bug exploited in this tool, please refer to the article published on the tool's GitHub repository


wfc.h
header file now properly
sets up the linker to initialize the C Runtime
environment for UNICODE builds as well as automatically
linking the proper version of WFC.LIB.
In release 35 I'll work on
XML
entity resolution (as well as more bug fixes).
CDragQuery - Encapsulates the HDROP handle and API. Useful when handling the WM_DROPFILES message (or OnDropFiles method in MFC::CWnd).
SetSize()
method. Also
added a new constructor that allows you set the size
and added a new method, SetAll()
that allows you to set all the bits in the array to
one or zero.
CExtensibleMarkupLanguageElement - Jeff
Winkler<EMAIL_ADDRESS>found a couple of serious bugs.
One was where I was not properly parsing empty, self-terminated
elements (<job/>
for example). Another
was I wasn't allowing for attribute values to be single-quote
terminated. They are both fixed now. Also, all string
comparisons are case sensitive.
CListeningSocket - Fixed UNICODE problems.
CLZFile - Fixed UNICODE problems.
CNetwork - Fixed UNICODE
problem in Open()
.
CNetworkUsers - Fixed
Unicode problem in Delete()
.
CRandomNumberGenerator - One
of the things that
always bothered me about this class was that to achieve
a flat distribution of ones and zeroes across the lowest
8 bits of the value returned by GetInteger()
,
I used two values from GetFloat()
.
This meant the number of random values pulled using
GetInteger()
(before the series
started repeating) was half that of
GetFloat()
.
Then I got the bright idea of hashing the data. The
results are great! The distribution of ones and zeroes
is now flat across all 32 bits of the integer (take
a look at the code in test_CRandomNumberGenerator.cpp
to see how I test the generator). This
means the generator is now good for
1,000,000,000,000,000,000,000,000,000,000 (i.e. 10^30)
integers instead of only
500,000,000,000,000,000,000,000,000,000 (i.e. 5*10^29) integers. YIPPEE!
CRemoteAccessService - Fixed
problem in EnableLogging()
.
CSerialFile - Fixed some
UNICODE problems and added
SetPurgeBufferOnError()
. This
allows you to turn off the automatic purging of incoming data
when a framing error was detected. Thanks Dave!
CService - Fixed multiple debugging statements.
CServiceControlManager - Rainer Kukasch<EMAIL_ADDRESS>found
a bug in the Stop()
method.
It would stop the service but always
return FALSE. It is fixed now.
Sam Blackburn Internet<EMAIL_ADDRESS>Return to Sam's Home Page


Video: Ajay Devgn releases a new promo of Tanhaji: The Unsung Warrior
by FilmfareNow that we are just two days away from the trailer release of Tanhaji: The Unsung Warrior, actor Ajay Devgn is making sure to create the right kind of buzz around the film. It’s all special as the project reunites Ajay with his Omkara co-star Saif Ali Khan and wife Kajol on the big screen after quite sometime. Tanhaji will also be Ajay Devgn’s 100th film, for which a lot of celebs are already congratulating him.
A period drama, Tanhaji: The Unsung Warrior is one of the most anticipated films of 2020. Ahead of the trailer release, Ajay today unveiled a new promo on his social media handle. He wrote, “Rishton ka farz… Ya mitti ka karz? #TanhajiTheUnsungWarrior, in cinemas 10th January 2020. TANHAJI TRAILER IN 2 DAYS”
Check it out.
It was recently when Ajay had introduced Saif's character, Udaybhan Singh Rathod, which created quite a buzz on the internet. The official trailer of the film will be released on November 19, 2019.
Stay tuned for more updates on the same.


Reince Priebus: "A Warning" author Anonymous is "dishonorable"
by CBSNewsPresident Trump is a threat to America: that is the thrust of "A Warning," on sale Tuesday, and written by "Anonymous," an author described only as "a senior Trump administration official."
Or at the president described him or her, "really an anonymous, gutless coward."
That cloak of anonymity is the same one the writer wore in a New York Times column last fall which argued the president is amoral.
I am part of the resistance inside the Trump administration by Anonymous (New York Times, 9/05/18)
Mr. Trump's response to that op-ed? --- this tweet:
For more info:
"A Warning" by Anonymous (Twelve), in Hardcover, eBook and Audio formats, available via Amazon
Story produced by Arden Farhi and David Rothman.
Rep. Mike Quigley: Trump has a "pattern" of witness intimidation
Jordan says Ukraine aid delay done in the "best interest" of U.S.
Nancy Pelosi suggests whistleblower complaint prompted release of Ukraine aid


Postgres has a few handy primitives for dealing with distributed process level locking. Because these locks are atomic and handled by the database, they are well suited for coordinating concurrent processes’ access to shared resources.
For example, a checkout endpoint on an ecommerce site should be placed behind such an advisory lock, so that if the user initiates two check out processes consecutively, only one occurs. Even if the two requests make it to different web processes, the second attempt should gracefully be rolled back.
Another example can be seen in worker processes that perform some sort of action in a loop or on a schedule, but for which only one process should be executing at a time. You may spin up two such processes ensuring high availability, but they only operate if a lock is acquired. In this way, the first process acquires the lock, and the second blocks until the first one releases it, either because it crashed or it gracefully exited.
Postgres locking
Postgres has various functions that can be used for creating locks. The topic of this article is advisory locks. Explicit locks are those taken by database operations such as concurrent writes, and they are guaranteed to be obeyed no matter what. For example, one process updating a column and another trying to drop the very same column, would be a situation that cannot be handled concurrently, and one will inevitably have to wait for the other to complete in order to do it’s job.
In the advisory lock case, the application requests a lock in order to perform some operation, and releases it when it’s done. It’s up to the application itself to obey this lock, hence the name. It’s entirely possible for a missbehaved application to simply ignore the lock.
In the advisory lock family of functions, we can categorize them as:
- Session level: those that affect a session or connection. When taking a session level lock, if a transaction fails and rolls back, the lock will continue to be held until it is explicitely released.
- Transaction level: locks that automatically get released at the end of a transaction. In many cases the semantics offered by transaction level locking are a better fit for the underlying problem. In general, if the action being performed is wrapped in a transaction, this is likely the best suited locking scope.
Beyond the above, locks can be blocking or non-blocking. In the blocking case, the request for a lock will wait until it can be obtained, whereas in the non-blocking case the request returns immediately but returns false.
Usage examples
Session level
Let’s look at session level locks first. Opening up two psql sessions we can experiment with the locking semantics:
1 2 3 4 5 |
|
1
|
|
Here, session 2 just blocks until the lock is acquired. On a third session we can check in pg_locks and pg_stat_activity to verify this:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Now, let’s release the lock on session 1:
1 2 3 4 5 |
|
Pretty much immediately after having done this, session 2 took the lock, and it looks like this:
1 2 3 4 5 6 7 |
|
And now pg_locks shows the one lock being held
1 2 3 4 5 6 7 8 9 10 11 |
|
Because this is a session level lock, failing or rolling back any transaction while holding a lock does not release the lock at all. Only explicitely unlocking or disconnecting the client would release the lock.
Transaction level
Now let’s take a look at how transaction level locks work:
1 2 3 4 5 6 |
|
Note also that we’re using the try
variant of locking functions. Instead of
blocking on a lock to be obtained, the try
variants return true or false
depending on whether a lock could be obtained.
On session 2, we can try grabbing a lock as well:
1 2 3 4 5 6 |
|
It returned false, because the first session already has said lock. If we were to complete this transaction either by failing, a COMMIT or a ROLLBACK, then this lock can be acquired. Let’s try that:
1
|
|
After exiting the transaction on one session, the other ought to be able to acquire it:
1 2 3 4 5 |
|
All postgres locking functions take an application defined key in the form of one 64-bit integers or two 32-bit integers. An application may create CRC values from higher level abstractions to be supplied as locking keys. For example, a suitable integer for a lock on user ID 4232 may be the CRC of the string “user4232”. This pattern is implemented in the locksmith ruby library as well as python’s tusk library, and works well as an easy to understand application level abstraction.
Conclusion
Applications in modern software development and delivery are distributed in nature. Distributed mutexes and locks are an important primitive to help synchronize and ensure correctness of behavior under concurrent environments.
Many projects and products with distributed lock managers exist (Zookeeper, Google Chubby, Doozer, etc), but Postgres provides a lightweight mechanism that is suitable for many locking needs, without incurring the cost of additional infrastructure dependencies to an environment that already makes use of Postgres for data storage.
More information about advisory locks in postgres can be found here and here.


$1,500,518
0.25%
Total Revenue
28,000
0.25%
Total Transactions
90%
0.25%
Success Rate
3.5%
0.25%
Effective Rate
Success rate of Authorize.net 10%
Reroute DC/CC transactions via PayPal or StripeFees By Payment Method
Declines By Payment Method
Decline Trends
Revenue Details
| Payment Channel | Total Transactions | Success Rate | Total Revenue | Declines | Refunds | Chargebacks | Fees | Effective Rate |
|---|


We're sorry but vue-ecard doesn't work properly without JavaScript enabled. Please enable it to continue.


We have a regexp pattern:/Java[^script]/.
pattern:/Java[^script]/
Does it match anything in the string subject:Java? In the string subject:JavaScript?
subject:Java
subject:JavaScript


{% extends 'index/base.html' %} {% block titleblock %}{% endblock %} {% block headerblock %}
{% endblock %} {% block mainblock %}| Thumbnail | Product | Price | Stock Status | Add to Cart | Remove |
|---|---|---|---|---|---|
| REXPO WOMENS SHOES | $295.00 | In Stock | Add to Cart | ||
| LEATHER MENS SLIPPERS | $275.00 | In Stock | Add to Cart | ||
| PRIMITIVE MENS SHOES | $295.00 | Stock Out | Add to Cart | ||
| QUICKIIN MENS SHOES | $110.00 | In Stock | Add to Cart |


Motion Picture and Television Industry Specific Information. More...
#include <DPXHeader.h>
Inherited by dpx::Header.
Public Member Functions | |
| IndustryHeader () | |
| Constructor. | |
| void | Reset () |
| Reset class to initial state. | |
Motion Picture Industry Specific Methods | |
| void | FilmEdgeCode (char *edge) const |
| Get the film edge code information that is machine readable. | |
| void | SetFileEdgeCode (const char *edge) |
| Set the film edge code information that is machine readable. | |
| void | Format (char *fmt) const |
| Get the format (e.g., Academy). | |
| void | SetFormat (const char *fmt) |
| Set the format (e.g., Academy). | |
| U32 | FramePosition () const |
| Get the frame position in sequence. | |
| void | SetFramePosition (const U32 pos) |
| Set the frame position in sequence. | |
| U32 | SequenceLength () const |
| Get the total number of frames in sequence. | |
| void | SetSequenceLength (const U32 len) |
| Set the total number of frames in sequence. | |
| U32 | HeldCount () const |
| Get the how many sequential frames for which to hold current frame. | |
| void | SetHeldCount (const U32 count) |
| Set the how many sequential frames for which to hold current frame. | |
| R32 | FrameRate () const |
| Get the frame rate (frames / second). | |
| void | SetFrameRate (const R32 rate) |
| Set the frame rate (frames / second). | |
| R32 | ShutterAngle () const |
| Get the shutter angle of the motion picture camera. | |
| void | SetShutterAngle (const R32 angle) |
| Set the shutter angle of the motion picture camera. | |
| void | FrameId (char *id) const |
| Get the user-defined frame identification. | |
| void | SetFrameId (const char *id) |
| Set the user-defined frame identification. | |
| void | SlateInfo (char *slate) const |
| Get the production information from the camera slate. | |
| void | SetSlateInfo (const char *slate) |
| Set the production information from the camera slate. | |
Television Industry Specific Methods | |
| void | TimeCode (char *str) const |
| Get the time code. | |
| void | SetTimeCode (const char *str) |
| Set the time code. | |
| void | UserBits (char *str) const |
| Get the user bits. | |
| void | SetUserBits (const char *str) |
| Set the user bits. | |
| U8 | Interlace () const |
| Get the interlace (0 = noninterlace, 1 = 2:1 interlace). | |
| void | SetInterlace (const U8 lace) |
| Set the interlace (0 = noninterlace, 1 = 2:1 interlace). | |
| U8 | FieldNumber () const |
| Get the field number of the video decoded. | |
| void | SetFieldNumber (const U8 fn) |
| Set the field number of the video decoded. | |
| VideoSignal | Signal () const |
| Get the video sournce. | |
| void | SetSignal (const VideoSignal vs) |
| Set the video sournce. | |
| R32 | HorizontalSampleRate () const |
| Get the clock rate at which samples were aquired. | |
| void | SetHorizontalSampleRate (const R32 rate) |
| Set the clock rate at which samples were aquired. | |
| R32 | VerticalSampleRate () const |
| Get the rate at which scanning the whole image is repeated. | |
| void | SetVerticalSampleRate (const R32 rate) |
| Set the rate at which scanning the whole image is repeated. | |
| R32 | TemporalFrameRate () const |
| Get the applied gamma correction. | |
| void | SetTemporalFrameRate (const R32 rate) |
| Set the applied gamma correction. | |
| R32 | TimeOffset () const |
| Get the time offset from sync to first pixel. | |
| void | SetTimeOffset (const R32 offset) |
| Set the time offset from sync to first pixel. | |
| R32 | Gamma () const |
| Get the applied gamma correction. | |
| void | SetGamma (const R32 g) |
| Set the applied gamma correction. | |
| R32 | BlackLevel () const |
| Get the reference black level. | |
| void | SetBlackLevel (const R32 bl) |
| Set the reference black level. | |
| R32 | BlackGain () const |
| Get the gain applied to signals below the breakpoint. | |
| void | SetBlackGain (const R32 bg) |
| Set the gain applied to signals below the breakpoint. | |
| R32 | BreakPoint () const |
| Get the breakpoint which gamma is applied. | |
| void | SetBreakPoint (const R32 bp) |
| Set the breakpoint which gamma is applied. | |
| R32 | WhiteLevel () const |
| Get the reference white level. | |
| void | SetWhiteLevel (const R32 wl) |
| Set the reference white level. | |
| R32 | IntegrationTimes () const |
| Get the temporal sampling rate of television cameras. | |
| void | SetIntegrationTimes (const R32 times) |
| Set the temporal sampling rate of television cameras. | |
Public Attributes | |
Motion Picture Industry Specific Members | |
| ASCII | filmManufacturingIdCode [2] |
| Film edge code manufacturing ID code. | |
| ASCII | filmType [2] |
| Film edge code type. | |
| ASCII | perfsOffset [2] |
| Film edge code offset in perfs. | |
| ASCII | prefix [6] |
| Film edge code prefix. | |
| ASCII | count [4] |
| Film edge code count. | |
| ASCII | format [32] |
| Format string, e.g. Academy. | |
| U32 | framePosition |
| Frame position in sequence. | |
| U32 | sequenceLength |
| Sequence length. | |
| U32 | heldCount |
| Held count (1 = default). | |
| R32 | frameRate |
| Frame rate of original (frame / sec). | |
| R32 | shutterAngle |
| Shutter angle of camera (degrees). | |
| ASCII | frameId [32] |
| Frame identification, e.g. keyframe. | |
| ASCII | slateInfo [100] |
| Slate information. | |
| ASCII | reserved4 [56] |
| Reserved. | |
Television Industry Specific Members | |
| U32 | timeCode |
| Time code. | |
| U32 | userBits |
| User bits. | |
| U8 | interlace |
| Interlace (0 = noninterlace, 1 = 2:1 interlace). | |
| U8 | fieldNumber |
| Field number. | |
| U8 | videoSignal |
| Video signal. | |
| U8 | zero |
| Structure alignment padding. | |
| R32 | horizontalSampleRate |
| Horizontal sample rate (in Hz). | |
| R32 | verticalSampleRate |
| Vertical sample rate (in Hz). | |
| R32 | temporalFrameRate |
| Temporal sample rate (in Hz). | |
| R32 | timeOffset |
| Time offset from sync to first pixel (in ms). | |
| R32 | gamma |
| Gamma. | |
| R32 | blackLevel |
| Black level. | |
| R32 | blackGain |
| Black gain. | |
| R32 | breakPoint |
| Break point. | |
| R32 | whiteLevel |
| White level. | |
| R32 | integrationTimes |
| Integration time (in sec). | |
| ASCII | reserved5 [76] |
| Reserved. | |
Protected Member Functions | |
| U32 | TCFromString (const char *str) const |
Motion Picture and Television Industry Specific Information.
| dpx::IndustryHeader::IndustryHeader | ( | ) |
Constructor.
| R32 dpx::IndustryHeader::BlackGain | ( | ) | const [inline] |
Get the gain applied to signals below the breakpoint.
| R32 dpx::IndustryHeader::BlackLevel | ( | ) | const [inline] |
Get the reference black level.
| R32 dpx::IndustryHeader::BreakPoint | ( | ) | const [inline] |
Get the breakpoint which gamma is applied.
| U8 dpx::IndustryHeader::FieldNumber | ( | ) | const [inline] |
Get the field number of the video decoded.
| void dpx::IndustryHeader::FilmEdgeCode | ( | char * | edge | ) | const |
Get the film edge code information that is machine readable.
| edge | buffer to write film edge code information (16+1 chars) |
| void dpx::IndustryHeader::Format | ( | char * | fmt | ) | const [inline] |
Get the format (e.g., Academy).
| fmt | buffer to write format information (32+1 chars) |
| void dpx::IndustryHeader::FrameId | ( | char * | id | ) | const [inline] |
Get the user-defined frame identification.
| id | buffer to write frame identification (32+1 chars) |
| U32 dpx::IndustryHeader::FramePosition | ( | ) | const [inline] |
Get the frame position in sequence.
| R32 dpx::IndustryHeader::FrameRate | ( | ) | const [inline] |
Get the frame rate (frames / second).
| R32 dpx::IndustryHeader::Gamma | ( | ) | const [inline] |
Get the applied gamma correction.
| U32 dpx::IndustryHeader::HeldCount | ( | ) | const [inline] |
Get the how many sequential frames for which to hold current frame.
| R32 dpx::IndustryHeader::HorizontalSampleRate | ( | ) | const [inline] |
Get the clock rate at which samples were aquired.
| R32 dpx::IndustryHeader::IntegrationTimes | ( | ) | const [inline] |
Get the temporal sampling rate of television cameras.
| U8 dpx::IndustryHeader::Interlace | ( | ) | const [inline] |
Get the interlace (0 = noninterlace, 1 = 2:1 interlace).
| void dpx::IndustryHeader::Reset | ( | ) |
Reset class to initial state.
Reimplemented in dpx::Header.
| U32 dpx::IndustryHeader::SequenceLength | ( | ) | const [inline] |
Get the total number of frames in sequence.
| void dpx::IndustryHeader::SetBlackGain | ( | const R32 | bg | ) | [inline] |
Set the gain applied to signals below the breakpoint.
| bg | value |
| void dpx::IndustryHeader::SetBlackLevel | ( | const R32 | bl | ) | [inline] |
Set the reference black level.
| bl | value |
| void dpx::IndustryHeader::SetBreakPoint | ( | const R32 | bp | ) | [inline] |
Set the breakpoint which gamma is applied.
| bp | value |
| void dpx::IndustryHeader::SetFieldNumber | ( | const U8 | fn | ) | [inline] |
Set the field number of the video decoded.
| fn | field number |
| void dpx::IndustryHeader::SetFileEdgeCode | ( | const char * | edge | ) |
Set the film edge code information that is machine readable.
| edge | buffer with film edge code information |
| void dpx::IndustryHeader::SetFormat | ( | const char * | fmt | ) | [inline] |
Set the format (e.g., Academy).
| fmt | buffer with format information |
| void dpx::IndustryHeader::SetFrameId | ( | const char * | id | ) | [inline] |
Set the user-defined frame identification.
| id | buffer with frame identification |
| void dpx::IndustryHeader::SetFramePosition | ( | const U32 | pos | ) | [inline] |
Set the frame position in sequence.
| pos | position |
| void dpx::IndustryHeader::SetFrameRate | ( | const R32 | rate | ) | [inline] |
Set the frame rate (frames / second).
| rate | rate |
| void dpx::IndustryHeader::SetGamma | ( | const R32 | g | ) | [inline] |
Set the applied gamma correction.
| g | gamma |
| void dpx::IndustryHeader::SetHeldCount | ( | const U32 | count | ) | [inline] |
Set the how many sequential frames for which to hold current frame.
| count | count |
| void dpx::IndustryHeader::SetHorizontalSampleRate | ( | const R32 | rate | ) | [inline] |
Set the clock rate at which samples were aquired.
| rate | rate |
| void dpx::IndustryHeader::SetIntegrationTimes | ( | const R32 | times | ) | [inline] |
Set the temporal sampling rate of television cameras.
| times | rate |
| void dpx::IndustryHeader::SetInterlace | ( | const U8 | lace | ) | [inline] |
Set the interlace (0 = noninterlace, 1 = 2:1 interlace).
| lace | interlace value |
| void dpx::IndustryHeader::SetSequenceLength | ( | const U32 | len | ) | [inline] |
Set the total number of frames in sequence.
| len | length |
| void dpx::IndustryHeader::SetShutterAngle | ( | const R32 | angle | ) | [inline] |
Set the shutter angle of the motion picture camera.
| angle | degress of the temporal sampling aperture |
| void dpx::IndustryHeader::SetSignal | ( | const VideoSignal | vs | ) | [inline] |
Set the video sournce.
| vs | signal |
| void dpx::IndustryHeader::SetSlateInfo | ( | const char * | slate | ) | [inline] |
Set the production information from the camera slate.
| slate | buffer with slate information |
| void dpx::IndustryHeader::SetTemporalFrameRate | ( | const R32 | rate | ) | [inline] |
Set the applied gamma correction.
| rate | gamma |
| void dpx::IndustryHeader::SetTimeCode | ( | const char * | str | ) |
Set the time code.
| str | buffer with time code |
| void dpx::IndustryHeader::SetTimeOffset | ( | const R32 | offset | ) | [inline] |
Set the time offset from sync to first pixel.
| offset | time in microseconds |
| void dpx::IndustryHeader::SetUserBits | ( | const char * | str | ) |
Set the user bits.
| str | buffer with user bits |
| void dpx::IndustryHeader::SetVerticalSampleRate | ( | const R32 | rate | ) | [inline] |
Set the rate at which scanning the whole image is repeated.
| rate | rate |
| void dpx::IndustryHeader::SetWhiteLevel | ( | const R32 | wl | ) | [inline] |
Set the reference white level.
| wl | value |
| R32 dpx::IndustryHeader::ShutterAngle | ( | ) | const [inline] |
Get the shutter angle of the motion picture camera.
| VideoSignal dpx::IndustryHeader::Signal | ( | ) | const [inline] |
Get the video sournce.
| void dpx::IndustryHeader::SlateInfo | ( | char * | slate | ) | const [inline] |
Get the production information from the camera slate.
| slate | buffer to write slate information (100+1 chars) |
| dpx::U32 dpx::IndustryHeader::TCFromString | ( | const char * | str | ) | const [protected] |
| R32 dpx::IndustryHeader::TemporalFrameRate | ( | ) | const [inline] |
Get the applied gamma correction.
| void dpx::IndustryHeader::TimeCode | ( | char * | str | ) | const |
Get the time code.
| str | buffer to write time code (12 chars) |
| R32 dpx::IndustryHeader::TimeOffset | ( | ) | const [inline] |
Get the time offset from sync to first pixel.
| void dpx::IndustryHeader::UserBits | ( | char * | str | ) | const |
Get the user bits.
| str | buffer to write user bits (12 chars) |
| R32 dpx::IndustryHeader::VerticalSampleRate | ( | ) | const [inline] |
Get the rate at which scanning the whole image is repeated.
| R32 dpx::IndustryHeader::WhiteLevel | ( | ) | const [inline] |
Get the reference white level.
Black gain.
Black level.
Break point.
Film edge code count.
Field number.
Film edge code manufacturing ID code.
Film edge code type.
Format string, e.g. Academy.
Frame identification, e.g. keyframe.
Frame position in sequence.
Frame rate of original (frame / sec).
Gamma.
Held count (1 = default).
Horizontal sample rate (in Hz).
Integration time (in sec).
Interlace (0 = noninterlace, 1 = 2:1 interlace).
Film edge code offset in perfs.
Film edge code prefix.
Reserved.
Reserved.
Sequence length.
Shutter angle of camera (degrees).
Slate information.
Temporal sample rate (in Hz).
Time code.
Time offset from sync to first pixel (in ms).
User bits.
Vertical sample rate (in Hz).
Video signal.
White level.
Structure alignment padding.