Introduction to Visual Basic
Visual Basic is a modern .NET programming language. It is as powerful as any of the other programmign languiages but its code is more englich-like, making it a student/teacher favorite.
The courses are in the process of being created. Please bear with us.
Overview
Students will learn how to create projects in Visual Studio along with programming basics. Applications in this lesson will be limited to the BrainPad
object, If
statements, a While
loop and the template functions.
Install Visual Studio and TinyCLR OS extension
Skip this step if you have Visual Studio 2017 and the TinyCLR OS extension installed:
Setting Up Visual Studio for the BrainPad
Guidelines
- Prerequisites: None
- Ages 6 and up
- PC setup with Visual Studio 2017 and TinyCLR OS extension installed. Click Here
- Supplies: BrainPad and microUSB cable.
Starting a New Visual Basic Project
Connect your BrainPad to your computer using a microUSB cable.
Next Open Visual Studio select File > New > Project
and under Other Languages
select Visual Basic > TinyCLR
and choose the BrainPad Application
. Change the Location to C:\Users\<YourUsername>\Desktop\
then name the project BrainPad_Project
.
Once created, you'll be presented with a Program.vb
tab.
This file contains the default code when you first create a project. The lines in green that begin with '
are called comments, and they generally describe what the code does. Take a moment to review them. You can create your own comments in the code by typing '
before any notes you like to add. Comments don't affect how your program runs.
Comments are a great place to keep notes about how a piece of code might work. They are helpful if another programmer looks at your code, or you return to look at your own code at a later date, to help you understand what the code is doing behind the scenes.
Let's run the code to see these comments' descriptions come to life. Connect the BrainPad and press the F5
function key or the Start button in Visual Studio's toolbar.
Visual Studio will now run the code, a few things will happen and the display will now have the text "Hello!"
.
What happened exactly? Our application began by calling the BrainPadSetup()
function. This function is called one time, when the application starts, and is generally used to set things up. In this case, it executed the
BrainPad.Display.DrawTextAndShowOnScreen(0,0,"Hello!")
line instructs the display to show the text "Hello!" After BrainPadSetup()
was finished, the application called BrainPadLoop()
. Code placed inside this method is executed in an infinite loop. This is why the code that turns the LED on and then off again never stops.
The BrainPad Object
The world around us is full of objects. Every person, table or circuit board is an object. If we were to ask a person to say "hello," we'd be asking an object to perform a task. The same concept can be applied to code, specifically object-oriented programming. Like in the previous application we ran, the BrainPad was asked to control the Display
through the BrainPad
object.
The BrainPad
object itself, is a piece of code that is contained in one file. This was developed by GHI Electronics to cover the internals of the BrainPad. This enables students like you, with an easy way to control the BrainPad circuit board.
After typing BrainPad
, press the period key to get a list of all available options for this object, like LightBulb. As shown in the image below.
Now we can use the arrow keys to go up and down in the list to find the LightBulb
, and then press the period key again to see what options are the available for the LightBulb
.
Visual Studio does a great deal of simplifying the programming process by automatically listing available options for an object. They call this neat option built into Visual Studio, IntelliSense
Now that we know how to use the BrainPad
object, let's learn about controlling the LightBulb
.
The BrainPad LightBulb
LED lights are used in many different electronic devices. Here we will test the LightBulb by turning it on green, then turning it off.
Copy and paste the code from the example below into your project's `BrainPadSetup()
BrainPad.LightBulb.TurnOff()
BrainPad.LightBulb.TurnGreen()
BrainPad.LightBulb.TurnOff()
BrainPad.LightBulb.TurnGreen()
Now, press F5
on the keyboard or the Start
button in Visual Studio to run the code and you'll see the LightBulb turn green come on and stay on.
This happens because our code is executed faster than we can see. So we never see the LightBulb actually blink.
Problem Solving
Since applications execute extremely fast, we need to slow them down to figure out the problem. This way we can see what is happening or if the results are as expected. We will start by running the code one line at a time, this is called stepping in code to see what the application does at a slow speed.
Stepping in Code
With Visual Studio we can "step" through the code executing each line separately one at a time. This will help when you're trying to debug a problem. To do this we need to add what is called a breakpoint or (stop point).
A breakpoint is a spot in your program where the code will execute until it reaches the breakpoint, then Visual Studio will wait for further instructions.
To add a breakpoint at the first line of code inside of BrainPadSetup()
moving the cursor to that line and pressing the F9
key as shown below. A red circle will appear to the left of your code. This is where your code will stop and wait.
You can also click in the grey area where the breakpoints appear to either remove or create new breakpoints. Your program can have as many breakpoints as you feel necessary to diagnose any programming issues.
Press F5
key or Start
button in Visual Studio to run the application. The project will be built and deployed but then the execution will stop at the breakpoint as shown below.
Once a program reaches a breakpoint it pauses the program, right where it is in the code, as noted by the yellow arrow now in the red circle. You have several options to continue or step through you code line by line, while the program is still running.
If you press the Continue
button in the top tool bar of Visual Studio as shown below. Your program will continue, to the end of the code or the next breakpoint.
To the right of the Continue
button are more buttons for navigating the code while the program is running. Unlike the Continue
button, the Step Into
button or F11
key advances your program one line of code at a time. This can be very useful when trying to diagnose programming errors.
Adding Delays to Code
In order to see what's going on we need to add some delays in the program code. This is done by telling the BrainPad to Wait
between tasks.
Copy and paste the code from below into your project's BrainPadSetup()
BrainPad.LightBulb.TurnOff()
BrainPad.Wait.Seconds(1)
BrainPad.LightBulb.TurnGreen()
BrainPad.Wait.Seconds(1)
BrainPad.LightBulb.TurnOff()
BrainPad.Wait.Seconds(1)
BrainPad.LightBulb.TurnGreen()
Run the code by pressing F5
key or Start
button in Visual Studo and observe the LightBulb again. You should now see it turn green, then on and off twice.
Change the LightBulb Color
This works great if you only want the LightBulb green. But what if you want a different color? The LED inside the LightBulb is capable of showing more colors than just green. LED TV's use many tiny LEDS lined up in rows and columns to make up the picture you see. Like the LED lights in a TV they are capable of showing many different colors inside just one LED. First let's use code similar to the last example, only this time will change the LightBulb from green to red to blue, using built-in methods already created.
Copy and paste the code from below into your project's BrainPadSetup()
BrainPad.LightBulb.TurnOff()
BrainPad.LightBulb.TurnGreen()
BrainPad.Wait.Seconds(1)
BrainPad.LightBulb.TurnOff()
BrainPad.LightBulb.TurnRed()
BrainPad.Wait.Seconds(1)
BrainPad.LightBulb.TurnOff()
BrainPad.LightBulb.TurnBlue()
BrainPad.Wait.Seconds(1)
Even more LightBulb Colors.
Under the BrainPad.LightBulb object
you'll find the method BrainPad.LightBulb.TurnColor()
. The TurnColor(r,g,b)
method takes three arguments which describe the color of the light bulb. The first argument tells the light bulb how much red to use, the second how much green, and the third how much blue. Each number is a percentage, or a number from 0 to 100 with 0 being off and 100 being full brightness.
BrainPad.LightBulb.TurnColor(100, 100, 100)
We'll now redo the code above that turns the light from Green to Red to Blue. But this time we'll use the TurnColor()
method to achieve the exact same results.
Copy and paste the code from below into your project's BrainPadSetup()
, between the two curly braces { }
.
BrainPad.Display.DrawTextAndShowOnScreen(45, 0, "Red")
BrainPad.LightBulb.TurnColor(1, 0, 0)
BrainPad.Wait.Seconds(2)
BrainPad.Display.DrawTextAndShowOnScreen(35, 8, "Green")
BrainPad.LightBulb.TurnColor(0, 2, 0)
BrainPad.Wait.Seconds(2)
BrainPad.Display.DrawTextAndShowOnScreen(40, 16, "Blue")
BrainPad.LightBulb.TurnColor(0, 0, 5)
BrainPad.Wait.Seconds(2)
BrainPad.Display.DrawTextAndShowOnScreen(29, 24, "Yellow")
BrainPad.LightBulb.TurnColor(10, 10, 0)
BrainPad.Wait.Seconds(2)
BrainPad.Display.DrawTextAndShowOnScreen(41, 32, "Cyan")
BrainPad.LightBulb.TurnColor(0, 20, 20)
BrainPad.Wait.Seconds(2)
BrainPad.Display.DrawTextAndShowOnScreen(25, 40, "Magenta")
BrainPad.LightBulb.TurnColor(50, 0, 50)
BrainPad.Wait.Seconds(2)
BrainPad.Display.DrawTextAndShowOnScreen(37, 48, "White")
BrainPad.LightBulb.TurnColor(100, 100, 100)
BrainPad.Wait.Seconds(2)
BrainPad Buzzer
Included on your BrainPad is a Buzzer. You can use this Buzzer to program different sounds you'd like to use in your program. Like the BrainPad.LightBulb
object, you'll also have to tell the Buzzer
object to Beep
, StartBuzzing
and StopBuzzing
. Will also tell the BrainPad to Wait
in between playing and not playing as sound. When you tell the BrainPad to Wait
, the sound will play for that duration.
Copy and paste the following code into your BrainPadSetUp()
. Press F5
key or Start
button in Visual Studio.
BrainPad.Buzzer.StartBuzzing(100)
BrainPad.Wait.Seconds(1)
BrainPad.Buzzer.StopBuzzing()
You should hear a very low tone, that plays for one(1) second and stops.
Inside the BrainPad.Buzzer.StartBuzzing(100)
method you'll see that in the code we've added the value of 100. This is the frequency of the sound that will be played by the Buzzer. You can change this value to create a bunch of different sounds. Let's try changing it.
Copy and paste the following code into your BrainPadSetUp()
. Press F5
on the keyboard or Start
on the Visual Studio toolbar.
BrainPad.Buzzer.StartBuzzing(400)
BrainPad.Wait.Seconds(1)
BrainPad.Buzzer.StartBuzzing(100)
BrainPad.Wait.Seconds(1)
BrainPad.Buzzer.StopBuzzing()
First you'll hear the Buzzer make a very high sound, then a very low sound. This is what changing the frequency does to the Buzzer.
Try changing the frequency to different values and see what kind of sounds the Buzzer makes.
BrainPad Buttons
The BrainPad comes with four buttons (Up, Down, Left & Right) that can be programmed to do different things. Such as when a button is pressed the LightBulb turns on or the Buzzer makes a sound.
To accomplish this we need to use what is called an "if statement"
An if statement that will check and see if our buttons are being pressed and then execute a piece of code when they are.
If Statement
If condition Then
Execute this code;
Else
Execute this code;
End If
An if statement (or conditional statement) checks to see if a statement is true or false and then does one of two things depending on the result. The example above shows the framework of the if statement within Visual Basic.
Now we'll use the same structure in our code to detect the LEFT button being pressed.
Public Sub BrainPadSetup()
If BrainPad.Buttons.IsLeftPressed() Then
BrainPad.LightBulb.TurnGreen()
End If
End Sub
For the above code to work properly, you have to be holding the button down at the time the program starts. This is because the code within the BrainPadSetup()
method only executes once. When the program is first started. Holding down the Left button when the program starts is impractical and not very useful to a program. We need to be able to press & read the button anytime the program is running. To do this we will move the button checking if statement inside the BrainPadLoop()
method instead of the BrainPadSetup()
Public Sub BrainPadSetup()
BrainPad.LightBulb.TurnOff()
End Sub
Public Sub BrainPadLoop()
If BrainPad.Buttons.IsLeftPressed() Then
BrainPad.LightBulb.TurnGreen()
End If
End Sub
The above code first makes sure the Light Bulb is OFF and then it falls into an infinite loop, called the BrainpadLoop()
. However, this program still has an operational bug. Run the program and test it. The green light will be off when the program runs and then once the LEFT button is pressed the green light will turn on. That is all good so far, but when the button is released, the green light stays on. Can you guess why? Try stepping in the code to see what happens when the button is pressed and when it is not pressed.
Computers are strict at following orders. In the previous examples, the Light Bulb never turned off because we actually never told the program to turn the green light off. This means we have to tell the program to turn the light on when the button is pressed and we also have to tell it to turn the light off when the button is not pressed
Public Sub BrainPadSetup()
BrainPad.LightBulb.TurnOff()
End Sub
Public Sub BrainPadLoop()
If BrainPad.Buttons.IsLeftPressed() Then
BrainPad.LightBulb.TurnGreen()
End If
If Not BrainPad.Buttons.IsLeftPressed() Then
BrainPad.LightBulb.TurnOff()
End If
End Sub
The keywords If Not
before the BrainPad.Buttons.IsLeftPressed()
, represents if the button is not pressed. Now when you run it, not pressing the button will turn/keep the LightBulb off.
Else Statement
The else statement is always used with the if statement and has a very useful purpose that would be perfect for the last example. In the previous code example, we needed to check if the Left button was being pressed or not. We can simplify this by catching when an if statement isn't true using else as shown in the code below.
Public Sub BrainPadSetup()
BrainPad.LightBulb.TurnOff()
End Sub
Public Sub BrainPadLoop()
If BrainPad.Buttons.IsDownPressed() Then
BrainPad.LightBulb.TurnGreen()
Else
BrainPad.LightBulb.TurnOff()
End If
End Sub
The Else-If Statement
The else-if statement closely resembles the else statement but works like both an if statement and an else statement together. Unlike the else statement by itself, the else-if statement checks to make sure its condition is true before executing the code below its statement, rather then just executing it by default.
An example of the similar code as earlier but using an "else-if statement" instead.
Public Sub BrainPadSetup()
BrainPad.LightBulb.TurnOff()
End Sub
Public Sub BrainPadLoop()
If BrainPad.Buttons.IsLeftPressed() Then
BrainPad.LightBulb.TurnGreen()
ElseIf BrainPad.Buttons.IsRightPressed() Then
BrainPad.LightBulb.TurnRed()
Else
BrainPad.LightBulb.TurnOff()
End If
End Sub
Logical Operators -- And & Or
These are typically used within the if statement. Let's assume in our previous example you wanted to press the Left button to make the LightBulb Green and when you press the Right button you want to make the LightBulb Red. If neither button is pressed the LightBulb is off. To accomplish this you'll need to use the key word And to check and make sure both buttons are Not pressed, and turn off the LightBulb.
In the code example below, in our third if statement, you can see where we ask the question, "Is the Right button pressed And is the Left button pressed?" Both of these condition must be met in order to execute the code below the statement. When using the Or keyword, only one of the conditions need to be met to run the code below the statement.
Public Sub BrainPadSetup()
BrainPad.LightBulb.TurnOff()
End Sub
Public Sub BrainPadLoop()
If BrainPad.Buttons.IsLeftPressed() Then
BrainPad.LightBulb.TurnGreen()
End If
If BrainPad.Buttons.IsRightPressed() Then
BrainPad.LightBulb.TurnRed()
End If
If BrainPad.Buttons.IsLeftPressed() And BrainPad.Buttons.IsRightPressed() Then
BrainPad.LightBulb.TurnOff()
End If
End Sub


We're sorry but stack-monitor doesn't work properly without JavaScript enabled. Please enable it to continue.
Loading...


Ukraine Navy chief says Russia-seized naval boats to arrive in Ukraine on Nov 20-21 (Video)
The vessels are now on their way to the Ukrainian port city of Odesa.
Commander of the Ukrainian Navy Ihor Voronchenko has said the Ukrainian naval boats seized by the Russian Federation near the Kerch Strait on November 25, 2018, will arrive at Ukrainian ports on November 20-21.
"[They will arrive] approximately on November 20-21," he told the Ukrainian news agency RBC-Ukraine.
UNIAN memo. On the morning of November 25, 2018, Russia blocked the passage to the Kerch Strait for the Ukrainian tugboat "Yany Kapu" and two armored naval boats "Berdyansk" and "Nikopol," which were on a scheduled re-deployment from the Black Sea port of Odesa to the Azov Sea port of Mariupol. All 24 crew members on board were captured and charged with "illegal border crossing" under Part 3 of Article 322 of the Criminal Code of Russia (imprisonment for up to six years). Later the Ukrainian sailors were freed and returned to Ukraine in a major prisoner swap between Ukraine and Russia on September 7, 2019.
The ITLOS on May 25 ordered Russia to immediately release the three vessels and return them under Ukrainian control.
Ukrainian Foreign Minister Vadym Prystaiko said on October 11 that "there is interaction" between Russia and Ukraine and the process of returning the ships captured by Russia was "at the final stage."
On November 17, Russia began moving the Ukrainian naval boats from the Genmol water area in Russian-occupied Kerch before their handover to Ukraine.
The vessels are now on their way to the Ukrainian port city of Odesa.


Wisconsin Assembly passes suicide prevention bills
MADISON, Wis. (AP) - The Wisconsin Assembly has passed a package of eight bills designed to prevent suicides.
Democrats argued the measures passed Thursday aren't as effective as gun control measures they refused to debate, including one that would allow judges to confiscate guns from people determined to be a threat to themselves or others.
The bills all passed with broad, bipartisan support.
One of them would create a grant program to pay gun shop owners to store guns voluntarily turned over by gun owners.
Another creates a new suicide prevention program within the state Department of Health Services that would hand out about $250,000 in suicide prevention grants a year.
Another would require schools and universities that issue student identification cards to include contact information for suicide prevention and crisis support hotlines on the cards.
In total, the bills would spend about $1.5 million over two years on a variety of suicide prevention initiatives.
They now head to the Senate.


Our bank app is still missing one important feature: the possibility to enter new transactions. Using everything that you’ve learnt in the four previous lessons, implement an “Add transaction” dialog:
hidden
property for that, or CSS classes)
Look at the server API specifications to see which API you need to call and what is the expected JSON format.
Here’s an example result after completing the assignment:
| Criteria | Exemplary | Adequate | Needs Improvement |
|---|---|---|---|
| Adding a transaction is implemented completely following all best practices seen in the lessons. | Adding a transaction is implement, but not following the best practices seen in the lessons, or working only partially. | Adding a transaction is not working at all. |


--- layout: post mathjax: true comments: true date: 2012-12-15 title: [Project Euler] #16 Solution excerpt: | This page presents a Ruby solution to Project Euler Problem 16. tags: - project euler problem 16 solution - project euler problem 16 answer - project euler problem 16 ruby ---
\(2^{15} = 32768\) and the sum of its digits is \(3 + 2 + 7 + 6 + 8 = 26\).
What is the sum of the digits of the number \(2^{1000}\)?
1366


--- layout: post title: Computer LAB Management date: 2012-08-09 02:38:00 summary: We have two labs with 16 computers each. In each computer we have installed the latest version of Edubuntu (Linux) with almost the same configuration (partitions, installed packages, etc.). It is a bit of hard work to manage all of them one by one, so we have tried to find workarounds to manage all of them at once. There are different ways and solutions to accomplish this in Linux, but we have adopted a simple and practical one, suitable for our case. tags: [Ubuntu, Linux, System Administration] ---
We have two labs with 16 computers each. In each computer we have installed the latest version of Edubuntu (Linux) with almost the same configuration (partitions, installed packages, etc.). It is a bit of hard work to manage all of them one by one, so we have tried to find workarounds to manage all of them at once. There are different ways and solutions to accomplish this in Linux, but we have adopted a simple and practical one, suitable for our case.
First of all, it is better to set a static IP to each computer, instead of letting them to get a dynamic (random) IP by DHCP. This is required for accessing and managing them remotely. It can be done like this:
network-manager
service, because
it will try to configure automatically the network interface:
apt-get purge network-manager
/etc/network/interfaces
like this:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address <IP_ADDRESS> netmask <IP_ADDRESS> gateway <IP_ADDRESS> dns-nameservers <IP_ADDRESS> <IP_ADDRESS>
sudo /etc/init.d/networking restart
Note: It is even better if we configure the DHCP server to give always the same IP to the same computer, based on the MAC of its network interface. However the method above is quite ok.
In order to run commands remotely through ssh, without entering a password, we can generate a public-private key pair, and then put the public key on each computer.
sudo su ssh-keygen
/root/.ssh/authorized_keys
:
scp id_rsa.pub<EMAIL_ADDRESS>ssh<EMAIL_ADDRESS>mkdir .ssh chmod 700 .ssh cat id_rsa.pub >> .ssh/authorized_keys chmod 600 .ssh/authorized_keys rm id_rsa.pub exit
Now we can run without password commands like this:
ssh <IP_ADDRESS> ls -al ssh <IP_ADDRESS> apt-get update ssh <IP_ADDRESS> apt-get upgrade etc.
sudo apt-get install mssh
mssh <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> mssh <IP_ADDRESS>{1,2,3,4,5,6,7,8,9}
iplist_lab1.txt
, which looks like this:
<IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> . . . . .
mssh $(cat iplist_lab1.txt) or mssh $(<iplist_lab1.txt)
We need the MAC addresses of each PC in order to turn them ON remotely, from the LAN. We may also need them later to set up the DHCP server so that each computer gets a fixed IP.
In order to get them remotely, first we ping each IP, then we get
the neighbor list with ip neigh
, and finally we process it to
get a clean list:
for IP in $(cat iplist_lab1.txt); do ping -c 2 $IP; done ip neigh > mac_list.txt gawk '{print $1 " " $5}' mac_list.txt > mac_list_1.txt sort mac_list_1.txt > mac_list_lab1.txt rm mac_list_1.txt
The final list mac_list_lab1.txt
should be something like this:
<IP_ADDRESS> 2c:41:38:a9:82:ef <IP_ADDRESS> 2c:41:38:a9:82:7c <IP_ADDRESS> 2c:41:38:a5:94:f2 <IP_ADDRESS> 2c:41:38:a5:94:d7 <IP_ADDRESS> 2c:41:38:a5:98:66 . . . . .
Almost all of the computers nowadays support a feature called Wake-On-LAN (or WOL). It can be used to turn on a PC from the LAN by sending it a special packet. Let's see how we can use it.
sudo apt-get install wakeonlan
mac_list_lab1.txt
:
gawk '{print $2 " " $1}' mac_list_lab1.txt > lab1.wol
The file lab1.wol
looks like this:
2c:41:38:a9:82:ef <IP_ADDRESS> 2c:41:38:a9:82:7c <IP_ADDRESS> 2c:41:38:a5:94:f2 <IP_ADDRESS> 2c:41:38:a5:94:d7 <IP_ADDRESS> 2c:41:38:a5:98:66 <IP_ADDRESS> . . . . .
wakeonlan
with this list as a parameter:
wakeonlan -f lab1.wol
A PC can be turned OFF using the command poweoff
remotely, like
this:
sudo su for IP in $(<iplist_lab1.txt); do echo --$IP; ssh $IP poweroff; done
Here, iplist_lab1.txt
is a list with IP-s of all the PC-s, like this:
<IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS> . . . . .
The computers in LAB1 initially were installed with user student as administrative user. These steps show how to add another administrative user and how to remove the administrative privileges from the user student.
adduser administrator
adduser administrator adm adduser administrator dialout adduser administrator cdrom adduser administrator plugdev adduser administrator lpadmin adduser administrator admin adduser administrator sudo
deluser student adm deluser student admin deluser student sudo
The initial configuration of the computers in LAB1 was to autologin
to user student. In order to remove the autologin, edit
/etc/lightdm/lightdm.conf
and leave empty autologin-user=


Albania
Select Friend
English(UK)
English(USA)
Arabic
Armenian
Azerbaijan
Afrikaans
Basque
Belarusian
Bulgarian
Bosnian
Welsh
Vietnamese
Hungarian
Hatian(Creole)
Galician
Dutch
Greek
Georgian
Danish
Yiddish
Indonesian
Irish
Italian
Icelandic
Spanish
Kazakh
Catalan
Kyrygz
Chinese
Korean
Latin
Latvian
Lithuanian
Malagasy
Malay
Maltese
Macedonia
Mongolian
German
Norwegian
Persian
Polish
Portuguese
Romanian
Russian
Serbian
Slovakian
Slovenian
Swahili
Tajik
Thai
Tagalog
Tatar
Turkish
Uzbek
Ukrainian
Finish
French
Croatian
Czech
Swedish
Estonian
Japanese


Small Popover
Popover Header
This is the popover body. Useful information goes here.
Popover Footer
Medium Popover
Popover Header
This is the popover body. Useful information goes here.
Popover Footer
Large Popover
Popover Header
This is the popover body. Useful information goes here.
Popover Footer


Pricing & Plans
Free, Premium and Specialized Hosting Plans Available!
Super Premium Plan
$4.99/Month
Unlimited Disk Space
20 GB Bandwidth
100 Email Accounts
Unlimited Addon Domains
20 Addon & 20 Sub-Domain
Considerable Server Power
6 Free Domains
Starter Premium
$19.99/Year
5 GB Disk Dedicated Space
250 GB Bandwidth
5 Email Accounts
Unlimited Addon Domains
20 Addon & 20 Sub-Domain
Considerable Server Power
2 Free Domains


May/June 2016 Exit Survey
Thanks for joining in the first-ever Bluesoxx program,
"Introduction to Computer Science!"
Our organization could not exist without your
participation, and your feedback is critical to growing
and improving our offerings for future cohorts.
Survey responses are all anoymous.


{% extends "layout.html" %} {% from 'macros/basic.html' import octicon without context %} {% block body %}
You are trying to access resource which is private and you don't have permissions for that!
Go to the start {% if not current_user.is_authenticated %} or {{ octicon('mark-github') }} join now {% endif %} .


Version Check:
Compatibility:
All Devices.
9.3.3 - 13.4.1
uncover, Odyssey, checkRa1n, Chimera, Pangu, Phoenix, & more !
Cydia, Sileo, Zebra
CSources2 ( Stable )
-
CSources2 is a Cydia Sources Manager that allows full control over your sources.
-
- Add as many sources as you want.
- Sileo Support.
- Zebra Support.
- Disable/Enable or delete them.
- Add notes.
- Check if Source is active.
- Package details.
- Import cydia.list, ????.list file , Web Link.
- Backup Sources via iTune , iCloud , Manually.
- Sync between devices.
- Auto List feature. & More
- Full Docs : CSources2 Blog
- Please review all notes and documentation before contacting the developer.
- Contact Dev via: In App
- CSources2 / Info Page / Contact.
In this version:
Reporting Bugs:
Donate:


Tu peux copier coller ton text dans la zone ou À VENIR : upload un PDF ici
Hi, my name is Marin Mouscadet and I've developed this website in order to help people with their text analysis!
Do not hesitate to contact me if you have any suggestion or a problem.


Cover Page
Table of Contents
About Page
Family Tree
This is to be a website that will contain the book "Myths and Legends of Ancient Greece and Rome" by E.M. Berens.
ca. 540 BCE, depicting Two Warriors Fighting Over a Corpse


---
title: Forward Actions
layout: page
pageOrder: 4.10
section: 'Mock Server'
subsection: false
---
Forward actions contain:
- host - the host to forward to i.e. www.mock-server.com
- port - the port to forward to, this defaults to 80 if not specified
- scheme - the scheme to use, either HTTP or HTTPS, this defaults to HTTP if not specified
Forward actions can be further controlled using:
- the number of times the request is forwarded (including unlimited)
- a time to live the response will be continued to be returned (including unlimited)
Java
{% include_subpage creating_expectations_java_forward_actions.html %}
JavaScript
{% include_subpage creating_expectations_javascript_forward_actions.html %}


You are great at making plans, but life doesn’t respect that. When life throws something unexpected at you, regardless of what it is, it always leaves you with one question: How?
How am I going to get all of my laundry done when I have 2 tests tomorrow?
How am I supposed to shovel snow when my son’s basketball game is in 30 minutes?
How am I going to make this month’s rent after the unexpected hike of my utilities?
We are always looking for better ways to solve these daily inconveniences, and at the beginning of March, Listant will provide the solution to these daily inconveniences.
Here is an example of how Jason used Listant when he ran into some unexpected issues the day of his daughter’s graduation party:
- Jason was just informed that the catering delivery truck has broken down, and he now needs to drive and pick up the food himself. How will he be able to do this when he still needs to mow his lawn? He thinks of the best possible solution: Listant.
- Jason signs in to Listant and is instantly ready to post his job.
- Jason clicks post new, enters the jobs details, and posts his job into the community marketplace in under 1 minute.
- Everyone in Jason’s community who is looking for lawn mowing jobs is instantly notified. His job can also be viewed in Listant’s real time job board. Jason quickly receives 3 different applications and chooses one: Mike
- After communicating through a private chat, it is decided that Mike will be at Jason’s house within the hour.
- Mike completes the job and marks it complete. Jason then pays and reviews Mike.
- Mike then reviews Jason, and the transaction is complete.
This is just one example of how Listant can rescue you from a jam. The sky's the limit for Listant, and when you find yourself asking how, Just Listant!
Download TODAY in both the Apple & Google Play stores!


The dkanr
package is an R client to the DKAN REST API. dkanr
implements all the methods available via the DKAN REST API and DKAN datastore API. Additionnally, it provides a few wrapper functions to facilitate interacting with the DKAN API from R
.
In this brief introduction, we will see how to download data from a specific data set. In the process, we will see how to:
To set-up a connection without authentication, you just need the site URL.
If authentication is required, you will also need to provide a valid username and password.
You can verify that you are successfully connected by printing your connection information.
## <dkanr settings>
## Base URL: https://data.louisvilleky.gov
## Cookie:
## Token:
list_nodes_all()
While exploring the offerings of a catalog, you can retrieve all the available datasets with a simple query.
# Get a list of all datasets
resp <- list_nodes_all(filters = c(type = 'dataset'), as = 'df')
# Print the first 10 datasets
resp %>%
select(nid, title, uri) %>%
arrange(title) %>%
head(n = 10)
## # A tibble: 10 x 3
## nid title uri
## <chr> <chr> <chr>
## 1 8076 311 Service Requests https://data.louisvilleky.gov/api/data~
## 2 4526 ABC License Data https://data.louisvilleky.gov/api/data~
## 3 4926 ALL Checks https://data.louisvilleky.gov/api/data~
## 4 2686 Abandoned Urban Property https://data.louisvilleky.gov/api/data~
## 5 5566 Absenteeism https://data.louisvilleky.gov/api/data~
## 6 2781 Account Breakdown by Prog~ https://data.louisvilleky.gov/api/data~
## 7 2166 Active Contractors https://data.louisvilleky.gov/api/data~
## 8 8216 Active Permits https://data.louisvilleky.gov/api/data~
## 9 4496 Aerial Photogrids https://data.louisvilleky.gov/api/data~
## 10 5296 Air Emission Sources https://data.louisvilleky.gov/api/data~
Say you are interested in a specific dataset from the catalog, for instance, the “Active Permits” dataset. You can easily retrieve this dataset metadata using the dataset node ID.
# Print only the "Active Permits" dataset information
resp %>%
filter(title == 'Active Permits') %>%
select(nid, title, uri, type)
## # A tibble: 1 x 4
## nid title uri type
## <chr> <chr> <chr> <chr>
## 1 8216 Active Permi~ https://data.louisvilleky.gov/api/dataset/nod~ datas~
## <DKAN Node> #8216
## Type: dataset
## Title: Active Permits
## UUID: 7e83b96e-3b53-4fc5-9a4c-32af30571787
## Created/Modified:<PHONE_NUMBER> /<PHONE_NUMBER>
## [1] "vid" "uid"
## [3] "title" "log"
## [5] "status" "comment"
## [7] "promote" "sticky"
## [9] "vuuid" "nid"
## [11] "type" "language"
## [13] "created" "changed"
## [15] "tnid" "translate"
## [17] "uuid" "revision_timestamp"
## [19] "revision_uid" "body"
## [21] "field_additional_info" "field_author"
## [23] "field_contact_email" "field_contact_name"
## [25] "field_data_dictionary" "field_frequency"
## [27] "field_granularity" "field_license"
## [29] "field_public_access_level" "field_related_content"
## [1] "Active Permits"
Once you have identified a dataset of interest, you will probably want to download actual data. Multiple data files and documents may be attached to a single dataset, so you’ll first need to list all the resources (data files, and other type of documents) that are linked to the dataset you are interested in.
Here, a single resource is attached to the “Active Permits” dataset
## [1] "8221"
You can then use the resource node ID to retrieve its metadata.
## <DKAN Node> #8221
## Type: resource
## Title: Active Permits
## UUID: 65c4458b-1804-4bf2-b647-b2744648f647
## Created/Modified:<PHONE_NUMBER> /<PHONE_NUMBER>
Data can then be dowloaded either as
Retrieve the resource URL from the resource metadata
## [1] "https://data.louisvilleky.gov/sites//default//files//ActivePermits_7.csv"
Some data files may be directly queried through the API. Only data files that have been imported into the DKAN datastore can be queried through the API.
First, you’ll need to check if the data file you are interested in is available from the DKAN datastore
## [1] TRUE
If this is the case, you’ll be able to retrieve data directly from the datastore. In order to do so, you’ll have to use the resource UUID (Just another unique ID number)
ds_search_all(resource_id = metadata_rs$uuid, as = 'df') %>%
select(PERMITNUMBER, PERMITTYPE, STATUS, SQUAREFEET)
## # A tibble: 100 x 4
## PERMITNUMBER PERMITTYPE STATUS SQUAREFEET
## <chr> <chr> <chr> <chr>
## 1 54912 Building Permit Issued 842
## 2 106485 Building Permit Issued 1300
## 3 107817 Building Permit Issued 487
## 4 113132 Building Permit Issued 3256
## 5 110301 Building Permit Issued 400
## 6 115478 Building Permit Issued 2938
## 7 281965 Building Permit Issued 1050
## 8 281380 Building Permit Issued 360
## 9 283077 Building Permit Issued 1225
## 10 278714 Building Permit Issued 14710
## # ... with 90 more rows


UVAbstractLogger Class Reference
| Inherits from | NSObject |
|---|---|
| Conforms to | UVLogger |
| Declared in | UVLog.h |
Overview
The UVLogger
protocol specifies that an optional formatter can be added to a logger.
Most (but not all) loggers will want to support formatters.
However, writting getters and setters in a thread safe manner, while still maintaining maximum speed for the logging process, is a difficult task.
To do it right, the implementation of the getter/setter has strict requiremenets:
- Must NOT require the logMessage:
method to acquire a lock.
- Must NOT require the logMessage:
method to access an atomic property (also a lock of sorts).
To simplify things, an abstract logger is provided that implements the getter and setter.
Logger implementations may simply extend this class,
and they can ACCESS THE FORMATTER VARIABLE DIRECTLY from within their logMessage:
method!
logFormatter
Formatters may optionally be added to any logger.
@property (nonatomic, strong, nullable) id<UVLogFormatter> logFormatter
Discussion
If no formatter is set, the logger simply logs the message as it is given in logMessage, or it may use its own built in formatting style.
Declared In
UVLog.h
loggerQueue
Each logger is executed concurrently with respect to the other loggers. Thus, a dedicated dispatch queue is used for each logger. Logger implementations may optionally choose to provide their own dispatch queue.
@property (nonatomic, DISPATCH_QUEUE_REFERENCE_TYPE) dispatch_queue_t loggerQueue
Declared In
UVLog.h
onGlobalLoggingQueue
Return YES if the current logger uses a global queue for logging
@property (nonatomic, readonly, getter=isOnGlobalLoggingQueue) BOOL onGlobalLoggingQueue
Declared In
UVLog.h
onInternalLoggerQueue
Return YES if the current logger uses the internal designated queue for logging
@property (nonatomic, readonly, getter=isOnInternalLoggerQueue) BOOL onInternalLoggerQueue
Declared In
UVLog.h


Mac Os X 10 10 Yosemite Free Download Dmg Webforpc
Mac Os X 10 10 Yosemite Now Available As A Free Download 9to5mac
Niresh Mac Osx Yosemite 10 10 1 Dvd Iso Free Download
Os X Yosemite Available Now As A Free Download Osxdaily
Os X 10 10 Download Dmg Jrrenew
Mac Os X 10 10 1 Yosemite Download Iso In One Click Virus Free
Yosemite 10 10 5 Update Download For Mac Free
Apple Mac Os X Yosemite Download 10 10 Get It Here Just Apple Stuff
Download Mac Os X Yosemite 10 10 Iso Directly For Free Download Free Iso
Mac Os X 10 10 0 Download Moxainter
Mac Os X 10 10 Iso Download Home Facebook
Download Mac Os X 10 10 5 Yosemite Official For Macos X
Download Final Os X Yosemite 10 10 Xcode 6 1 Itunes 12 0 1 Setup Update Dmg Files Via Direct Links
Os X Yosemite Download Via Torrent Mac App Store
Download Os X Yosemite 10 10 5 Combo Update
Download Yosemite Dmg Installer Os X 10 10 5 Dmg Peatix
Download Niresh Mac Osx Yosemite 10 10 1 Iso Free All Pc World
Download Install Hackintosh Os X Yosemite 10 10 1 On Windows Pcs Laptops As Dual Boot
Download Mac Os X Yosemite 10 10 Iso Dmg File Direct For Free Isoriver
Download Mac Os 10 10 5 Galaxyfasr
Mac Os X Yosemite 10 10 1 Download Peatix
Download Macos X 10 4 10 15 Original All Versions Mac Softwares Apple Hint
How To Get The Public Beta Preview Of Mac Os X 10 10 Yosemite On Your Mac Mac Tips Gadget Hacks
Apple Mac Os X 10 10 Yosemite Download Dmg Free Winwares
Icq For Mac Os X 10 5 Download Plusclips
Amazon Com Adobe Flash Player 16 For Mac Os 10 6 10 10 Download Software
Mac Os X 10 10 Beta 5 Download Peatix
Mac Os X Yosemite Free Download Latest Iso Dmg 10 10
Mac Os X 10 10 5 Yosemite Beta 2 Is Now Available For Download
How Can I Download A Newer Yosemite Installer Ask Different
How To Download Macos Installers For New Old Versions Osxdaily


AC Service Not Connected
Welcome
Pinned by Shane
Thanks for downloading the official Viquity League Client! We're still working on it so please be patient with us and if you find any issues please report them to<EMAIL_ADDRESS>The Viquity Forum is Now Up!
Oct 1, 2017 by Shane
The Viquity Forum is now live! Come hang out with the community and become a member today!


Page 1
This is my 2nd page on html
Yo you got this as the
first
web page.
Yo you got this as the
first
web page.
Yo you got this as the
first
web page.
Yo you got this as the
first
web page.
Yo you got this as the first web page.
this is h1 tag
this is h2 tag
this is h3 tag
this is h4 tag
this is h5 tag


System temporary table spaces hold temporary data required by the database manager while performing operations such as sorts or joins.
These types of operations require extra space to process the results set. A database must have at least one system temporary table space; by default, one system temporary table space called TEMPSPACE1 is created at database creation time. IBMTEMPGROUP is the default database partition group for this table space.
User temporary table spaces hold temporary data from tables created with a DECLARE GLOBAL TEMPORARY TABLE statement. To allow the definition of declared temporary tables, at least one user temporary table space should be created with the appropriate USE privileges. USE privileges are granted using the GRANT statement. A user temporary table space is not created by default at database creation time.
It is recommended that you define a single SMS temporary table space with a page size equal to the page size used in the majority of your regular table spaces. This should be suitable for typical environments and workloads. However, it can be advantageous to experiment with different temporary table space configurations and workloads. The following points should be considered:
You can also reorganize without a temporary table space by reorganizing the table directly in the target table space. Of course, this type of reorganization requires that there be extra space in the target table space for the reorganization process.


If you happen to find yourself way out in the deep waters of debt, you should know that bankruptcy may be an option for rescuing yourself and getting a fresh start. Think of it as consumer protection for debtors, a lifeline in a financial contest that is generally rigged against you. As with many sets of legal codes, it reflects the society that created it and an economic system predicated on maximizing profit regardless of the human consequences. The protections offered by bankruptcy are anything but clear or straightforward. But bankruptcy can be more desirable than pursuing private negotiations with uncooperative creditors, going through sketchy debt management schemes, or refusing to pay and trying to go completely off-grid, especially if you can find a trustworthy legal representative to guide you through the process.
This chapter will recount some of the historical developments in this avenue of debt forgiveness, explain the two most common options for filing individual bankruptcy in the United States (Chapter 7 and Chapter 13), and clarify what possibilities bankruptcy may offer to you and where you can learn more about it. Bankruptcy as a form of debt relief is not just for big corporations like Enron, WorldCom, and Lehman Brothers; it’s a legal and legitimate form of debt relief that all debt resisters should be aware of.
Disclaimer
The information contained in this chapter is an attempt to present general information about bankruptcy, its background in the United States, as well as a basic understanding of bankruptcy’s current legal provisions. We are not lawyers and cannot offer personal legal counsel on how to make bankruptcy work in your case. While it is possible to file for bankruptcy without a lawyer, there is no substitute for a trusted financial advisor or legal counsel who will act in your interests, although such people are few and far between.
A Short History of Debt Forgiveness
Debt forgiveness has a long history. The Bible is full of passages about jubilees and other cancellations of debt. The Qur’an also advocates debt forgiveness for those who cannot pay: “If the debtor is in difficulty, grant him time till it is easy for him to repay. But if ye remit it by way of charity, that is best for you if ye only knew” (2:280). Of course not every society has protected its citizen debtors—in ancient Greece, debtors unable to pay often lost their entire families to debt slavery.
On the whole, bankruptcy in the United States has been used by businesses more than individuals. Bankruptcy laws in favor of businesses were repeatedly passed and repealed throughout the nineteenth century. The first truly modern bankruptcy laws in the United States appeared during periods of “economic downturn” in the 1890s and 1930s. These laws were largely about saving companies and businesses deeply in debt. Businesses in the United States have consistently taken advantage of bankruptcy, especially in recent years, as companies have used it as a pretext to get out of pension obligations and to break union contracts.
But starting in 1978, the United States passed a law that made it significantly easier for individuals and families to get similar benefits and protections. In the 1980s, people increasingly took advantage of this potential liberation from debt. In the 1970s, just over one in a thousand Americans filed for bankruptcy every year. That number began to rise dramatically over the course of the next decade. By 1990, the rate had tripled to three in a thousand; by the late 1990s, it was up to five.
A Tale of Two Chapters
There are two chapters under which you can file for bankruptcy as an individual in the United States, named after relevant sections of the federal bankruptcy code.
Chapter 7 bankruptcy: Wipe out all of your debts
Chapter 7, often called “straight bankruptcy,” is the simplest and quickest form of bankruptcy available. It discharges or wipes away all consumer and medical debt, as well as other unsecured debts such as payday loans. However, student loans and some tax debts cannot be discharged in bankruptcy.
Filing for Chapter 7 does not mean that you must give up your home
or car, if you can continue paying the debts on them or claim them
as exempt property when you file. Exempt property includes home,
car, retirement accounts, and household furnishing, although the
maximum value of any exemption depends on the exemption law of the
state in which you file. Generally, you cannot claim an exemption
for property that is security for a loan (unless you successfully
remove the lien on the property). Consider the following details of
the major federal exemptions:
- Home: You can claim the federal homestead exemption for up to $22,975 of equity in your home per owner, after taking into account the cost of sale (generally 10%). You can also claim state exemptions, which are more favorable in some states than others (for example, in New York, you can protect up to $150,000 per owner, and in Florida, your home is exempt without limit).
- Car: You can claim a federal exemption of up to $3,675 of equity in your car.
- Retirement accounts: Retirement accounts (401ks, IRAs, and Roth IRAs) are, for all practical purposes, fully exempt.
- Household goods: You can claim a federal exemption of up to $12,250 per owner of household goods, furnishings and appliances, clothes, and other material possessions.
- Wild card: You can claim a federal exemption of $1,225 plus $11,500 of any unused portion of your homestead exemption for anything you own.
(Federal bankruptcy exemptions are adjusted every three years; the information above is accurate until March 31, 2016.) Any property that does not fit under these exemptions is sold off to pay the creditors. Filing for Chapter 7 gives you a way of becoming debt-free without becoming penniless.
Chapter 13 bankruptcy: Repay a portion of your debts
With a Chapter 13 bankruptcy, disparate debts are consolidated into a single sum owed to the bankruptcy court, and a rigorous payment plan is set up—usually lasting three to five years. This can be thought of as a “wage earner bankruptcy.” It is intended for a situation where you have a home or a car and you have fallen behind on the payments—not where you couldn’t afford the home or car in the first place prior to filing. In short, Chapter 13 strips away your unsecured debts in order to direct your income toward saving the home or car that you need in order to go on with life. It also requires that all creditor efforts to collect your debt (both secured and unsecured) must stop. Foreclosure actions are also suspended (though they can be resumed once the case is completed). Historically, many debtors in Chapter 13 fail to comply with their payment plan during the payback period, which tragically leads to more debt. But in the best-case scenario, filing for Chapter 13 can offer some much needed breathing room from other debts while you catch up on payments for your necessary property.
The creditors fight back
The credit industry was alarmed by the boom in bankruptcies over the last thirty years, and it began a vast lobbying and propaganda campaign to tighten up the bankruptcy code. A “moral rot” was said to be spreading throughout the culture, and the old moral line about paying your debts was falling by the wayside along with other “traditional values.”
Industry lobbying to cut back bankruptcies came up short at first. During the Clinton years, bankruptcy overhaul bills were introduced but never made it all the way through Congress. The efforts finally paid off in 2005, when George W. Bush signed the preposterously named Bankruptcy Abuse Prevention and Consumer Protection Act (BAPCPA), a heavily pro-creditor piece of legislation that made it harder and more expensive to file for bankruptcy.
The reform has been very good for creditors. Although there was a spike in bankruptcy filings in the year or two leading up to the passage of the bill—nearly seven out of every thousand Americans filed in 2005, an all-time record—filings then collapsed to just two per thousand in 2006. Filings soon began rising again, but even during the Great Recession of 2008, the filing rate never broke above five per thousand, essentially where it was in the late 1990s, when both the unemployment rate and debt levels were well below where they’ve been in recent years. A study by the Federal Reserve Bank of New York suggests that tightening up the bankruptcy code increased the number of foreclosures because many debtors were denied this avenue of relief.
The battle over Chapter 13
Before BAPCPA, you had the option of choosing which chapter to file under. Under the guise of “abuse prevention,” however, the new law requires that you pass a “means test” if your household is above your state’s median income and you wish to file for Chapter 7. The means test is a formula based on your disposable income after certain expenses. (Means test calculators are available on the internet.) State medians run from about $37,000 in Mississippi to $66,000 in Connecticut, with the national median around $50,000. Of course, you could have an above-median income in an expensive region like New York or San Francisco and not be living large at all. Despite the restrictions on Chapter 7 filings, they still account for about 70% of all bankruptcy cases, which isn’t very different than the pre-reform share.
The 2005 reform also increased the amount of documentation required to file: tax returns, pay stubs, household budget information, and so on. Because of that, and the increased amount of time that lawyers now have to devote to a bankruptcy filing, fees have risen dramatically. The new law also requires you to complete a counseling course offered by a government-certified provider. All of this has contributed to lower filing rates than there would have been otherwise.
It is clear that in the name of “abuse prevention,” the creditors
and the government are forcing people to either not file for
bankruptcy at all, or if they do, to file for Chapter 13. And it is
not hard to see why. Unlike Chapter 7, creditors often recover up to
30% of the original loan with Chapter 13. Many of those who file for
Chapter 13
end up completely failing: the rate of discharge (getting one’s debts forgiven) is around
one-third of cases according to many studies, and about one-half
according to others. If your Chapter 13 filing fails, you are left
in a worse situation than where you started.
And from here it only gets worse. One detailed law study found that bankruptcy laws, specifically Chapter 13, implicitly favor a certain profile, an “ideal debtor,” who is usually White and married. Most bankruptcy laws tend to favor wealth over income, ownership over renting, formal dependents over informal dependents, and straight married couples, all of which have significantly higher rates among Whites. Before 2005, Black people who filed for bankruptcy filed for Chapter 13 nearly 50% of the time, compared to less than 25% by Whites. A study found that when all other factors are equalized (identical financial cases), lawyers are twice as likely to steer Black clients toward Chapter 13 than they are White clients. The study could find no other cause besides racism in all forms: conscious, unconscious, structural, and institutional. This push toward Chapter 13—where one’s race is far more often a determining factor as compared to Chapter 7—compounds the effect of the already racist terrain of bankruptcy law.
Black people are also 20% more likely to have their Chapter 13 cases dismissed by a judge. This discrimination has had a major impact on many Black debtors—they often avoid the option of bankruptcy altogether and seek other solutions: hiding, adopting aliases, refusing to pay, or relying on highly predatory fringe financial services. It may appear at first glance that BAPCPA actually began to equalize the playing field across race and gender by introducing the fairly objective “means test,” but it has, on the contrary, continued the trend of favoring wealth over income and made the whole process more intimidating and more expensive.
Who Files for Bankruptcy? And Why?
The banks, government, and media would have you believe that people file for bankruptcy to scam the system, or because they are financially irresponsible. This is, of course, nonsense. Elizabeth Warren made her career by clarifying these myths around bankruptcy: most bankruptcies are simply not caused by financial carelessness but by life’s misfortunes such as unexpected joblessness, illness, or divorce. The major social reason for the rise in bankruptcy over the decades has been the rise in consumer debt burdens, and the major reasons for the rise in these debts are wage stagnation, the elimination of caps on interest, and massive public sector service cuts. The line of argument advanced by the credit industry ignores the source of the debt to begin with: in a time of vulnerable work markets and mass cuts in basic social services, most people have no choice but to accrue debt to simply survive.
There has been a lot of talk about the role of medical debt in bankruptcies in the past few years—and for good reason. A whopping 62% of personal bankruptcies are traceable to medical debt. But it is not the only factor. Bankruptcy is not “caused” by any one type of debt. Most individuals and families filing for bankruptcy have auto debt, credit card debt, mortgage debt, student debt, and medical debt. The debt burden that households have been forced to take on is getting harder and harder to bear, such that mass bankruptcies and default in this system seem to be structurally inevitable, especially if bankers continue to force us to take loans that we cannot pay.
It would be a mistake to think that the U.S. bankruptcy laws and proceedings are fair across lines of gender, race, and class. In terms of gender, it’s a complicated story. While the rates of bankruptcy filings are far higher for women, especially single and divorced mothers, they also benefit from the structure of bankruptcy laws. Individuals with child support obligations (usually men) who declare Chapter 7 are freed up to then satisfy these obligations, since consumer debt can be discharged but child support cannot. However, after the 2005 Act, bankruptcy became more difficult for everyone, including both single mothers and those with child support obligations. All of this raises the question: why are so many single mothers (especially women of color) declaring bankruptcy? And instead of looking for policy solutions or resorting to moral chiding, how can we avoid these situations of indebtedness in the first place? We haven’t seen these questions asked in any serious public forum.
In addition, there have been several reports in the last decade
about the connection between race and bankruptcy. Anyone connecting
the dots between race, predatory lending, and the 2008 financial
crisis shouldn’t be surprised by these results. Neil Ellington,
executive vice president of a credit counseling agency in Raleigh,
North Carolina, had this to say on the matter of
race and bankruptcy: “The same underlying issues that created the problem in mortgage
lending, with minorities paying higher interest rates than their
white counterparts having the same loan qualifications, are present
in all financial fields.”
So how bad is it? One study, focused on a neighborhood in Chicago, found that the rate of filings by Blacks is triple that of their White counterparts. The underlying cause isn’t well documented, but it’s not hard to guess: Black people have been systematically targeted by financial predators. Beyond predatory lending, people of color are targeted by fierce debt reduction schemes, rescue scams, and shady financial products promising to save them from their debt burdens.
In This Society, Everyone Wants Your Money
Anyone contemplating bankruptcy or struggling with debt is likely to confront dubious operators. Worst of all are the characters who advertise on late-night TV or on the web offering debt-relief schemes. Google the term “debt relief” for examples. In the words of a Manhattan-based attorney who handles many bankruptcy cases, “I’ve never seen one that was legitimate.” Avoid them at all costs.
But there are also more legitimate groups and financial advisors who will offer you still-dubious advice against filing for bankruptcy. The standard claim is that bankruptcy is an emotionally wrenching experience that will ruin your credit for years. According to these sources, you’ll find it difficult or impossible to get a credit card or a mortgage after filing for bankruptcy. You might even find that it “carries a stigma in your community,” according to the National Foundation for Credit Counseling (NFCC), a trade association for the advice industry. Better to tighten your belt and negotiate repayment plans with your creditors, they say. For example, one advocate, Dave Ramsey, who dispenses advice from the perspective of the religious right, suggests selling everything but the bare necessities to placate the creditors.
And they are right in one sense; bankruptcy is no picnic. But neither is private debt negotiation or settlement. Few people have the time and energy to fight with creditors for months, especially without a lawyer. Groups like the NFCC have been silent about releasing data showing success rates in private negotiations, debt settlement plans, and other alternatives to bankruptcy. It’s hard to know whom to trust when everyone wants your money. Organizations like the NFCC will say terrible things about bankruptcy because they’re funded by the financial industry and other private sector interests. While they divulge few exact details about their funders, the program for its most recent conference had sponsors such as Bank of America, Chase, Citi, MasterCard, and Experian (the credit rating agency). The conference also featured “breakout sessions” for creditors and a Creditors’ Day (as if all the other days of the year weren’t creditors’ days, too).
NFCC’s ideals are personified by the winners of their 2011 Client of the Year Award, Jerry and Sue Bailey of Jackson, Michigan. The Baileys “refused” the temptation of “walking away” from $92,000 in credit card debt, opting instead for a repayment program engineered by NFCC member firm GreenPath. They admit that paying off their debt was a struggle, but it was one “worth making.” GreenPath (which, incidentally, paid its CEO about $600,000 in 2010) and other NFCC member firms are precisely the ones who run the counseling programs filers are required to attend.
So who can you trust? Bankruptcy lawyers? Let’s not forget that they make money off of debtors too. Every situation is different, and you should research the options that make the most sense for your situation.
So, should I file for bankruptcy or not?
Many of us are afflicted with a deep sense of guilt about not servicing our debt—it feels immoral. Worse still is the common myth that filing for bankruptcy means losing everything. In Chapter 7 you can avail yourself of exemptions for key assets, and Chapter 13 is designed so that you can save some non-exempt assets. We recommend you research all of this carefully. In the end, filing for bankruptcy can be a tremendous relief.
There is no minimum amount of debt that must be owed before it is reasonable to file for bankruptcy; ultimately, it is based on the situation of the individual. Before filing, we highly recommend speaking to an attorney who specializes in bankruptcy. Many offer free initial consultations. For a referral, contact your state or local bar association and consider seeking free (pro bono) bankruptcy services in your area.
Contrary to claims by the credit industry (and the academics and counselors on their payroll), the rise in bankruptcy filings over the last couple of decades is not the result of spreading moral rot and a growing indifference to debt. Most people are close to their credit limit or behind on their payments—at a time when banks can raise the money they lend you for close to 0%—and getting rid of that rapidly compounding debt can be deliverance for many.
Compound interest can feel like endless sacrifice with no reward. If you have a $5,000 balance at 18% interest and make only the minimum payment, it will take you almost twenty-three years to pay off the debt and will cost you nearly $7,000 in interest (more than the original principal). Bankruptcy can reduce your credit card balance to zero in a matter of months—and put an end to calls from collection agents. There are consequences, of course, for your future ability to borrow, but being informed and doing it right makes it worth the risk.
The biggest relief bankruptcy offers is the “automatic stay,” which means that creditors and collectors have to stop harassing you until the bankruptcy filing is completed and the court has ruled. In Chapter 13, your case is monitored so that you no longer have to deal with creditors as you pay back your debt for those three to five years (again, only if you are in the minority that successfully completes your plan).
It can cost as much as $3,000 to file for bankruptcy these days (Chapter 13 is more expensive), which, for people who are barely getting by, is a lot of money. You may be able to find a relatively cheap lawyer or get free legal representation by contacting your local bar association. It is possible to do it yourself using manuals and forms from online sources, but it can be a complicated process. The failure rate without a lawyer for Chapter 13s is at an astonishing 97%! So, we recommend getting a lawyer before filing; research carefully how to find a good one. And it can’t hurt to know the law a bit before you go—the study mentioned above about lawyers’ tendency to provide Black debtors with questionable advice shows the importance of this clearly.
What about my credit? And other risks?
The consensus in the credit counseling industry seems to be that, for many people, bankruptcy can actually be good for your credit score in the long run. How so? If you’re considering bankruptcy, you’ve probably missed a few payments and are dealing with delinquency and default—which will wreck most people’s scores. Also, before you file for bankruptcy, you have some income but a lot of debt; after filing, you will have the same income but no debt, which leads to a lower debt-to-income ratio. This ratio, in turn, is used as a factor in obtaining loans. Counterintuitively, debt management programs or similar plans don’t seem to do much for your credit, so at some point, you’ll want to make a decision about bankruptcy.
It seems that Chapter 7 and Chapter 13 have an equivalent impact on credit scores. Either way, scores take a nosedive in the short term, and you may not have access to cheap or fair credit for a while. But it won’t be long before you receive more credit card applications (sometimes as little as thirty days after filing). Why? Banks are not stupid: they know that you probably have income (or potential for it) and also that, due to your recently filed bankruptcy, you can’t file another bankruptcy for eight years. To the bank, that means you’ll have to pay back what you owe plus interest for the entire time.
Lenders will be more likely to lend to you after a Chapter 7. Few lenders will do any lending during the payback period of a Chapter 13, so it will take an extra three to five years to rebuild your credit. Notably, while a bankruptcy can stay on your credit score for seven to ten years, you can still qualify for a Federal Housing Administration-backed mortgage approximately two and a half years after filing a Chapter 7.
After bankruptcy, you will be an ideal target for the predatory loan sharks in the industry; they love people who are struggling. They will tempt you with low interest rates to start with, but then jack up rates and fees the minute that balances rise and payments fall behind. Be careful. The best strategy after bankruptcy is to accept a couple of cards. Study their terms and conditions and use them very carefully. Read up about how to build your credit (carrying a small balance, making regular payments, etc). Although a bankruptcy filing can stay on your credit report for a decade, even just six months after a filing, it’s possible to get a credit score in the 700s. That being said, it can be disastrous to declare bankruptcy a second time; few credit scores can recover from that (except patiently waiting seven to ten years).
Lastly, the biggest risk in filing for bankruptcy is that your case will be dismissed, in which case you’ve wasted time and money, accrued more debt (the interest accrues retroactively to the time of filing), and gained nothing. And, your bankruptcy would still be on your credit report. Though this is the worst-case scenario, remember that this happens for nearly 50% of those filing for Chapter 13.
Collective Solutions
Unfortunately, for the most part bankruptcy offers only individual means of fighting the creditors. It is hard to imagine how to use the bankruptcy laws in order to organize mass direct action that would seriously disrupt the debt system. In terms of the racist nature of the existing bankruptcy mechanisms, informational campaigns in communities to clear up the myths and disinformation surrounding bankruptcy would be an important first step. And, although not ideal for many, there are other options for debtors: debt negotiation or settlement, refusal, living off the grid, leaving the country, etc. One form of collective action is to help each other and build networks of mutual support for those struggling with debt.
With every bankruptcy, a bank or lender loses a certain amount of money—they have rigged the game, so they are probably recovering it in other places. Nonetheless, their books are slightly shaken. One possible action would be a simultaneous mass bankruptcy of those eligible for Chapter 7. This could be organized so that a mass of debtors with debt toward a certain bank declares bankruptcy all at once. We don’t know enough about the industry to know what effects this could have. The organizers would need serious legal counseling: bankruptcy laws are laden with fraud protections, which would have to be carefully combed through before taking action. Another possibility would be to organize a critical mass to declare bankruptcy on student loans all at once—knowing they will be dismissed, but defiantly insisting in court that the debts are illegitimate and unpayable. These actions, of course, would need years of planning, preparation, and organization.
Resources
Websites
- American Bankruptcy Institute: Pro Bono Bankruptcy Services Locator
- Bankruptcy Data
- NOLO: Bankruptcy
Articles and Books
- David Cay Johnston, “Five Questions for Elizabeth Warren; Bankruptcy Borne of Misfortune, Not Excess,” New York Times, September 3, 2000.
- Georgette Miller, Living Debt Free, Mentor Equity Press, 2012. (Also available on DVD.)
- Elizabeth Warren, “Feminomics: Women and Bankruptcy,” Huffington Post, December 17, 2009.
References
- Bankrate. “12 Myths about Bankruptcy.” November 4, 2011.
- Bernard, Tara Siegel. “Blacks Face Bias in Bankruptcy, Study Suggests.” New York Times, January 20, 2012.
- Dickerson, A. Mechele. “Race Matters in Bankruptcy.” Washington and Lee Law Review 61, no. 4 (2004): 1725–76.
- Garrett, Thomas A. “The Rise in Personal Bankruptcies: The Eighth Federal Reserve District and Beyond.” Federal Reserve Bank of St. Louis Review, February 2007.
- Khalfani-Cox, Lynnette. “Life after Bankruptcy: 5 Steps to Rebuilding Your Credit, Finances and Emotions.” Daily Finance, June 3, 2011.
- Khan, Ajaz Ahmed, and Helen Mould. “Islam and Debt.” Islamic Relief, April 2008.
- Li, Wenli. “What Do We Know about Chapter 13 Personal Bankruptcy Filings?” Federal Reserve Bank of Philadelphia Business Review, 2007.
- Morgan, Donald P., Benjamin Iverson, and Matthew Botsch. “Subprime Foreclosures and the 2005 Bankruptcy Reform.” Federal Reserve Bank of New York Economic Policy Review, 2011.
- National Foundation For Credit Counseling. “About Bankruptcy.” Accessed March 25, 2013.
- Peterson, Erin. “Debt-to-Income Ratio Important as Credit Score.” Bankrate, January 24, 2007.
- Smith, Geoff, and Sarah Duda. “Bridging the Gap II: Examining Trends and Patterns of Personal Bankruptcy in Cook County’s Communities of Color.” Woodstock Institute, May 2011.


Recipes
-
Southwest Chicken Cutlet Rice Bowl
Southwest chicken recipe, served on a bowl of flavorful rice and topped with a sprig of cilantro
-
Shrimp and Pesto-Rice Salad
This simple dish has delicately seasoned shrimp baked in the oven, then combined with a spinach pesto to create a delicious, quick, and healthy dinner
-
Texas Caviar Rice and Beans
This recipe combines black-eyed peas and black beans, creating a delicious medley of both
-
Slow-Cooker Red Beans and Rice
Few dishes embody the true tastes of the South more than red beans and rice, and this slow-cooker recipe helps you get their flavors on the table without spending all day in the kitchen
-
Chicken Fried Rice
You’ll love the zing of the Asian chili-garlic sauce, and the freshness of the haricots verts, the red bell peppers, and the diced onion
-
Fried Rice 101
Choose between shrimp, poultry, or your choice of cooked meat to make this dish your own
-
Chicken-and-Wild Rice Salad
This healthy dish is table-ready in 25 minutes. You’ll love how simple it is to enjoy delicious, nutritious, leafy greens quickly.
-
Skillet Sausage 'n' Rice
Pound of smoked sausage and a couple of bags of quick-cooking brown rice do the trick for this easy dish
-
Chicken-and-Rice
Few dishes conjure up ideas of dinnertime classics more than chicken and rice, and this recipe helps you have this family favorite on the table quickly


The Billing page displays your organization's billing details. To view the page, log into the Algorithm Lab and then, in the left navigation bar, click
.The Billing page displays the billing cost, date, and frequency at the top of the page. The following table describes the remaining sections of the page:
| Section | Description |
|---|---|
| Details | The billing name and address associated with the credit card. |
| Credit Card | The credit card used to pay the bill. |
| Products | A breakdown of the organization's subscriptions. |
| Invoices | All the organization's invoices. |
| Organization Credit (QCC) | All QCC purchases and expenses. |


Hint
Think about the mathematical relationship between the bill and its tax rate
How much tax you need to pay given the bill in dollars and tax rate in percent?


Welcome to the City and County of San Francisco's Index of Public Records. The Index is made available to assist the public with access to City records. This is in accordance with the Sunshine Ordinance.
Search for a Record
Use agency names, record titles, keywords
or
Find records based on an agency
Use the links below to access records belonging to a specific agency


| Severity | Error Description | Line |
| warning | Missing package-info.java file. | 1 |
| warning | 'member def modifier' has incorrect indentation level 8, expected level should be 4. | 9 |
| warning | File contains tab characters (this is the first instance). | 9 |
| warning | Name 'dex' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'. | 9 |
| warning | 'member def modifier' has incorrect indentation level 8, expected level should be 4. | 10 |
| warning | Name 'brie' must match pattern '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'. | 10 |
| warning | 'method def modifier' has incorrect indentation level 8, expected level should be 4. | 13 |
| warning | Variable 'items' should be declared final. | 15 |
| warning | Variable 'app' should be declared final. | 16 |
| warning | 'method def' child has incorrect indentation level 9, expected level should be 8. | 34 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 41 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 42 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 55 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 56 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 66 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 67 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 80 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 92 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 93 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 103 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 104 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 114 |
| warning | 'array initialization' child has incorrect indentation level 35, expected level should be one of the following: 8, 39, 42. | 115 |
| warning | 'array initialization rcurly' has incorrect indentation level 32, expected level should be one of the following: 4, 8. | 116 |
| warning | Array should contain trailing comma. | 116 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 133 |
| warning | The String "Sulfuras, Hand of Ragnaros" appears 2 times in the file. | 133 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 135 |
| warning | 'method def' child has incorrect indentation level 9, expected level should be 8. | 141 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 146 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 148 |
| warning | 'method def' child has incorrect indentation level 9, expected level should be 8. | 154 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 159 |
| warning | The String "Backstage passes to a TAFKAL80ETC concert" appears 6 times in the file. | 159 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 161 |
| warning | 'method def' child has incorrect indentation level 7, expected level should be 8. | 175 |
| warning | 'method def' child has incorrect indentation level 7, expected level should be 8. | 177 |
| warning | Line is longer than 150 characters (found 158). | 182 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 188 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 190 |
| warning | Line is longer than 150 characters (found 166). | 195 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 201 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 203 |
| warning | Line is longer than 150 characters (found 166). | 208 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 214 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 216 |
| warning | Line is longer than 150 characters (found 165). | 221 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 227 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 229 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 240 |
| warning | The String "Conjured Mana Cake" appears 4 times in the file. | 240 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 242 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 249 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 255 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 257 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 264 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 270 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 272 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 279 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 285 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 287 |
| warning | 'method def' child has incorrect indentation level 4, expected level should be 8. | 294 |


{% extends "base.html" %} {% import "bootstrap/wtf.html" as wtf %} {% import "_macros.html" as macros %} {% block title %}随风潜入夜{% endblock %} {% block page_content %}


This is a multi-part message in MIME format.
=09
Dear DECEMBER,
You have a Prosper loan payment due on 9/28/2015 for $174.00.
Make your payment now:
http://www.prosper.com/MakePayment/Funnel?utm_source=3Dborrower_payment_=
due&utm_medium=3Demail&utm_campaign=3Dsystem_event&utm_content=3Dmake_pa=
yment
Payment due date: 9/28/2015
Total payment due: $174.00
Please make your payment before the payment due date. If payment is not=
received, you will be charged a late fee after 15 days past due.=20
Regards,
Prosper
Notice to Servicemembers
Servicemembers on "active duty" or "active service" may be entitled to=
certain legal protections and debt relief pursuant to the Servicemember=
s Civil Relief Act (SCRA). For questions about the SCRA, servicemembers=
should contact their unit's Judge Advocate, or their installation's Leg=
al Assistance Officer. A military legal assistance office locator for=
all branches of the Armed Forces is available at http://legalassistance=
.law.af.mil/content/locator.php.
Dear DECEMBER,
You have a Prosper loan payment due on 9/28/2015 for $174.00.


Man wounded in shooting near school in Brooklyn
BEDFORD-STUYVESANT, Brooklyn -- Police say a man was wounded in a shooting near a school in Brooklyn Wednesday afternoon.
It happened around 3 p.m. near the intersection of Patchen Avenue and Marion Street in Bedford-Stuyvesant.
The 20-year-old man was shot in the neck after a dispute, police said. He was hospitalized in stable condition.
The suspect is a man who was last seen wearing a white shirt and blue jeans.
There have been no arrests and the investigation is ongoing.


Links
This section provides links to the various sections of this website
Fixtures and Results
The table below provides details of the various matches in the 2009 Six Nations Championship.
| Day | Date | Host | Points | Points | Visitor | Venue |
|---|---|---|---|---|---|---|
| Saturday | 7th February 2009 | England | 36 | 11 | Italy | Twickenham |
| Saturday | 7th February 2009 | Ireland | 30 | 21 | France | Croke Park |
| Sunday | 8th February 2009 | Scotland | 13 | 26 | Wales | Murrayfield |
| Saturday | 14th February 2009 | France | Scotland | Stade de France | ||
| Saturday | 14th February 2009 | Wales | England | Millennium Stadium | ||
| Sunday | 15th February 2009 | Italy | Irlenad | Stadio Flaminio | ||
| Friday | 27th February 2009 | France | Wales | Stade de France | ||
| Saturday | 28th February 2009 | Scotland | Italy | Murrayfield | ||
| Saturday | 28th February 2009 | Ireland | England | Croke Park | ||
| Saturday | 14th March 2009 | Italy | Wales | Stadio Flaminio | ||
| Saturday | 14th March 2009 | Scotland | Ireland | Murrayfield | ||
| Sunday | 15th March 2009 | England | France | Twickenham | ||
| Saturday | 21st March 2009 | Italy | France | Stadio Flaminio | ||
| Saturday | 21st March 2009 | England | Scotland | Twickenham | ||
| Saturday | 21st March 2009 | Wales | Ireland | Millennium Stadium |


3DES works and is secure — that is, brute-force attacks against it are computationally infeasible, and it has withstood decades of cryptanalysis. 笔记：3DES是一个安全的算法。
However, it's clearly slower than it needs to be. To triple the key length, you also have to triple the operation time. If DES itself were redesigned from the ground up to accommodate a longer key, processing time could be drastically reduced. 笔记：但是，3DES存在的问题是运行速度慢。
In 2001, the NIST announced that the Rijndael algorithm (http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf) would become the official replacement for DES and renamed it the Advanced Encryption Standard. 笔记：DES算法是在1976年成为NIST的标准，3DES是在1995年提出的，而AES是在2001年成为NIST的标准。
If you understand the overall workings of DES, AES is easy to follow as well. Like DES, it does a non-linear s-box translation of its input, followed by several permutation- and shift-like operations over a series of rounds, applying a key-schedule to its input at each stage. Just like DES, AES relies heavily on the XOR operation — particularly the reversibility of it. 笔记：这里讲DES和AES的相似之处。
However, it operates on much longer keys; AES is defined for 128-, 192-, and 256-bit keys. Note that, assuming that a brute-force attack is the most efficient means of attacking a cipher, 128-bit keys are less secure than 3DES, and 192-bit keys are about the same (although 3DES does throw away 24 bits of key security due to the parity check built into DES). 256-bit keys are much more secure. Remember that every extra bit doubles the time that an attacker would have to spend brute-forcing a key. 笔记：所不同的是，DES接受64-bit的key(实际上是56-bit，有8-bit数据被舍弃了)，AES可接受三种不同长度的key，分别是128-bit、192-bit和256-bit。
AES operates on 16-byte blocks, regardless of key length. 笔记：AES每一次处理128-bit(16-byte)的input block。
The number of rounds varies depending on key length. If the key is 128 bits (16 bytes) long, the number of rounds is 10; if the key size is 192 bits (24 bytes) long, the number of rounds is 12; and if the key size is 256 bits (32 bytes), the number of rounds is 14. In general, rounds = (key-size in 4-byte words) + 6. 笔记：由key length计算rounds。
Each round needs 16 bytes of keying material to work with, so the key schedule works out to 160 bytes (10 rounds * 16 bytes per round) for a 128-bit key; 192 bytes (12 * 16) for a 192-bit key; and 224 bytes (14 * 16) for a 256-bit key. (Actually there's one extra key permutation at the very end, so AES requires 176, 208, and 240 bytes of keying material). 笔记：由rounds计算key material。
Besides the number of rounds, the key permutation is the only difference between the three algorithms. 笔记：AES-128、AES-192和AES-256三者之间的区别就是，rounds和key material的生成方式。
| Algorithm | Key Length | Rounds | Input Block (byte) | Key Material (byte) |
|---|---|---|---|---|
| AES-128 | 128-bit(16-byte) | 10 | 16 | 176 |
| AES-192 | 192-bit(24-byte) | 12 | 16 | 208 |
| AES-256 | 256-bit(32-byte) | 14 | 16 | 240 |
For a 128-bit(16-byte) key, the AES key schedule computation needs to produce 176 bytes of output. The first 16 bytes are the key itself; the remaining 160 bytes are computed four at a time. Each four bytes are a permutation of the previous four bytes.
This is repeated 44, 52 or 60 times (rounds+1) * 4 to produce as much keying material as needed — 16 bytes per round, plus one extra chunk of 16 bytes.


Returns all the available archetypes for the current view name
Link to the current page with the option disabled
returns an edit link for the given file, discovering the right URL
based on your OS and whether you have TextMate installed and whether you
have defined the scalate.editor
system property
returns an edit link for the given file, discovering the right URL
based on your OS and whether you have TextMate installed and whether you
have defined the scalate.editor
system property
returns an edit link for the given file, discovering the right URL
based on your OS and whether you have TextMate installed and whether you
have defined the scalate.editor
system property
returns an edit link for the given file, discovering the right URL
based on your OS and whether you have TextMate installed and whether you
have defined the scalate.editor
system property
returns an edit link for the given URI, discovering the right URL
based on your OS and whether you have TextMate installed and whether you
have defined the scalate.editor
system property
returns an edit link for the given URI, discovering the right URL
based on your OS and whether you have TextMate installed and whether you
have defined the scalate.editor
system property
returns an edit link for the given URI, discovering the right URL
based on your OS and whether you have TextMate installed and whether you
have defined the scalate.editor
system property
returns an edit link for the given URI, discovering the right URL
based on your OS and whether you have TextMate installed and whether you
have defined the scalate.editor
system property
Link to the current page with the option enabled
Returns the current layouts used in the current context
Retrieves a chunk of lines either side of the given error line
Retrieves a chunk of lines either side of the given error line
Creates the newly created template name if there can be one for the current resource
Returns true if the option is enabled
Returns the class name of the current resource
Returns an attempt at finding the source file for the current resource.
Returns an attempt at finding the source file for the current resource.
TODO use bytecode swizzling to find the accurate name from the debug info in the class file!
Returns the current template names used in the current context
Helper snippets for creating the console
$Revision : 1.1 $


| Top |
| psl_ctx_t * | psl_load_file () |
| psl_ctx_t * | psl_load_fp () |
| psl_ctx_t * | psl_latest () |
| const psl_ctx_t * | psl_builtin () |
| void | psl_free () |
| int | psl_is_public_suffix () |
| int | psl_is_public_suffix2 () |
| const char * | psl_unregistrable_domain () |
| const char * | psl_registrable_domain () |
| int | psl_suffix_count () |
| int | psl_suffix_exception_count () |
| int | psl_suffix_wildcard_count () |
| time_t | psl_builtin_file_time () |
| const char * | psl_builtin_sha1sum () |
| const char * | psl_builtin_filename () |
| int | psl_builtin_outdated () |
| int | psl_is_cookie_domain_acceptable () |
| const char * | psl_dist_filename () |
| const char * | psl_get_version () |
| int | psl_check_version_number () |
| psl_error_t | psl_str_to_utf8lower () |
| void | psl_free_string () |
| #define | PSL_API |
| #define | PSL_VERSION |
| #define | PSL_VERSION_MAJOR |
| #define | PSL_VERSION_MINOR |
| #define | PSL_VERSION_NUMBER |
| #define | PSL_VERSION_PATCH |
| #define | PSL_TYPE_ICANN |
| #define | PSL_TYPE_PRIVATE |
| #define | PSL_TYPE_NO_STAR_RULE |
| #define | PSL_TYPE_ANY |
| enum | psl_error_t |
| typedef | psl_ctx_t |
psl_ctx_t *
psl_load_file (const char *fname
);
This function loads the public suffixes file named fname
.
To free the allocated resources, call psl_free()
.
The suffixes are expected to be UTF-8 encoded (lowercase + NFKC) if they are international.
Since: 0.1
psl_ctx_t *
psl_load_fp (FILE *fp
);
This function loads the public suffixes from a FILE
pointer.
To free the allocated resources, call psl_free()
.
The suffixes are expected to be UTF-8 encoded (lowercase + NFKC) if they are international.
Since: 0.1
psl_ctx_t *
psl_latest (const char *fname
);
This function loads the the latest available PSL data from either
fname
(application specific filename, may be NULL
)
location specified during built-time (filename from ./configure --with-psl-distfile)
built-in PSL data (generated from ./configure --with-psl-file)
location of built-in data (filename from ./configure --with-psl-file)
If none of the above is available, the function returns NULL
.
To free the allocated resources, call psl_free()
.
Since: 0.16
const psl_ctx_t *
psl_builtin (void
);
This function returns the PSL context that has been generated and built in at compile-time. You don't have to free the returned context explicitly.
The builtin data also contains punycode entries, one for each international domain name.
If the generation of built-in data has been disabled during compilation, NULL
will be returned.
When using the builtin psl context, you can provide UTF-8 (lowercase + NFKC) or ASCII/ACE (punycode)
representations of domains to functions like psl_is_public_suffix()
.
Since: 0.1
void
psl_free (psl_ctx_t *psl
);
This function frees the the PSL context that has been retrieved via
psl_load_fp()
or psl_load_file()
.
Since: 0.1
int psl_is_public_suffix (const psl_ctx_t *psl
,const char *domain
);
This function checks if domain
is a public suffix by the means of the
Mozilla Public Suffix List.
For cookie domain checking see psl_is_cookie_domain_acceptable()
.
International domain
names have to be either in UTF-8 (lowercase + NFKC) or in ASCII/ACE format (punycode).
Other encodings likely result in incorrect return values.
Use helper function psl_str_to_utf8lower()
for normalization domain
.
psl
is a context returned by either psl_load_file()
, psl_load_fp()
or
psl_builtin()
.
Since: 0.1
int psl_is_public_suffix2 (const psl_ctx_t *psl
,const char *domain
,int type
);
This function checks if domain
is a public suffix by the means of the
Mozilla Public Suffix List.
type
specifies the PSL section where to perform the lookup. Valid values are
PSL_TYPE_PRIVATE
, PSL_TYPE_ICANN
, PSL_TYPE_NO_STAR_RULE
, and PSL_TYPE_ANY
.
PSL_TYPE_NO_STAR_RULE
switches of the 'prevailing star rule' (see
List under 'Algorithm' 2.).
Applying the flag means that TLDs not explicitly listed in the PSL are *not* treated as public suffixes.
International domain
names have to be either in UTF-8 (lowercase + NFKC) or in ASCII/ACE format (punycode).
Other encodings likely result in incorrect return values.
Use helper function psl_str_to_utf8lower()
for normalization domain
.
psl
is a context returned by either psl_load_file()
, psl_load_fp()
or
psl_builtin()
.
Since: 0.1
const char * psl_unregistrable_domain (const psl_ctx_t *psl
,const char *domain
);
This function finds the longest public suffix part of domain
by the means
of the Mozilla Public Suffix List.
International domain
names have to be either in UTF-8 (lowercase + NFKC) or in ASCII/ACE format (punycode).
Other encodings likely result in incorrect return values.
Use helper function psl_str_to_utf8lower()
for normalization domain
.
psl
is a context returned by either psl_load_file()
, psl_load_fp()
or
psl_builtin()
.
Pointer to longest public suffix part of domain
or NULL
if domain
does not contain a public suffix (or if psl
is NULL
).
Since: 0.1
const char * psl_registrable_domain (const psl_ctx_t *psl
,const char *domain
);
This function finds the shortest private suffix part of domain
by the means
of the Mozilla Public Suffix List.
International domain
names have to be either in UTF-8 (lowercase + NFKC) or in ASCII/ACE format (punycode).
Other encodings likely result in incorrect return values.
Use helper function psl_str_to_utf8lower()
for normalization domain
.
psl
is a context returned by either psl_load_file()
, psl_load_fp()
or
psl_builtin()
.
Pointer to shortest private suffix part of domain
or NULL
if domain
does not contain a private suffix (or if psl
is NULL
).
Since: 0.1
int
psl_suffix_count (const psl_ctx_t *psl
);
This function returns number of public suffixes maintained by psl
.
The number of exceptions within the Public Suffix List are not included.
If the information is not available, the return value is -1 (since 0.19).
This is the case with DAFSA blobs or if psl
is NULL
.
Number of public suffixes entries in PSL context or -1 if this information is not available.
Since: 0.1
int
psl_suffix_exception_count (const psl_ctx_t *psl
);
This function returns number of public suffix exceptions maintained by psl
.
If the information is not available, the return value is -1 (since 0.19).
This is the case with DAFSA blobs or if psl
is NULL
.
Number of public suffix exceptions in PSL context or -1 if this information is not available.
Since: 0.1
int
psl_suffix_wildcard_count (const psl_ctx_t *psl
);
This function returns number of public suffix wildcards maintained by psl
.
If the information is not available, the return value is -1 (since 0.19).
This is the case with DAFSA blobs or if psl
is NULL
.
Number of public suffix wildcards in PSL context or -1 if this information is not available.
Since: 0.10.0
time_t
psl_builtin_file_time (void
);
This function returns the mtime of the Public Suffix List file that has been built in.
If the generation of built-in data has been disabled during compilation, 0 will be returned.
Since: 0.1
const char *
psl_builtin_sha1sum (void
);
This function returns the SHA1 checksum of the Public Suffix List file that has been built in. The returned string is in lowercase hex encoding, e.g. "2af1e9e3044eda0678bb05949d7cca2f769901d8".
If the generation of built-in data has been disabled during compilation, an empty string will be returned.
Since: 0.1
const char *
psl_builtin_filename (void
);
This function returns the file name of the Public Suffix List file that has been built in.
If the generation of built-in data has been disabled during compilation, an empty string will be returned.
Since: 0.1
int
psl_builtin_outdated (void
);
This function checks if the built-in data is older than the file it has been created from. If it is, it might be a good idea for the application to reload the PSL. The mtime is taken as reference.
If the PSL file does not exist, it is assumed that the built-in data is not outdated.
Since: 0.10.0
int psl_is_cookie_domain_acceptable (const psl_ctx_t *psl
,const char *hostname
,const char *cookie_domain
);
This helper function checks whether cookie_domain
is an acceptable cookie domain value for the request
hostname
.
For international domain names both, hostname
and cookie_domain
, have to be either in UTF-8 (lowercase + NFKC)
or in ASCII/ACE (punycode) format. Other encodings or mixing UTF-8 and punycode likely result in incorrect return values.
Use helper function psl_str_to_utf8lower()
for normalization of hostname
and cookie_domain
.
Examples:
Cookie domain 'example.com' would be acceptable for hostname 'www.example.com', but '.com' or 'com' would NOT be acceptable since 'com' is a public suffix.
Cookie domain 'his.name' would be acceptable for hostname 'remember.his.name', but NOT for 'forgot.his.name' since 'forgot.his.name' is a public suffix.
psl |
PSL context pointer |
|
hostname |
The request hostname. |
|
cookie_domain |
The domain value from a cookie |
Since: 0.1
const char *
psl_dist_filename (void
);
This function returns the file name of the distribution/system PSL data file.
This file will be considered by psl_latest()
.
Return the filename that is set by ./configure --with-psl-distfile, or an empty string.
Since: 0.16
int
psl_check_version_number (int version
);
Check the given version number is at minimum the current library version number. The version number must be a hexadecimal number like 0x000a01 (V0.10.1).
Returns the library version number if the given version number is at least the version of the library, else return 0; If the argument is 0, the function returns the library version number without performing a check.
Since: 0.11.0
psl_error_t psl_str_to_utf8lower (const char *str
,const char *encoding
,const char *locale
,char **lower
);
This helper function converts a string to UTF-8 lowercase + NFKC representation. Lowercase + NFKC UTF-8 is needed as input to the domain checking functions.
lower
stays unchanged on error.
When returning PSL_SUCCESS, the return value 'lower' must be freed after usage.
str |
string to convert |
|
encoding |
charset encoding of |
|
locale |
locale of |
|
lower |
return value containing the converted string |
psl_error_t value.
PSL_SUCCESS: Success
PSL_ERR_INVALID_ARG: str
is a NULL
value.
PSL_ERR_CONVERTER: Failed to open the unicode converter with name encoding
PSL_ERR_TO_UTF16: Failed to convert str
to unicode
PSL_ERR_TO_LOWER: Failed to convert unicode to lowercase
PSL_ERR_TO_UTF8: Failed to convert unicode to UTF-8
PSL_ERR_NO_MEM: Failed to allocate memory
Since: 0.4
void
psl_free_string (char *str
);
This function free()
's the memory allocated by psl_str_to_utf8lower()
when
returning a lowercase string
Since: 0.19
Return codes for PSL functions. Negative return codes mean failure. Positive values are reserved for non-error return codes.


The IIMMM is a XXX-funded international institute, recently founded at Alfred University, NY, USA, in partnership with XX, XX, and XX. The intent of the Institute is to bring scholars and researchers together to push forward multiscale methodologies and their potential applications in material science and engineering. The logic is to combine various efforts to enhance innovation in this field.
This site provides a review of multiscale methods in the literature and gives descriptions of individual multiscale methods, where some groups have generously made their programs public.
We hope you enjoy your visit to the IIMMM. If there are any questions or comments, please don't hesitate to contact us.
Prof. Jinghong Fan
Founding Director
IIMMM
Alfred University


Before Change
if succeed:
ray.get(oid)
else:
with pytest.raises(ray.exceptions.RayTimeoutError):
ray.get(oid, timeout=0.1)
def _check_refcounts(expected):
actual = ray.worker.global_worker.core_worker.get_all_reference_counts()
assert len(expected) == len(actual)
for object_id, (local, submitted) in expected.items():
After Change
oid = ray.ObjectID(oid)
if succeed:
wait_for_condition(
lambda: ray.worker.global_worker.core_worker.object_exists(oid))
else:
wait_for_condition(
lambda: not ray.worker.global_worker.core_worker.object_exists(oid)
)