Source code for spikelearn.dataprocessing.utils
"""
Utilitary functions.
"""
import numpy as np
import pandas as pd
from scipy.stats import ttest_ind
[docs]def reyes_cp(timeseries,full_window_size=60):
"""
Change-point analysis algorithm. Window-walks a timeseries calculating
the odds of a simple t_test between the window's first and second half.
Parameters
----------
timeseries : array-like
Series of values upon which to calculate the Change-point
full_window_size : int, optional, default: 60
Size of the total walking window (sum of two halfs)
Returns
-------
odds : Series
Change-point odds for each timepoint
"""
rollin_window = pd.Series(timeseries).rolling(full_window_size,center=True)
return rollin_window.apply(half_ttest_half)
[docs]def half_ttest_half(series):
"""
Divides series in half and returns the t_test odds between each
"""
halfN = len(series)//2
t, p = ttest_ind(series[:halfN],series[halfN:])
return odds(p)
[docs]def odds(p):
return (1-p)/p
[docs]def verticalize_series(series, idx):
"""
Melts a series in which the values are not only in one row,
but are in a single field in this row.
Parameters
----------
series : pandas Series
A series of id variables, with one single field containing
an array-like variable.
idx : string
The index of the array-like variable.
Returns
-------
df : DataFrame
Tidy (melted), with one value of idx variable per row
"""
df = pd.DataFrame(row[idx],columns=[idx])
for id_var in row.index.drop(idx):
df[id_var]=row[id_var]
return df
[docs]def verticalize_df(df, idx):
"""
Melts a DataFrame in which the to-melt values are not distributed in the
row, but are in a single field in each row.
Parameters
----------
df : DataFrame
A DataFrame of id variables, with one single field containing
an array-like variable.
idx : string
The index of the array-like variable.
Returns
-------
df : DataFrame
Tidy (melted), with one value of idx variable per row
"""
return pd.concat([verticalize_series(row,idx) for _,row in df.iterrows()])
[docs]def slashed(path):
assert type(path) is str
if path=='':
return '/'
elif path[0] == '/':
return path
else:
return '/'+path
[docs]def recursive_full_name_recovery(inside_folder_shortcuts):
"""
Receives a nested dictionary in which keys are folder names,
and values are filenames, and returns the fullpaths of each.
"""
if type(inside_folder_shortcuts) is str:
return [slashed(inside_folder_shortcuts)]
elif type(inside_folder_shortcuts) is dict:
paths = []
for folder in inside_folder_shortcuts:
for path in recursive_full_name_recovery(inside_folder_shortcuts[folder]):
paths+= [slashed(folder)+path]
return paths
[docs]def get_filepaths_from_shortcut(one_shortcuts):
all_paths = []
for folder in ['data','results']:
all_paths+= ['{}/{}{}'.format(one_shortcuts['basepath'],folder,path) for path in recursive_full_name_recovery(one_shortcuts[folder])]
return np.array(all_paths)


--- layout: archive title: "Google Scholar" permalink: /scholar.html author_profile: true ---
Google Scholar


An easy chicken curry recipe which scales very well (double it, triple it, etc.). Best served with rice.
Servings: 3-4
Spices - 1 ½ tsp Coriander - 1 tsp Cumin - ½ tsp Turmeric - ½ tsp Ground Fennel Seeds - ½ tsp Cinnamon - ½ tsp Black Pepper - ½ tsp Ginger - ¼ tsp Mustard - ¼ tsp Ground Cloves - Sriracha Sauce (optional)
Main Ingredients - ¼ cup (½ stick) Butter - 1 large Onion - 4 cloves Garlic - 2-3 cups Chicken Broth - 2-3 cups Crushed or Pureed Tomatoes - 1 ½ lbs Boneless Skinless Chicken Breasts


| DOSE: |
2 hits |
oral |
LSD |
(blotter / tab) |
Four or five of us were skipping school and hanging out at a favorite local tripping spot, a small woodsey area at the base of a hill on a local semi-private golf course. It was a weekday morning on a warm spring day and the course wasn't open. We were all peaking pretty good, joking and strumming guitars, just goofing around. But we were kinda quiet, too; we were not suppose to be on the golf course and we didn't want to be confronted and shooed away by the groundskeeper. Suddenly we noticed a young man, maybe late-20s, about 75 yards away, walking past us from our right to left. He was white, sandy hair, casual dressed with a light jacket and was toting a green fabric daypack. We really quieted down, but he didn't glance over, he just kept marching along right down a fareway. When he got directly in front of us he suddenly made a 90 degree turn and without missing a step he started walking directly toward us.
I must emphasize that in making the turn, he did a fast half-twist in mid-stride, very amplified, sort of like player in a marching band, and it was in extreme contrast to the normalcy of his gait. Also, we had been watching him walk for at least two minutes before he turned toward us, and when he did turn, he created a right angle with his new direction. This seemed significant, too, probably because he wasted many steps by not turning in our direction earlier. Again, he had not once looked directly at us from the moment we noticed him. Nor did he look at us even once while he walked that 75 yards straight toward our suddenly silent group. He was looking down at the ground in front of him the whole time. As he approached the last 10 yards, he had to walk down and back up a small dry conctrete creek bed. Two steps out of the creek bed and right in front of our group he stopped and raised his head. He looked slowly around our group, and softly said....
'Acid tears holes in the fabric that seperates this and the next world. If you're not careful you can get caught on the other side.'
Then he turned around, walked directly away from us for about 75 yards, made a perfect 90 degree turn to the left and resumed on his initial way. While he was doing that walk away, we sat stunned, giggling and freaked out. It wasn't till he was out of sight that we lost it, all started talking at once and rolled around with the wierdness of it all.
It's now 20+ years later, and my friends and I will all still swear this is a true story. I told it a while back to a shaman who simply said, 'It was a spirit sent to warn you about fooling around with LSD.' I also learned, years later, that in those days, one of our group, John, had been taking 4 hits of acid for every single hit the rest of us took. I think I did 2 hits that day, so John may have done 6-8 hits.  I don't have a reason for the story, it just happened.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


THANK YOU!
It has been so great to work with you! Remember that payment is due within 20 days of receiving this invoice,
unless an alternative payment method has been discussed. Please make check payable to Breanna Radermacher at
the address provided in the upper left corner. If you ever need anything else, don’t hesitate to contact me!
|


Persuasion strategies are those where a person or group attempts to change another's point of view, way of thinking, feeling, or ideas. One attempting to persuade another uses rational approaches, deductive adn inductive arguments, and any other verbal means s/he thinks will work to convince the other that his/her opinion is the one that should pervail.
Persuasion is quite different from Negotiation or Collaboration, where it is assumed that all of the parties to the conflict are going to share in the change.
Persuasion is used when you don't see the problem as "your" problem. You think that it "belongs" to someone else, and therefore you don't expect to modify your behaviour or your thinking.
When considering persuasive strategies, determine whether collaborative or negotiative strategies are open to you. In some sitations it is not possible to negotiate or collaborate; even when you are willing to change your own behaviour or thinking such as:
Persuasion tends not to work in situations of low trust. As the conflict increases, the trust decreases, and the less likely people are to listen to, let alone be persuaded by, what their opponent or enemy has to say.
If you are going to try and change someone else's way of thinking, you are most likely to be successful under these conditions:


Your character is not a magic user, there is nothing for you here... move along
Your character needs magic


Peitian village is famous for its ginger brown sugar that has been made by every family in the village for several hundred years. The sugar is believed to be good for period crumps as it can warm up the physical working of the body and decrease coldness. The ingredients needed for the sugar are Peitian local ginger, brown sugar, sticky rice wine and camellia oil.
The oil of Camellia Sinenses - a plant commonly used to produce tea - is a special Ingredient that is identified by the Chinese Medicine Book as an ingredient with medical value, especially effective for improving cardiac functioning
The current guidelines on food safety required a modernization of the sugar-making process, but the recipe, although prepared in a modern laboratory, is unaltered, guaranteeing the perfect blend of tradition and modernity. The sugar is made as follows:
Peitian, an ancient Hakka village, lies nested between the mountains of Liancheng County, Fujian province. Isolated both from the nearby Longyan, Peitian preserved its vibrant culture intact from outside influence. The village’s 800 years of history remained embedded into the unique Hakka architecture. The small town boasts 30 beautiful houses, 21 ancestral temples, 6 studies and one 1000-meter-long ancient street. Connecting all these sites are old cobblestone streets and water canals which, much like everything else in the village, continue to reflect the mystic beauty of forgone times. Peitian is a hidden jewel of Chinese history and culture, offering an escape the problems of the world into the joys of simpler times.
Once a safe refuge for those who fled from war zones in the far north of China, Peitian's 800 year history of being a safe heaven has been forgotten by many, and left unknown from the rest of the world. Thus, it is the current NGO's goal to stimulate economic growth and prosperity of the village, as well as putting it back on the map, by promoting one of their high quality, home made products - organic ginger brown sugar. Not only it gives a taste of Peitian's rich culture, but also a healthy addition to every local family's diet. UWC students from all over the world have come and joined the NGO by making it their common goal of introducing the ginger brown sugar to the world by promoting the village's everlasting, yet hidden, authentic beauty.
The Hakka ginger sugar represents more than a food ingredient, but a cultural symbol in the village of Peitian, an 800-year old village located in Longyan, Fujian. The sugar and the unique technique of making it have been presented in the life of this modest village for at least 500 years. The sugar is made from 4 purely natural ingredients: Peitian ginger, Hakka rice wine, brown sugar and camellia oil. According to Chinese medicine theory, this combination is especially beneficial for people’s physical health in an area of humid climate like Fujian.
Due to its rich historical legacy, the technique through which the sugar is made has gone through countless refinements. The ginger alone has to go through 6 procedures to be turned into powder before it can be used to make the sugar, a process through which only 7% of the weight is reserved. The cooking itself would take more than 3 hours.
Nowadays, some of the people from the village are trying to share this part of their culture to the world beyond the surrounding mountains. The local ginger sugar factory has successfully bridged tradition with modernity. While preserving the original process and techniques, the factory uses industrialized equipments to improve efficiency and overall hygiene conditions. However, according to the owner of the factory, Yuyuan Wu, who has inherited the techniques from his family, the essence of sugar is still the same as hundreds of years ago. He dismissed the notion of complete industrialization, and insists that the making process is still operated manually, though this means one batch of sugar would take more than 10 hours of intensive labor. “You cannot just leave everything to the machine because the quality is not the same, and this is how we are different from all the other ginger sugar suppliers in China.
Ingredients:


Source of Rebelo\SaftPT_4_PHP
This project consists of 16 directories, containing a total of 110 files.
| Name | Size | Last Modified |
|---|---|---|
| ADocuments.php | 13.4 KB | 2020-12-19T16:24:48+00:00 |
| AValidate.php | 3.1 KB | 2020-12-19T16:24:46+00:00 |
| DocTableTotalCalc.php | 3.1 KB | 2020-12-19T16:24:46+00:00 |
| DocTotalCalc.php | 4.3 KB | 2020-12-19T16:24:48+00:00 |
| MovOfGoodsTableTotalCalc.php | 2.7 KB | 2020-12-19T16:24:50+00:00 |
| MovementOfGoods.php | 65.8 KB | 2020-12-19T16:24:47+00:00 |
| OtherValidations.php | 10.9 KB | 2020-12-19T16:24:45+00:00 |
| Payments.php | 50.2 KB | 2020-12-19T16:24:47+00:00 |
| SalesInvoices.php | 78.8 KB | 2020-12-19T17:20:27+00:00 |
| Schema | ||
| ValidationConfig.php | 7.2 KB | 2020-12-19T16:24:43+00:00 |
| WorkingDocuments.php | 58.6 KB | 2020-12-19T16:24:50+00:00 |
| XmlStructure.php | 3.3 KB | 2020-12-19T16:24:51+00:00 |
| Total: 1 directories,12 files |


Haven women's refuge launches festive appeal
A charity aimed at helping women and children escape domestic violence and abuse has launched its annual Christmas appeal.
by Heather LargeThe Haven in Wolverhampton is running a number of initiatives to help raise vital funds and spread festive cheer.
Firstly it is appealing for donations as part of the Big Give scheme to help fund its range of therapeutic services which help women and children the short and long-term effects of domestic abuse.
Contributions are doubled if they are made through the Big Give website from 12pm on December 3 to 10.
The charity also wants to provide all of the women and children in its refuges with a Christmas dinner with all the trimmings.
It is appealing for supermarket vouchers or cash donations towards food.
The Haven is also encouraging schools and offices to host a Christmas jumper day in lieu of sending cards to colleagues.
Groups can request a free giant Christmas card poster to display at their event with space to add a festive message to their friends or colleagues.
Designed
But people who would like to send Christmas cards can still support the charity by purchasing its own specially designed packs.
A six-year-old boy in one of the refuges has designed a Christmas card this year and they cost £3.50 for a pack of 10.
Finally, the charity is grateful for donations of new toys and gifts and new single bedding sets for children.
People are asked to donate them unwrapped so women and children can choose and wrap gifts themselves for an extra personal touch.
Fundraiser manager Jade Secker said: "Everyone at The Haven is so grateful to all of those in the community that go above and beyond to help us make Christmas a little brighter for those who have fled domestic abuse.
"Christmas is supposed to be a time for family festivities and positive memories, however, this can be a really difficult time of year for those who are supported by The Haven.
"There are lots of ways that people can help us to make Christmas special, and we hope as many people as possible will help us create the all-round experience that the women and children we support truly deserve."
To find out more call the charity on 01902 904 677 ext 3000 or email give@havenrefuge.org.uk


Everyone is very welcoming in Puntal del Este and English is spoken in the Marina office as well as at the yacht club. Cruisers have reported to feel safe here. During the low season the cost of berthing is greatly reduced from the December to February season, when the population expands ten fold or more, as does the local yachting activity.
Contact Control Maritimo when arriving and departing on VHF 16/13.
Officials do not board yachts for clearance. Formalities are carried out in the marina complex and include Aduana (Customs) and Prefectura (Coast Guard).
Immigration is now handled at the Capitán de Corbeta Carlos A. Curbelo International Airport, located near Laguna del Sauce on the outskirts of the city. First you will need to visit the Prefectura, followed by a bus to the airport for immigration, then Customs and finally Prefectura again back at the marina.
You will be required to show that you have paid the marina before you can be cleared out by the Prefectura.
Last updated March 2013.
The only place to stay in a marina in Punta Del Este is at the Municipal Marina. There are two yacht clubs also, however these are for members only. The Yacht Club Punta Del Este is located on the same grounds as the marina complex, which also has all the Uruguayan Authorities offices (see the Customs and Coast Guard building on the right of the picture with the Punta del Este lighthouse on the left).
There are plenty of moorings, some are free and others can be hired for a daily fee which includes a launch service; however, you may well be required to take and pay for a berth in the marina. Note that you must show that you have paid the marina before you can be cleared by the Prefectura (Uruguay Coast Guard).
Last updated March 2013.


{% extends "templates/new_base.html" %} {% block content %} {% include "templates/S_breadcrumbs.html" %}


We recommend these four hotels.
The location of all these hotels are available on This map
Paris Marriott Rive Gauche Hotel is really close to the conference location, but this is a rather expensive hotel (200+ euros per night).
The Kyriad Hotel, in Porte d'Ivry, has special rates (see How To Book at bottom of the page) :
Breakfast and wifi internet access are included in this rate.
Note that two of the hotels are outside the city of Paris. You should remember this if you want to enjoy Paris' nightlife, as cab drivers usually don't like to go outside of Paris after 10 PM. These hotels still have good public transportation to the conference area during most hours - trains and metro runs from 6AM to 12PM.
There are also a number of other hotels in the general area available from regular travel booking sites. They usually have only a few rooms available and no special rates for us. If you look there, we recommend you look in the general areas of Place d'Italie or Montparnasse.
We recommend that you book your room as soon as possible.  Hotels are full really early, so don't wait to get a room.
Information to provide to have access to our prices are :
Give us your feedback!
Volunteers
Sponsors
Speakers
Donate
Contact us


My long term goal is to be able to make a positive difference on the world through the use of tech. I like the idea of projects like vaxx.nz and Time in the line where a technical solution can be made to improve a problem in the world. I'm still unsure around whether I want a full time developer role where I don't get to decide what to develop. I like the creative aspect of design so I think I would find it hard if that was taken away and was someone elses role to do.
I would like to be able to leave Dev Academy with enough knowledge to be able come up with a solution to a problem if I identify it. I don't expect to know everything but with enough knowledge that I would be able to figure it out for myself. I would really like to be able to be comfortable with using APIs from different sites so I can "play" with them and try doing cool things with them!
I would like to learn how to have more fun/be less serious while still achieving high results. I would also like to feel more comfortable reaching out to new people and working with them.
I am going into bootcamp with the expectation that the courseload will be quite intensive and as such am expecting to dedicate majority of my time to this course. I may need to work a little throughout but am limited to a maxiumum of 10hours a week.
I will try to be mindful of the rising stress levels and attempt to put it into perspective before it becomes too overwhelming. If I find myself stuck I will work on identifying what it is that is making me stressed and break it down to find a way forward. I will communicate how I am going to the facilitators and reach out for support if I find I am needing it. I will also use exercise as a way to step a way from the problem and give my mind a break as to come back to the issue feeling more fresh
If there is something I am stuck on I will first try and resolve by myself by trying to isolate the problem and use online resources to troubleshoot what's going on. If I cannot resolve by myself I will reach out and ask another student for assistance. If still stuck I will seek the guidance from a facilitator.
I would like to ensure what I am learning is Industry best practice and that if I am going off course in anyway they are able to advise me of this
I don't have any other commitments that I can forsee blocking me in some way - The course is my number one priority until it finishes
My long term goal is to be able to make a positive difference on the world through the use of tech. I like the idea of projects like vaxx.nz and Time in the line where a technical solution can be made to improve a problem in the world.
I would like to be able to leave Dev Academy with enough knowledge to be able come up with a solution to a problem if I identify it. I don't expect to know everything but with enough knowledge that I would be able to figure it out for myself.
I would like to learn how to have more fun/be less serious while still achieving high results.
For the foundations coursework I will make completion of this my priority each week. I will look ahead at the following sprints and identify what sprints I may need to dedicate more time on and where I might be familiar with the content.
I will try to be mindful of the rising stress levels and attempt to put it into perspective before it becomes too overwhelming. If I find myself stuck I will work on identifying what it is that is making me stressed and break it down to find a way forward. I will communicate how I am going to the facilitators and reach out for support if I find I am needing it. I will also use exercise as a way to step a way from the problem and give my mind a break as to come back to the issue feeling more fresh
If there is something I am stuck on I will first try and resolve by myself by trying to isolate the problem and use online resources to troubleshoot what's going on. If I cannot resolve by myself I will post of the foundations channel or during bootcamp ask another student for assistance. If still stuck I will seek the guidance from a facilitator.
Industry best practice Advise if I'm going astray
During foundations I will be still doing some part time work at maxiumum 10hours per week. I have advised work that when I move down to Wellington it is unlikely that I will be able to work due to the workload.


Table of Contents
This chapter describes issues pertaining to running a JE replication application. The topics discussed here have to do with hardware configuration, backups, node configuration, and other management issues that exist once the application has been placed into production.
A JE replicated application should run well on typical commodity multi-core hardware, although greater hardware requirements than this may be driven by the architecture of your particular application. Check with the software developers who wrote your JE replicated application for any additional requirements they may have over and above typical multi-core hardware.
That said, keep the following in mind when putting a JE replication application into production:
Examine the hardware you intend to use, and review it for common points of failure between nodes in the replication groups, such as shared power supplies, routers and so forth.
The hardware that you use does not have to be identical across the entire production hardware. However, it is important to ensure that the least capable electable node has the resources to function as the Master.
The Master is typically the node where demand for machine resources is the greatest. It needs to supply the replication streams for each active Replica, in addition to servicing the transaction load.
Note that JE requires Monitor nodes to have minimal resource consumption (although, again, your application developers may have written your Monitor nodes such that they need resources over and above what JE requires), because Monitor nodes only listen for changes in the replication group.
Finally, your network is a critical part of your hardware requirements. It is critical that your network be capable of delivering adequate throughput under peak expected production work loads.
Remember that your replicated application can consume quite a lot of network resources when a Replica starts up for the first time, or starts up after being shutdown for a long time. This is because the Replica must obtain all the data that it needs to operate. Essentially, this is a duplicate of the data contained by the Master node. So however much data the Master node holds, that much data will be transmitted across your network per node every time you start a new node.
For restarting nodes, the amount of data that will cross your network is equal to the delta between the time the Replica last shutdown and the state of your Master node at the time that the Replica is starting up again. If the Replica has been down for a long time (days or weeks), this can be quite a lot of data, depending on your Master node's workload.
Be aware, however, that restarting nodes do not have to get their data from the Master node. It is possible for them to catch up, or nearly catch up, using data obtained from some other currently running Replica. See Restoring Log Files for more information.
Good application performance also depends on the latency of network connections used by electable and monitor nodes to perform elections, report election results, and obtain acknowledgments. Consider deploying secondary nodes on machines with higher latency connections to the other members of the replication group, keeping in mind that these nodes still have the same throughput requirements as electable nodes.


CHECK
YO'
SELF
Task Title
Task Item
Make Task List
Clear All
Filter by Urgency
Enter A New To Do Title and Task List Within Left Side Fields


|
First Trimester of Pregnancy [4]
( Less than14 weeks 0 days)
|
|
Weeks 1 and 2 of Pregnancy |
|
|
During the first two weeks
after the last menstrual period egg follicles mature in
the ovaries
under the stimulus of follicle-stimulating hormone (FSH) a
hormone secreted by the pituitary gland in the brain. High
levels of the hormone estradiol, produced by the developing
egg follicle, cause secretion of luteinizing hormone (LH)
,yet another hormone from the pituitary gland. LH causes
release of the egg from its follicle (ovulation) For women with 28-day cycles, ovulation usually
occurs on days 13 to 15. |
Gestational Age 3 weeks . Embryonic Age 1 week . |
|
|
- During the third week, if fertilization occurs , the
fertilized egg (called a zygote) will begin producing the
hormone human chorionic gonadotropin (the pregnancy hormone)
- Human chorionic gonadotropin first becomes detectable in
the mother's blood and urine between 6 and 14 days after
fertilization (3 to 4 weeks gestational age).
- During the 3rd week the sex of the fetus is determined
by the father's sperm,
and twins may be formed.
- Fatigue and swollen or tender breasts are sometimes the
first signs of pregnancy.
|
Gestational Age 4 weeks
( 0.9 months) .
Embryonic Age 2 weeks |
|
The embryo
is the size of a pinhead.
Most pregnancy tests will be positive at this time . |
Gestational Age 5
weeks
(1.2 months) .
Embryonic Age 3 weeks |
|
|
- The brain, spine, and heart have begun to form. By
the end of the week the heart will be pumping blood.
- Week 5 is the beginning of the embryonic period which
lasts from the the 5th to the 10th week.
- It is during this critical period that many birth
defects occur in the developing embryo.
- Most of these birth defects will have no known cause or
be due to a combination of factors (multifactorial).
|
Gestational Age 6
weeks
(1.4 months) .
Embryonic Age 4 weeks |
|
|
- The
embryo is now about the
size of a pea.
- The average
crown to rump length is about 0.2 inches (0.4 cm)
- The eyes,
nostrils , and arms are taking shape.
- The heart is
beating at about 110 beats per minute and sometimes may be
seen using a transvaginal ultrasound at this time.
|
Gestational Age 7
weeks (1.6 months)
.
Embryonic Age 5 weeks |
|
|
- The embryo is now about 0. 4
inches (1 cm ) long.
- This week the hands and feet
are forming as well as the mouth and face.
- The heart
is beating at about 120 beats per minute. Movement of the embryo
can be detected by ultrasound.
-
By week 7 the trachea and bronchi of the lungs have formed ,
and the pseudoglandular stage of lung development
begins [17]
-
Crownrump length of 7 mm or greater and no heartbeat, or
mean sac diameter of 25 mm or greater and no embryo is
considered consistent with early pregnancy loss [20]
|
Gestational Age 8
weeks (1.8
months)
.
Embryonic Age 6 weeks |
| |
The average embryo
at 8 weeks
is 0.6 inches (1.6 cm) long and weighs less than 1/2
ounce (15
grams) .
- The embryo is about the size of
a bean. The fingers and toes are developing.
-
In a process is called physiological gut herniation , the intestine elongates and moves
outside of the abdomen herniating into the base of
the umbilical cord and rotate counter-clockwise at about 8 weeks . The intestine returns into the fetal abdomen by about 12 weeks
[18] .
|
Gestational Age 9
weeks (2.1
months)
.
Embryonic Age 7 weeks |
|
- The heart is
beating at about 170 beats per minute.
-
The average embryo
at 9 weeks is 0.9 inches (2.3 cm) long and weighs less than 1/2
ounce (15
grams) .
|
Gestational Age 10
weeks
(2.3 months)
.
Fetal Age
8 weeks |
| |
- The embryo's
tail has disappeared and it is now called a fetus. Fingerprints
are being formed [11], and bone cells are replacing cartilage.
-
The average fetus at
10 weeks is
1.2 inches (3.2 cm) long and weighs 1.2 ounces (35
grams) .
|
Gestational Age 11
weeks
(2.5 months)
.
Fetal Age 9 weeks |
|
|
- The fetus
is starting to have breathing movements . It can open its mouth and swallow.
-
The average fetus at
11 weeks is
1.6 inches (4.2 cm) long and weighs 1.6 ounces (45
grams) .
|
Gestational Age 12
weeks (2.8
months)
.
Fetal Age 10 weeks |
| |
- The fetus is starting to make
random movements .
- The fetus begins to
concentrate iodine in its thyroid and produce thyroid
hormone at about this time.
- The pancreas is beginning to
make insulin, and the kidneys are producing urine. The heart beat can usually
be heard with and
electronic monitor at this time.
-
The average fetus at
12 weeks is
2.1 inches (5.3 cm) long and weighs 2 ounces (58
grams) .
|
Gestational Age 13
weeks (3 months)
.
Fetal Age 12 weeks |
| |
The average fetus at
13 weeks is
2.5 inches (6.5 cm) long and weighs 2.6 ounces (73
grams) .
- All major organs are formed
now, but they are too immature for the fetus to survive out of
the womb.
-
Physiological gut herniation should be complete by this time
-
The fetal bladder can be consistently seen using ultrasound after 13
weeks [24].
|
|
Second Trimester of Pregnancy
(14 weeks and 0 days through 27 weeks and 6 days)
|
Gestational Age 14
weeks (3.2
months)
.
Fetal Age 12 weeks |
| |
- The
fetus's toenails are
appearing . The gender may sometimes be seen
-
The average fetus at
14 weeks is 3.1 inches (7.9 cm) long and weighs 3.3
ounces (93
grams) .
|
Gestational Age 15
weeks (3.5
months)
.
Fetal Age 13 weeks |
| |
- Fetal movement may be sensed now (called quickening). Some
mothers don't feel the fetus moving until about 25
weeks.
-
The average fetus at
15 weeks is 6.4 inches (16.4 cm) long and weighs 4.1
ounces (117
grams) .
|
Gestational Age 16 to 17
weeks (3.7
to 3.9 months)
.
Fetal Age 14 to 15 weeks |
| |
The average 16
week fetus is 7.1 inches (18.3 cm) long and weighs
5.2 ounces (146
grams) .
- Hearing is
beginning to form [12].
- The canalicular period of lung development has
started and will continue until 25 weeks [17]
The average 17 week
fetus is 7.9 inches (20.1 cm) long and weighs 6.4
ounces (181
grams) .
- The pseudoglandular stage of lung development ends at about 17 weeks
. There are still NO ALVEOLI (the air sacs in the lungs where the exchange of oxygen and carbon dioxide occurs), so respiration is not possible at this time
[17].
|
Gestational Age 18
weeks
(4.1 months)
.
Fetal Age 16 weeks |
| |
- The ears are standing out, and
the fetus is beginning to respond to sound.
-
The average 18 week fetus is
8.6 inches (22 cm) long and weighs 7.9 ounces (223
grams) .
-
The cerebellar vermis can be demonstrated to be fully formed on
ultrasound [22].
|
Gestational Age 19
weeks (4.4
months)
.
Fetal Age 17 weeks |
|
|
- The ears, nose and lips are
now recognizable.
-
The average fetus at
19 weeks is 9.3 inches (23.7 cm) long and weighs
9.6 ounces (273
grams) .
|
Gestational Age 20
weeks (4.6
months)
.
Fetal Age 18 weeks |
| |
- The fetus is covered in fine
hair (called lanugo) , has some scalp hair, and is capable of producing IgG and IgM ( two types of antibodies)
-
The average fetus at
20 weeks is 9.9 inches (25.5 cm) long and weighs
11.7 ounces (331
grams) .
|
Gestational Age 21
weeks (4.8
months)
.
 Some women may begin
feeling Braxton Hicks contractions at this time.
-
The average fetus at
21 weeks is 10.6 inches (27.2 cm) long and
weighs 14.1 ounces (399
grams) .
|
|
Gestational Age 22
weeks (5.1 months)
.
Fetal Age 20 weeks |
|
|
-
The average fetus at
22 weeks is 11.2 inches (28.8 cm)
long and weighs 1.1 pound (478
grams) .
- Survival out of the womb at this age would be expected
to be ~9%.
- Survival without major morbidity* among infants
surviving to discharge would be expected to be 0% [21]
|
Gestational Age 23
weeks (5.3
months)
.
Fetal Age 21 weeks |
| |
- The fetus is having rapid eye
movements during sleep.
-
The average fetus at
23 weeks is 11.9 inches (30.4 cm)
long and weighs 1.2 pounds (568
grams) .
-
The entire corpus callosum may not be be seen using transabdominal ultrasound
before this age [23].
-
Survival out of the womb at this age would be expected to be
~33%.
-
Survival without major morbidity* among infants surviving to
discharge would be expected to be ~2% [21]
|
Gestational Age 24 weeks
(5.5 months)
.
Fetal Age 22 weeks |
| |
-
The average fetus at
24 weeks is 12.5 inches (32 cm) long
and weighs 1.5 pounds (670
grams) .
-
The terminal saccular stage of lung development
has started [17]
-
Survival out of the womb at this age would be expected to be
~65%.
-
Survival without major morbidity* among infants surviving to discharge would be expected to be ~
9% [21]
|
|
Gestational Age 25
weeks (5.8 months)
.
Fetal 23 weeks |
| |
-
The average fetus at
25 weeks is 13.1 inches (33.6 cm)
long and weighs 1.7 pounds (785
grams) .
- The
canalicular period of lung development is ending. Respiration is possible towards
the end of this period [17,19]
-
Survival out of the womb at this age would be expected to be
~81%.
-
Survival without major morbidity* among infants surviving to discharge would be expected to be ~ 25%
[21]
|
Gestational Age 26 weeks (6
months)
.
Fetal Age 24 weeks |
| |
- The fetus can respond to
sounds that occur in the mother's surroundings. It's eyelids can open
and close
-
The average fetus at
26 weeks is 13.7 inches (35.1 cm)
long and weighs 2 pounds (913
grams) .
-
Survival out of the womb at this age would be expected to be
~87%.
-
Survival without major morbidity* among infants surviving to discharge would be expected to be ~ 29%
[21]
|
|
Gestational Age 27
weeks (6.2 months)
.
Fetal Age 25 weeks |
| |
-
The average fetus at
27 weeks is 14.2 inches (36.5 cm)
long and weighs 2.3 pounds (1055
grams) .
-
Survival out of the womb at this age would be expected to be
~94%.Survival without major morbidity* among infants surviving to discharge would be expected to be ~
50%
[21]
|
|
Third Trimester of Pregnancy
(28 weeks 0 days through delivery)
|
Gestational Age 28 weeks (6.4 months)
.
Fetal Age 26 weeks |
| |
The
fetus has eyelashes and
it's skin is red and covered with vernix caseosa a waxy
substance that is believed to act as a protective film with
anti-infective and waterproofing properties.
-
The average fetus at
28 weeks is 14.8 inches (37.9 cm)
long and weighs 2.7 pounds (1210
grams) .
-
Survival out of the womb at this age would be expected to be
~94%.
-
Survival without major morbidity* among infants surviving to discharge would be expected to be ~ 59%
[21]
|
|
Gestational Age 29 to 31
weeks (6.6
months to 7.1 months)
.
Fetal Age 27 to 29 weeks |
| |
-
The average fetus at
29 weeks is 15.3 inches (39.3 cm) long and
weighs 3 pounds (1379 grams) .
-
The average fetus at
30 weeks is 15.8 inches (40.6 cm)
long and weighs 3.4 pounds (1559
grams) .
-
The average fetus at
31 weeks is 16.4 inches (41.9 cm)
long and weighs 3.9 pounds (1751
grams) .
|
Gestational Age 32 to 33
weeks (7.4
to 7.6 months)
.
Fetal Age 30 to 31 weeks |
|
|
The fetus is forming muscle
and storing body fat. If the fetus is a boy, his testicles are
descending.
-
The average fetus at
32 weeks is 16.8 inches (43.2 cm)
long and weighs 4.3 pounds (1953
grams) .
-
The average fetus at
33 weeks is 17.3 inches (44.4 cm)
long and weighs 4.8 pounds (2162
grams) .
-
T he distal femoral epiphysis
ossification center
can usually be seen
in 72 % of fetuses at 33 weeks
[13,14]
|
Gestational Age 34 to 36
weeks (7.8
to 8.3 months)
.
Fetal Age 32 to 34 weeks |
| |
The fetus is now considered to
be late preterm
-
The average 34 week fetus is 17.8
inches (45.6 cm) long and weighs 5.2 pounds
(2377 grams)
-
The average 35 week fetus is 18.2 inches
(46.7 cm) long and weighs 5.7 pounds (2595
grams)
- T he proximal tibial epiphysis ossification
center may be seen in 35 % of fetuses at 35 weeks [13,14]
-
The average 36 week fetus is 18.6 inches
(47.8 cm) long and weighs 6.2 pounds (2813
grams)
|
Gestational Age 37 to 38
weeks
( 8.5 to 8.7 months)
.
Fetal Age 35 to 36 weeks |
| |
The fetus is now considered to
be early term
-
The average 37 week fetus is 19.1 inches (
48.9 cm) long and weighs 6.7 pounds (3028
grams)
-
The average 38 week fetus is 19.5 inches
(49.9 cm) long and weighs 7.1 pounds (3236
grams)
- The proximal humeral epiphysis ossification center
may be seen at 38 weeks [15]
|
Gestational Age 39 to 41
weeks (9
to 9.4 months)
.
Fetal Age 37 to 39 weeks |
|
|
The fetus is now full term.
-
The average 39 week fetus is 19.8
inches (50.9 cm) long and weighs 7.6 pounds
(3435 grams)
-
The average 40 week fetus is 20.2 inches
(52 cm) long and weighs 8 pounds (3619 grams)
-
The average 41 week
fetus is 20.5 inches (52.7 cm) long
and weighs 8.3 pounds (3787 grams) .
|
|
*Major morbidity defined
as 1 or more of necrotizing enterocolitis (NEC), sepsis, ,meningitis,
bronchopulmonary dysplasia (BPD), severe intracranial hemorrhage (ICH),
periventricular leukomalacia (PVL), and retinopathy of prematurity (ROP)
stage 3 or greater . Outcomes are based on specific characteristics in a specific setting: level III NICUs, specialized facilities offering medical care for newborn infant
Reviewed 3/31/2019
References
1. Hadlock FP et. al.,Fetal crown-rump
length: reevaluation of relation to menstrual age (5-18 weeks) with
high-resolution real-time US. Radiology. 1992 Feb;182(2):501-5.PMID:
1732970
2. Vintzileos AM, Campbell WA, Neckles S, Pike CL, Nochimson DJ.The
ultrasound femur length as a predictor of fetal length.PMID: 6390277
3. Hadlock FP, et al., Estimating fetal age:Computer-assisted
analysis of multiple fetal growth parameters. Radiology 1984;
152:497-5011. PMID:
673982
4. The Centers for Medicare & Medicaid Services, CMS,
https://www.cms.gov/Medicare/Coding/ICD10/Downloads/ICD10ClinicalConceptsOBGYN1.pdf.
Accessed 11/21/2015
5. Definition of term pregnancy. Committee Opinion No. 579. American
College of Obstetricians and Gynecologists. Obstet Gynecol
2013;122:113940.
6. Engle WA; American Academy of Pediatrics Committee on Fetus and
Newborn. Age terminology during the perinatal period. Pediatrics.
2004 Nov;114(5):1362-4.
7. Hay DL, Lopata A.Chorionic gonadotropin secretion by human
embryos in vitro. J Clin Endocrinol Metab. 1988
Dec;67(6):1322-4.PMID: 2461389
8. Lohstroh P, et al. Daily immunoactive and bioactive human
chorionic gonadotropin profiles in periimplantation urine samples.
Biol Reprod. 2006 Jul;75(1):24-33. Epub 2006 Mar 8
9. Moore KL, Persaud TVN, The developing human: clinically oriented
embryology, 7th edition, Saunders, 2003:520.
10. Brent RL. The effect of embryonic and fetal exposure to x-ray,
microwaves, and ultrasound: counseling the pregnant and nonpregnant
patient about these risks. Semin Oncol 1989;16:34768.
11 . Kcken M, Newell AC. Fingerprint formation.J
Theor Biol. 2005 Jul 7;235(1):71-83. PMID: 1583331
12. Development of fetal hearing.Hepper PG, Shahidullah BS.
Arch Dis Child. 1994 Sep;71(2):F81-7.
PMID: 7979483
13. Ultrasonographic assessment of gestational age with the distal
femoral and proximal tibial ossification centers in the third
trimester. Goldstein
I, Lockwood C, Belanger K, Hobbins J. ;Am J Obstet Gynecol 1988;158:12730.
14. Butt K, Lim K; Society of Obstetricians and Gynaecologists of
Canada.Determination of gestational age by ultrasound. J Obstet
Gynaecol Can. 2014 Feb;36(2):171-83. PMID: 24518917
http://sogc.org/wp-content/uploads/2014/02/gui303CPG1402E.pdf
15. Nazrio AC, et. al.Proximal humeral ossification center of
the fetus: time of appearance and the sensitivity and specificity of
this finding.
J Ultrasound Med. 1993 Sep;12(9):513-5. PMID: 8107180
http://www.jultrasoundmed.org/content/suppl/2015/05/14/12.9.513.DC1/12.09.513.pdf
16.
Engle WA; American Academy of Pediatrics Committee on Fetus and Newborn.Age terminology during the perinatal period. Pediatrics. 2004
Nov;114(5):1362-4.PMID: 15520122
17. Warburton D, et. al., Lung organogenesis. Curr
Top Dev Biol. 2010;90:73-158. PMID: 20691848
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3340128/
18.
Green JJ, Hobbns JC.
Abdominal ultrasound examination of the first-trimester fetus. Am J
Obstet Gynecol 159:165-175, 1988 PMID: 3293446
20.
Doubilet PM, Benson CB, Bourne T, Blaivas M, Barnhart KT, Benacerraf BR, et
al. Diagnostic criteria for nonviable pregnancy early in the first
trimester. Society of Radiologists in Ultrasound Multispecialty Panel on
Early First Trimester Diagnosis of Miscarriage and Exclusion of a Viable
Intrauterine Pregnancy. N Engl J Med 2013;369:144351.
21. Stoll BJ, et. ai., Eunice
Kennedy Shriver National Institute of Child Health and Human Development
Neonatal Research Network. Trends in Care Practices, Morbidity, and Mortality of
Extremely Preterm Neonates, 1993-2012.JAMA. 2015 Sep 8;314(10):1039-51. doi:
10.1001/jama.2015.10244.
PMID: 26348753
22. Bromley B, et. al. Closure of the cerebellar vermis:
evaluation with second trimester US.
Radiology. 1994 Dec;193(3):761-3.
PMID: 7972820
23. Bennett GL Agenesis of the corpus callosum: prenatal detection
usually is not possible before 22 weeks of gestation.Radiology. 1996
May;199(2):447-50. PMID: 8668792
24 Brumfield CG, The significance of non-visualization of the fetal
bladder during an ultrasound examination to evaluate
second-trimester oligohydramnios. Ultrasound Obstet Gynecol. 1996
Sep;8(3):186-91. PMID: 8915088
25. Engle WA; American Academy
of Pediatrics Committee on Fetus and Newborn.Age terminology during
the perinatal period. Pediatrics. 2004 Nov;114(5):1362-4.PMID: 15520122
26. van Furth R, Schuit HR, Hijmans W (1965). "The immunological development of the
human fetus". J. Exp. Med. 122 (6): 117388. doi:10.1084/jem.122.6.1173. PMC
2138097. PMID: 4159036
27. McIntire DD, Leveno KJ. Neonatal mortality and morbidity rates in late preterm births compared with births at term. Obstet Gynecol. 2008;111:3541PMID: 18165390
|


Honzi/Bookmarks/Honzifox's EVE/Items to Buy for Fittings
- Armor Plates:
- 1600mm Imperial Navy Steel Plates
- 400mm Imperial Navy Steel Plates
- 800mm Imperial Navy Steel Plates
- Large Abyssal Armor Plates
- Medium Abyssal Armor Plates
- Automated Targeting Systems: Auto Target System 2
- Cargo Scanners: Cargo Scanner 2
- Cloaks:
- Covert:
- 'Smokescreen' Covert Ops Cloaking Device 2
- Covert Ops Cloaking Device 2
- Default:
- Estamel's Modified Cloaking Device
- CONCORD Modified Cloaking Device
- Dread Guristas Cloaking Device
- Caldari Navy Cloaking Device
- Combat Drones: All Faction Drones
- Damage Controls:
- Cormack's Modified Damage Control
- Sentient Damage Control
- Abyssal Damage Control
- Drone Damage Amplifiers:
- Unit W-634's Modified Drone Damage Amplifier
- Sentient Drone Damage Amplifier
- Mutated Drone Damage Amplifier
- Drone Damage Amplifier 2
- Drone Link Augmentors:
- Unit W-634's Modified Drone Link Augmentor
- Black Eagle Drone Link Augmentor
- Drone Link Augmentor 2
- Drone Navigation Computers:
- Unit W-634's Modified Drone Navigation Computer
- Sentient Drone Navigation Computer
- Drone Tracking Enhancers:
- Unit W-634's Modified Omnidirectional Tracking Link
- Sentient Omnidirectional Tracking Link
- Electronic Warfare Drones: Hornet EC-300
- Energized Armor Membranes:
- Chelm's Modified Multispectrum Energized Membrane
- Draclira's Modified Multispectrum Energized Membrane
- Corpum A-Type Multispectrum Energized Membrane
- Centum A-Type Multispectrum Energized Membrane
- Imperial Navy Multispectrum Energized Membrane
- Energy Neutralizers: Medium 'Ditch' Energy Neutralizer
- Energy Nosferatus: Heavy Abyssal Energy Nosferatu
- Energy Weapons:
- Civilian Gatling Pulse Laser
- Imperial Navy Tachyon Beam Laser
- Polarized Heavy Pulse Laser
- Frequency Crystals:
- Multifrequency S, M, L, XL
- Radio S, M, L, XL
- Heat Sinks:
- Makur's Modified Heat Sink
- Draclira's Modified Heat Sink
- Chelm's Modified Heat Sink
- Imperial Navy Heat Sink
- Heat Sink 2
- Hull Repair Units: Small 'Integrative' Hull Repair Unit
- Implants:
- Learning:
- Improved +5
- RR-605
- MY-705
- RX-804
- Tank:
- High-Grade Amulet
- High-Grade Nirvana
- SM-706
- MC-806
- SP-906
- HG-1008
- Micro Jump Drives:
- Medium Micro Jump Drive
- Large Micro Jump Drive
- Mining Drones:
- 'Augmented' Mining Drone
- Mining Drone 1
- Mobile Depots: 'Yurt' Mobile Depot
- Mobile Tractor Units:
- 'Magpie' Mobile Tractor Unit
- Mobile Tractor Unit
- Mutaplasmids:
- Heavy Drone Durability
- Light Drone Durability
- Medium Drone Durability
- Unstable Damage Control
- Unstable Large Armor Plate
- Unstable Large Shield Extender
- Unstable Medium Armor Plate
- Unstable Medium Shield Extender
- Propulsion 100MN:
- Tobias' Modified 100MN Afterburner
- Gist X-Type 100MN Afterburner
- 100MN Afterburner 2
- Propulsion 500MN:
- Tobias' Modified 500MN Microwarpdrive
- Gist X-Type 500MN Microwarpdrive
- 500MN Microwarpdrive 2
- Propulsion Other:
- Corelum A-Type 10MN Afterburner
- Federation Navy 10MN Afterburner
- Gistum A-Type 10MN Afterburner
- Gistum A-Type 50MN Microwarpdrive
- Reinforced Bulkheads: Syndicate Reinforced Bulkheads
- Repair Drones: All T2 Repair Drones
- Rigs for Armor:
- Large Trimark Armor Pump 2
- Medium Trimark Armor Pump 2
- Rigs for Hull:
- Capital Transverse Bulkheads 2
- Large Transverse Bulkheads 2
- Rigs for Shields:
- Large Core Defense Field Extender 2
- Large Core Defense Field Purger 2
- Medium Core Defense Field Extender 2
- Rigs for Weapons:
- Medium Energy Collision Accelerator 2
- Medium Energy Metastasis Adjuster 1
- Salvage Drones: 'Dunk' Salvage Drone
- Scan Probe Launchers:
- Sisters Core Probe Launcher
- Sisters Expanded Probe Launcher
- Scanner Probes:
- Sisters Combat Scanner Probe
- Sisters Core Scanner Probe
- Scanning Upgrades:
- Scan Pinpointing Array 2
- Scan Rangefinding Array 2
- Scripts:
- Optimal Range Script
- Scan Resolution Script
- Targeting Range Script
- Tracking Speed Script
- Sensor Boosters:
- Cormack's Modified Sensor Booster
- Sentient Sensor Booster
- Shield Extenders:
- Abyssal Shield Extenders
- Thukker Large Shield Extender
- Thukker Medium Shield Extender
- Thukker Small Shield Extender
- Shield Hardeners:
- Estamel's Modified EM Shield Hardener
- Estamel's Modified Explosive Shield Hardener
- Estamel's Modified Kinetic Shield Hardener
- Estamel's Modified Multispectrum Shield Hardener
- Estamel's Modified Thermal Shield Hardener
- Multispectrum Shield Hardener 2
- Pith X-Type EM Shield Hardener
- Pith X-Type Explosive Shield Hardener
- Pith X-Type Kinetic Shield Hardener
- Pith X-Type Thermal Shield Hardener
- Pithum A-Type Multispectrum Shield Hardener
- Shield Power Relays: Caldari Navy Shield Power Relay
- Ships:
- Ark
- Bowhead
- Dominix, Navy, Sin
- Impel, Bestower
- Legion +subsystems
- Monitor
- Orca
- Paladin, Apocalypse
- Proteus +subsystems
- Ship Scanners: Ship Scanner 2
- Siege Modules: Bastion Module 1
- Stasis Webifiers:
- Tobias' Modified Stasis Webifier
- Shadow Serpentis Stasis Webifier
- Target Painters: Domination Target Painter
- Tracking Computers:
- Cormack's Modified Tracking Computer
- Shadow Serpentis Tracking Computer
- Tracking Computer 2
- Tracking Enhancers:
- Tobias' Modified Tracking Enhancer
- Domination Tracking Enhancer
- Tracking Enhancer 2
- Tractor Beams: Small Tractor Beam 2
- Warp Disruptors:
- Dark Blood Warp Disruptor
- Warp Disruptor 2
- Warp Scramblers: Domination Warp Scrambler


Games
Cube Islands
Racing
Fastfood
Cards
Numbers
Apps
Time is up
Heating
Bullshit Bingo
Test
Geowalk


flow-split [-gGhn] [-b big|little] [-C comment] [-d debug_level] [-N nflows] [-o outfile_basename] [-T nseconds] [-z z_level]
The flow-split utility will split a flow file into smaller files based on the the number of flows or the ammount of time that has passed.
Byte order of output.
Add a comment.
Enable debugging.
Split on source tag.
Split on destination tag.
Display help.
Use symbols for tag field in filename.
Split after processing nflows.
The basename of the resulting files.
Split after processing an interval of nseconds flows.
Configure compression level to z_level. 0 is disabled (no compression), 9 is highest compression.


ATDNA Reference
For general information on ATDNA, please read the overview article.
Contents |
Defining a DNA Record
atdna
will only emit code for C++ records (structs, classes, unions) that
subclass (directly or indirectly) athena::io::DNA<athena::Endian>
. The
DNA base-class is defined in AthenaCore and can be included using
<athena/DNA.hpp>
. A master byte-order
(endianness)
must be selected at this time (athena::BigEndian
or athena::LittleEndian
).
In addition to the inheritance, the DNA::read()
and DNA::write()
methods
must be declared within the subclass. A convenience macro DECL_DNA
is provided
to take care of this automatically.
#include <athena/DNA.hpp>
struct MyFirstDNA : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<atUint32> myInt;
};
Adding DNA Fields
atdna
uses C++11
type alias
template specializations to define DNA layouts. These templates are as follows:
Value
Value<typename type, athena::Endian endian = Inherit> myValue;
Simple numeric primitive type in Athena. Any built-in integer or floating-point
type may be provided for the type
argument.
Athena uses the following, although atdna will work with built-in C types and
<stdint.h>
types as well:
| Type | Description |
|---|---|
atInt8 |
Signed 8-bit (char ) |
atUint8 |
Unsigned 8-bit (unsigned char ) |
atInt16 |
Signed 16-bit (short ) |
atUint16 |
Unsigned 16-bit (unsigned short ) |
atInt32 |
Signed 32-bit (long ) |
atUint32 |
Unsigned 32-bit (unsigned long ) |
atInt64 |
Signed 64-bit (long long ) |
atUint64 |
Unsigned 64-bit (unsigned long long ) |
bool |
Standard boolean type |
float |
32-bit IEEE 754 floating-point |
double |
64-bit IEEE 754 floating-point |
atVec3f |
3-component 32-bit IEEE 754 floating-point |
atVec4f |
4-component 32-bit IEEE 754 floating-point |
Vector
Vector<typename type, size_t countVar, athena::Endian endian = Inherit> myVector;
This is a wrapper template around
std::vector
which
represents a
contiguous table of records.
All standard vector operations are available through this type.
The type
argument determines the per-element data type used in the vector.
It must be a type compatible with Value or another DNA-record subclass.
The countVar
argument statically-evaluates the contents of the special macro
DNA_COUNT
. This macro captures a C expression which is evaluated to determine
how many elements the vector will be filled with.
Example
struct VectorDemo : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<atUint32> count;
/* I can also be defined out-of-line */
struct VectorElement : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<float> val1;
Value<float> val2;
};
Vector<VectorElement, DNA_COUNT(count)> vector;
};
Buffer
Buffer<size_t sizeVar> myBuffer;
General-purpose data-buffer. The Buffer template is implemented as an atUint8
variable-length buffer wrapped in
std::unique_ptr
.
Like Vector, the sizeVar
works via DNA_COUNT
to determine how many bytes
long the buffer should read and write.
Example
struct BufferDemo : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<atUint32> length;
Buffer<DNA_COUNT(length)> buffer;
};
String
String<size_t sizeVar = -1> myString;
General-purpose byte-character string. The String template is implemented as
a std::string
with
all available operations.
By default, strings are assumed to be null-terminated (size -1).
If the string is actually
fixed-length, the sizeVar
argument can be supplied with an integer literal
counting the string-buffer’s characters.
WString
WString<size_t sizeVar = -1, athena::Endian endian = Inherit> myWString;
General-purpose wide-character string. The WString template is implemented as
a std::wstring
with
all available operations.
By default, strings are assumed to be null-terminated (size -1).
If the string is actually
fixed-length, the sizeVar
argument can be supplied with an integer literal
counting the string-buffer’s characters.
UTF8
UTF8<size_t sizeVar = -1, athena::Endian endian = Inherit> myUTF8;
General-purpose multi-byte-character string. The UTF8 template is implemented as
a std::string
with
all available operations.
By default, strings are assumed to be null-terminated (size -1).
If the string is actually
fixed-length, the sizeVar
argument can be supplied with an integer literal
counting the string-buffer’s bytes.
Adding DNA Meta-Fields
atdna
provides more than data fields. DNA can also include meta-directives
for fine-grained control of the stream.
Seek
Seek<off_t offset, athena::SeekOrigin direction> mySeek;
Not all formats are easily read sequentially from start-to-finish. Sometimes some random-access is required to handle complex, variable-length formats.
The Seek template is provided to move the stream cursor. It works exactly like fseek, supplied with a count of bytes and a direction to seek relative to.
The offset
argument works with the DNA_COUNT
macro to evaluate a byte-count
expression within the record.
The direction
argument may be one of the following:
| athena::SeekOrigin | Description |
|---|---|
athena::Begin |
Offset from start of stream |
athena::Current |
Offset from present stream cursor |
athena::End |
Offset from end of stream |
Example
struct SeekDemo : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<atUint32> subRecordOffset;
Seek<DNA_COUNT(subRecordOffset), athena::Begin> seek1;
/* I start at the absolute subRecordOffset */
struct SubRecord : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<float> val1;
Value<float> val2;
} record;
};
Align
Align<size_t align> myAlign;
Some data formats are designed to be loaded as a cache-aligned data-blob. In order to maintain cache-alignment, padding-bytes are commonly inserted to bring the start of a sub-record to a 4, 8, 16, 32 byte-aligned position in the stream.
atdna
provides the Align template to automatically generate the most efficent
cursor-position evaluation; advancing forward to the nearest alignment multiple.
Example
struct AlignDemo : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
struct SubRecordOne : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<atUint32> val;
} one;
Align<32> align1;
/* I'm 32-byte aligned!! */
struct SubRecordTwo : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<atVec3f> val;
} two;
Align<32> align2;
/* I'm also 32-byte aligned!! */
struct SubRecordThree : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<atUint16> val1;
Value<atUint16> val2;
} three;
};
Delete
Delete myDelete;
Including a single instance of this field in a record prevents atdna
from
emitting streaming code for the whole record subclass. This is useful for
complex types where automatic DNA streaming isn’t practical.
It’s not necessary to use this type directly, the DECL_EXPLICIT_DNA
macro
automatically places a Delete field in the record. See
Writing Explicit Marshalling Functions below for details.
Inheriting DNA Record Types
atdna
is fully aware of type-inheritance involving DNA records. Chains of
DNA::read()
and DNA::write()
are automatically inserted for
indirectly-inherited DNA subclasses.
Base classes are always visited first, cascading to the individual subclass implementation.
Example
#include <athena/DNA.hpp>
struct BaseDNA : public athena::io::DNA<athena::BigEndian>
{
DECL_DNA
Value<atUint32> myInt;
};
struct SubDNA : public BaseDNA
{
DECL_DNA
Value<atUint32> mySubInt;
};
struct SubSubDNA : public SubDNA
{
DECL_DNA
Value<atUint32> mySubSubInt;
};
void readTest(athena::io::IStreamReader& reader)
{
SubSubDNA ssDna;
/* This call will run BaseDNA::read(), then SubDNA::read(),
* then SubSubDNA::read() */
ssDna.read(reader);
}
Writing Explicit Marshalling Functions
ATDNA is a one size fits many solution. For complex custom data structures like recursive index tables, trees and arbitrarily-chunked-formats, more customized streaming code is required.
The DECL_EXPLICIT_DNA
macro is an alternative to DECL_DNA
. When an explicit
record is defined, atdna
will skip emitting streaming code automatically.
The resulting program will fail to link, unless the programmer provides
replacement DNA::read()
and/or DNA::write()
implementations.
By convention, the implementation should start by setting the byte order on the
reader/writer using IStreamReader::setEndian()
or IStreamWriter::setEndian()
.
Example
#include <athena/DNA.hpp>
struct ExplicitDemo : public athena::io::DNA<athena::BigEndian>
{
DECL_EXPLICIT_DNA
Value<atUint32> myInt;
Value<atUint16> myShort;
};
void ExplicitDemo::read(athena::io::IStreamReader& reader)
{
reader.setEndian(athena::BigEndian);
myInt = reader.readUint32();
myShort = reader.readUint16();
}
void ExplicitDemo::write(athena::io::IStreamWriter& writer) const
{
writer.setEndian(athena::BigEndian);
writer.writeUint32(myInt);
writer.writeUint16(myShort);
}


library(tibble)
library(ggplot2)
When I mention code from Rand Wilcox, it is available in a giant text file. You access the functions by using the source()
function:
source("./code/Rallfun-v35.txt")
For convenience, most of the functions necessary for this course are available in the smaller file Rallfun-v35-simplified.txt
. In this version, I’ve removed the option SEED=TRUE
, which allows users to set the random seed inside the function, which means you get the same results every time you use the function. With SEED=FALSE
, different random bootstrap samples are returned each time the function is called. It is better practice to set the seed in your R notebook, for reproducibility and transparency. So be careful to use SEED=FALSE
when using functions from Rallfun-v35.txt
.
source("./code/Rallfun-v35-simplified.txt")
In some of the notebooks, I’ve extracted one or a few functions so you can source a smaller file. This prevents your environment from being cluttered with functions you don’t need. Creating a well documented R package is a lot of work, so some statisticians don’t spend the time required. But that means their code is less accessible.
See more detail and updated versions of the code here.
Some of the functions are also available in the WRS2
package.
Enter the data in R or a text file: 5 rows (trials) and 10 columns (participants).
# enter data in matrix with 5 rows, 10 columns:
# dice_res[,1] <- c(,,,,)
# dice_res[,2] <- c(,,,,)
# dice_res[,3] <- c(,,,,)
# dice_res[,4] <- c(,,,,)
# dice_res[,5] <- c(,,,,)
# dice_res[,6] <- c(,,,,)
# dice_res[,7] <- c(,,,,)
# dice_res[,8] <- c(,,,,)
# dice_res[,9] <- c(,,,,)
# dice_res[,10] <- c(,,,,)
# Save in a txt file:
# write.table(dice_res, file = "./data/dice_res_blue.txt", row.names=FALSE, col.names=FALSE)
# write.table(dice_res, file = "./data/dice_res_green.txt", row.names=FALSE, col.names=FALSE)
# write.table(dice_res, file = "./data/dice_res_red.txt", row.names=FALSE, col.names=FALSE)
nt <- 5
np <- 10
res_red <- matrix(scan("./data/res1.txt"), nrow=nt, byrow=TRUE)
res_green <- matrix(scan("./data/res2.txt"), nrow=nt, byrow=TRUE)
res_blue <- matrix(scan("./data/res3.txt"), nrow=nt, byrow=TRUE)
res_red <- matrix(scan("./data/dice_res_red.txt"), nrow=nt, byrow=TRUE)
res_green <- matrix(scan("./data/dice_res_green.txt"), nrow=nt, byrow=TRUE)
res_blue <- matrix(scan("./data/dice_res_blue.txt"), nrow=nt, byrow=TRUE)
Mean results
m.red <- round(apply(res_red, 2, mean), digits=1)
m.green <- round(apply(res_green, 2, mean), digits=1)
m.blue <- round(apply(res_blue, 2, mean), digits=1)
Illustrate results
set.seed(1)
df <- tibble(obs = c(m.red, m.green, m.blue),
gp = factor(c(rep("Red",np),rep("Green",np),rep("Blue",np)))
)
# preserve factor order
df$gp <- as.character(df$gp)
df$gp <- factor(df$gp, levels=unique(df$gp))
ggplot(df, aes(gp, obs)) + theme_linedraw() +
geom_point(aes(colour = gp), position = position_jitter(width = 0.1)) +
scale_color_manual(values=c("red", "green4", "blue")) +
theme(legend.position = "none",
axis.text = element_text(size = 14),
axis.title = element_text(size = 16)) +
labs(x = "Groups", y = "Observations") +
coord_cartesian(ylim = c(0, 12)) +
scale_y_continuous(breaks = seq(0, 12, 2)) +
geom_errorbar(stat = "summary", fun.y = mean, fun.ymin = mean,
fun.ymax = mean, colour = "grey", width = .55, size = 3) +
geom_errorbar(stat = "summary", fun.y = mean, fun.ymin = mean,
fun.ymax = mean, colour = "black", width = .5, size = 1)
What would you do next with the data?
We perform many experiments, and for each experiment we compute a confidence interval, which we plot as horizontal lines.
nboot <- 1000
alpha <- .1
lo <- nboot*(alpha/2)
hi <- nboot - lo
lo <- lo + 1
nexp <- 50 # number of experiments
n <- 20 # sample size in each experiment
n.m <- 50 # mean of normal distribution
n.sd <- 20 # sd of normal distribution
ci <- matrix(NA, nrow = nexp, ncol = 2)
ci.ttest <- matrix(NA, nrow = nexp, ncol = 2)
for(E in 1:nexp){
# sample data + bootstrap + compute mean of each bootstrap sample
samp <- rnorm(n, n.m, n.sd)
boot.samp <- apply(matrix(sample(samp, n*nboot, replace = TRUE), nrow = nboot), 1, mean)
sort.boot.samp <- sort(boot.samp) # sort bootstrap estimates
ci[E,1] <- sort.boot.samp[lo]
ci[E,2] <- sort.boot.samp[hi]
ci.ttest[E,] <- t.test(samp, conf.level = 1-alpha)$conf.int
}
df <- tibble(x = as.vector(ci),
y = rep(1:nexp,2),
gr = factor(rep(1:nexp,2))
)
ggplot(df, aes(x = x, y = y)) + theme_linedraw() +
geom_point() +
geom_line(aes(group = gr)) +
geom_vline(xintercept = n.m, colour = "red") +
labs(x = "Values", y = "Experiments") +
theme(axis.title = element_text(size = 16),
axis.text = element_text(size = 14))
# https://stackoverflow.com/questions/12253239/vertical-lines-between-points-with-ggplot2
# ggsave(filename = './50expt_bootci.pdf')
df <- tibble(x = as.vector(ci.ttest),
y = rep(1:nexp,2),
gr = factor(rep(1:nexp,2))
)
ggplot(df, aes(x = x, y = y)) + theme_linedraw() +
geom_point() +
geom_line(aes(group = gr)) +
geom_vline(xintercept = n.m, colour = "red") +
labs(x = "Values", y = "Experiments") +
theme(axis.title = element_text(size = 16),
axis.text = element_text(size = 14))
# ggsave(filename = './50expt_ttci.pdf')
Guillaume A. Rousselet, 2019, University of Glasgow.


| Variable | Description |
|---|---|
$small-component-radius |
Rounded shape radius size for small components. Default value 4px . |
$medium-component-radius |
Rounded shape radius size for medium components. Default value
4px . |
$large-component-radius |
Rounded shape radius size for large components. Default value 0 . |
| Mixin | Description |
|---|---|
radius($radius, $rtl-reflexive) |
Shape API used by all other components to apply radius to
appropriate corners. $radius can be single value or list
of up to 4 radius corner values. Set $rtl-reflexive to
true to flip the radius in RTL case, false by default. |
| Function | Description |
|---|---|
flip-radius($radius) |
Flips the radius values in RTL context. $radius is
list of 2-4 corner values. |
resolve-percentage-radius($component-height, $radius) |
Calculates the absolute radius value based on its component height. Use this for fixed height components only. |
mask-radius($radius, $masked-corners) |
Accepts radius number or list of 2-4 radius values and returns 4
value list with masked corners as mentioned in $masked-corners . |
prop-value($radius) |
Returns $radius value of shape category - large ,
medium or small . Otherwise, it returns the
$radius itself if valid. $radius can be a
single value or list of up to 4. |
Where, button.$height
is the height of
standard button and $radius
is
the size of shape. resolve-percentage-radius
function is used to resolve percentage unit value to absolute $radius
value based on component height.
Where, $radius
is absolute value only.
Where, only top-right & bottom-right corners are customizable and it
automatically flips radius values based on RTL context when $rtl-reflexive
is set to true.
In this example, the above styles applies 50% (pill) shape to button. It can
also be absolute value (e.g.: 8px
);
you would indirectly use the Shape API through respective component's mixin
which takes care of applying radius to applicable corners for all its
variants.


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
jl777c24-Feb-19 06:58 PM
there is this thing called math
nocturnal24-Feb-19 06:58 PM
which gets manipulated for good marketing soundbytes, i know
jl777c24-Feb-19 06:59 PM
The design of Dilithium is based on the "Fiat-Shamir with Aborts" technique of Lyubashevsky which uses rejection sampling to make lattice-based Fiat-Shamir schemes compact and secure. The scheme with the smallest signature sizes using this approach is the one of Ducas, Durmus, Lepoint, and Lyubashevsky which is based on the NTRU assumption and crucially uses Gaussian sampling for creating signatures. Because Gaussian sampling is hard to implement securely and efficiently, we opted to only use the uniform distribution. Dilithium improves on the most efficient scheme that only uses the uniform distribution, due to Bai and Galbraith, by using a new technique that shrinks the public key by more than a factor of 2. To the best of our knowledge, Dilithium has the smallest public key + signature size of any lattice-based signature scheme that only uses uniform sampling.
important is that it means stuff to the quantum math guys at NIST
nocturnal24-Feb-19 07:00 PM
how can you know the capabilities of a quantum computer before they exost
you have to make meaningless assumptions
jl777c24-Feb-19 07:00 PM
really?
nocturnal24-Feb-19 07:00 PM
yep
jl777c24-Feb-19 07:00 PM
can you imagine a normal computer with 100TB of RAM?
and what you could do with 100TB of RAM
nocturnal24-Feb-19 07:01 PM
exactly - you are assuming a random number
jl777c24-Feb-19 07:01 PM
even though you cant build such a computer
nocturnal24-Feb-19 07:01 PM
thats my point
jl777c24-Feb-19 07:01 PM
no, your assumption is that you need to have something existing to know what it can/cant do
nocturnal24-Feb-19 07:01 PM
you cant make a calcuation without anumber
jl777c24-Feb-19 07:01 PM
I disprove this
nocturnal24-Feb-19 07:01 PM
and the number is not known yet
so therefore it is meaningless
or a guess rather
jl777c24-Feb-19 07:02 PM
it is not a guess that there is no known quantum algo that solves this dilithium lattice problems
while there is a proven math algo that shows that secp256k1 is solved efficiently with quantum algo
nocturnal24-Feb-19 07:02 PM
how many qbits are assumed in teh quantum computer?
jl777c24-Feb-19 07:03 PM
pretty sure the assumption is regardless of qbits
it must tap into some sort of hashing like quality, which also is not having a known quantum algo to solve it
nocturnal24-Feb-19 07:03 PM
until someone finds one with a quantum computer....
how many years forward are you inagining?
in this assumption
10?
1000?
Hollowman900024-Feb-19 07:04 PM
You argue about knowing the capabilities of a quantum computer and then demand to know how many qbits of unknown power are assumed for this determination of security
nocturnal24-Feb-19 07:04 PM
its pretty mucvh meaningly to call something quantum resistant in 2018
This is the first time Turbo Encabulator was recorded with picture. I shot this in the late 70's at Regan Studios in Detroit on 16mm film. The narrator and w...
nocturnal24-Feb-19 07:05 PM
exactly
meaningless number
jl777c24-Feb-19 07:05 PM
how many qbits does sha256 resist?
Hollowman900024-Feb-19 07:05 PM
87
jl777c24-Feb-19 07:05 PM
it seems a meaningless question as there is no known quantum algo for reversing sha256
regardless of qbits
Hollowman900024-Feb-19 07:06 PM
ahem
nocturnal24-Feb-19 07:06 PM
theoretically you can map every molecule of non-dark matter in the universe with a 32 qbit quantum computer(edited)
but your telling me you cant reverse sha256...
jl777c24-Feb-19 07:06 PM
so the concept here is to make new algos without some already known way that quantum computer can solve.
well maybe you can map all matter, but have it emit your gps coordinates
just because you can map everything, doesnt mean you become omniscient
also quantum computers have been "10 years away" for decades
nocturnal24-Feb-19 07:07 PM
just dont believe the hype dude
jl777c24-Feb-19 07:07 PM
it is not clear how practical they will be at the more useful sizes
Hollowman900024-Feb-19 07:07 PM
Fusion powered quantum computers
Alright24-Feb-19 07:08 PM
is this only useful in the event that sha256 is broken or are there other usecases?
nocturnal24-Feb-19 07:08 PM
quantum computers will be a lot longer than 10 years away
agree
so saying something is quantum resistent even more silly
jl777c24-Feb-19 07:09 PM
not sha256, i repeat AGAIN, there is no known quantum algo tosolve sha256 and hashing is hard to reverse
it is the secp256k1 and curve25519
nocturnal24-Feb-19 07:09 PM
it means a mathematician has decided one possible scenario involving a theoretical quantum computer that doesnt exist yet, is defended against
jl777c24-Feb-19 07:09 PM
all the public key crypto that has a known algo to solve it very quickly using quantum computers
no, it means no mathematician has come up with a way for quantum computers to solve it
which seems a lot safer than something that is known to be solved
nocturnal24-Feb-19 07:10 PM
wait wait,
jl777c24-Feb-19 07:10 PM
the logic is that it is better to use something that has no known solution, than one that does
nocturnal24-Feb-19 07:10 PM
you saying there that its NOT quantum resistant
jl777c24-Feb-19 07:10 PM
public key algos are NOT quantum resistant
nocturnal24-Feb-19 07:11 PM
you are saying it is resistant WITHPOUT quantum computing
or up till quantum computing
jl777c24-Feb-19 07:11 PM
once we get big enough quantum computers, all of the non-cold storage pubkeys will be cracked
Quantum computing is still at least ten years away, says the US National Academies of Sciences, Engineering, and Medicine in a report called Quantum Comput
nocturnal24-Feb-19 07:11 PM
yes agreed
jl777c24-Feb-19 07:11 PM
it might be 50 years...
it might be 10 years
regardless, it is possible for it to happen
and if it does, do you want something we know 100% for sure will be cracked, or something that currently there is no known quantum algo for?
Hollowman900024-Feb-19 07:12 PM
It might be 13 years, 4 months, 9 days ago
nocturnal24-Feb-19 07:12 PM
absouletly
I take issue with the misleading term used for marketing
not the progression of technology
as fast or slow as that may be
jl777c24-Feb-19 07:13 PM
quantum resistant is the industry accepted term
nocturnal24-Feb-19 07:13 PM
i would wager a mathemetician didnt come with that term
and more to the point
industries accept terms
that sell things
and make things in the industry sound good
Hollowman900024-Feb-19 07:14 PM
I feel your synergy bro
nocturnal24-Feb-19 07:14 PM
haha
jl777c24-Feb-19 07:15 PM
then you come up with a name for something that is qualitatively more secure against quantum computing than the existing public key crypto
nocturnal24-Feb-19 07:16 PM
once you remove the quantum claim it doesnt sound as sexy
thats what im saying
but im sure there are a many such terms
do you mean 'quantitively' more secure?
 Hey marketing; ratchet it down a few notches!


Indoor allergens including dust mites, animal danders, molds, mice, cockroaches are recognised triggers. Appropriate actions may require removal of rugs and or clearing of piles that encourage the existence of these triggers.
Avoid the following and or avoid out-door activities that are associated with increased exposure to the following:
It is not unusual to have asthma co-existing with other medical conditions; controlling of which would decrease the emotional tension that has the potential to worsen/exacerbate asthma. Some of these conditions include:
Influenza presents seasonally and has the potential to exacerbate asthma. There is vaccine available for this and it is advisable to have it when the season comes. This way, the care of your asthma is optimised.


ੴ Mul Mantra Simran #GuruNanak550 Chardikala Jatha
Mul Mantra Simran with Chardikala Jatha at the Kali Bein
by Gurumustuk Singh Khalsaੴ Mul Mantra Simran #GuruNanak550 Chardikala Jatha
ੴ Mul Mantra Simran with Chardikala Jatha on the Kali Bein where Guru Nanak Dev ji came out of this river enlightened and shared Japji Sahib for the first time. ੴ
#gurunanak550 #gurunanakjayanti #simran #meditation


{% extends "core/base.html" %} {% block content %}
Tester is a web application that allows you to intelligently prepare for tests.


Retrieves a description of the table columns that are available in the specified catalog.
Syntax
public java.sql.ResultSet getColumns(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String col)
Parameters
catalog
A String that contains the catalog name.
schema
A String that contains the schema name pattern.
table
A String that contains the table name pattern.
col
A String that contains the column name pattern.
Return Value
A SQLServerResultSet object.
Exceptions
Remarks
This getColumns method is specified by the getColumns method in the java.sql.DatabaseMetaData interface.
The result set returned by the getColumns method will contain the following information:
| Name | Type | Description |
|---|---|---|
|
TABLE_CAT |
String |
The catalog name. |
|
TABLE_SCHEM |
String |
The table schema name. |
|
TABLE_NAME |
String |
The table name. |
|
COLUMN_NAME |
String |
The column name. |
|
DATA_TYPE |
smallint |
The SQL data type from java.sql.Types. |
|
TYPE_NAME |
String |
The name of the data type. |
|
COLUMN_SIZE |
int |
The precision of the column. |
|
BUFFER_LENGTH |
smallint |
Transfer size of the data. |
|
DECIMAL_DIGITS |
smallint |
The scale of the column. |
|
NUM_PREC_RADIX |
smallint |
The radix of the column. |
|
NULLABLE |
smallint |
Indicates if the column is nullable. It can be one of the following values: columnNoNulls (0) columnNullable (1) |
|
REMARKS |
String |
The comments associated with the column. Note:
SQL Server always returns null for this column.
|
|
COLUMN_DEF |
String |
The default value of the column. |
|
SQL_DATA_TYPE |
smallint |
Value of the SQL data type as it appears in the TYPE field of the descriptor. This column is the same as the DATA_TYPE column, except for the datetime and SQL-92 interval data types. This column always returns a value. |
|
SQL_DATETIME_SUB |
smallint |
Subtype code for datetime and SQL-92 interval data types. For other data types, this column returns NULL. |
|
CHAR_OCTET_LENGTH |
int |
The maximum number of bytes in the column. |
|
ORDINAL_POSITION |
int |
The index of the column within the table. |
|
IS_NULLABLE |
String |
Indicates if the column allows null values. |
|
SS_IS_SPARSE |
smallint |
If the column is a sparse column, this has the value VARIANT_TRUE; otherwise, VARIANT_FALSE. |
|
SS_IS_COLUMN_SET |
smallint |
If the column is the sparse column_set column, this has the value VARIANT_TRUE; otherwise, VARIANT_FALSE. |
|
SS_IS_COMPUTED |
smallint |
Indicates if a column in a TABLE_TYPE is a computed column. |
|
IS_AUTOINCREMENT |
String |
"YES" if the column is auto incremented. "NO" if the column is not auto incremented. "" (empty string) if the driver cannot determine if the column is auto incremented. |
|
SS_UDT_CATALOG_NAME |
String |
The name of the catalog that contains the user-defined type (UDT). |
|
SS_UDT_SCHEMA_NAME |
String |
The name of the schema that contains the user-defined type (UDT). |
|
SS_UDT_ASSEMBLY_TYPE_NAME |
String |
The fully-qualified name user-defined type (UDT). |
|
SS_XML_SCHEMACOLLECTION_CATALOG_NAME |
String |
The name of the catalog where an XML schema collection name is defined. If the catalog name cannot be found, this variable contains an empty string. |
|
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME |
String |
The name of the schema where an XML schema collection name is defined. If the schema name cannot be found, this is an empty string. |
|
SS_XML_SCHEMACOLLECTION_NAME |
String |
The name of an XML schema collection. If the name cannot be found, this is an empty string. |
|
SS_DATA_TYPE |
tinyint |
The SQL Server data type that is used by extended stored procedures. Note For more information about the data types returned by SQL Server, see "Data Types (Transact-SQL)" in SQL Server Books Online. |
In the Microsoft SQL Server JDBC Driver 3.0, you will see the following behavior changes from earlier versions of the JDBC Driver:
The DATA_TYPE column has the following changes:
| SQL Server Data Type | Return Type in JDBC Driver 2.0 and Associated Numeric Constant | Return Type in JDBC Driver 3.0 |
|---|---|---|
|
user-defined type larger than 8 kB |
LONGVARBINARY (-4) |
VARBINARY (-3) |
|
geography |
LONGVARBINARY (-4) |
VARBINARY (-3) |
|
geometry |
LONGVARBINARY (-4) |
VARBINARY (-3) |
|
varbinary(max) |
LONGVARBINARY (-4) |
VARBINARY (-3) |
|
nvarchar(max) |
LONGVARCHAR (-1) or LONGNVARCHAR (JDBC 4) (-16) |
VARCHAR (12) or NVARCHAR (JDBC 4) (-9) |
|
varchar(max) |
LONGVARCHAR (-1) |
VARCHAR (12) |
|
time |
VARCHAR (12) or NVARCHAR (JDBC 4) (-9) |
TIME (-154) |
|
date |
VARCHAR (12) or NVARCHAR (JDBC 4) (-9) |
DATE (91) |
|
datetime2 |
VARCHAR (12) or NVARCHAR (JDBC 4) (-9) |
TIMESTAMP (93) |
|
datetimeoffset |
VARCHAR (12) or NVARCHAR (JDBC 4) (-9) |
microsoft.sql.Types.DATETIMEOFFSET (-155) |
The COLUMN_SIZE column has the following changes:
| SQL Server Data Type | Return Type in JDBC Driver 2.0 | Return Type in JDBC Driver 3.0 |
|---|---|---|
|
nvarchar(max) |
1073741823 |
2147483647 (database metadata) |
|
xml |
1073741823 |
2147483647 (database metadata) |
|
user-defined type less than or equal to 8 kB |
8 kB (result set and parameter metadata) |
Actual size returned by the stored procedure. |
|
time |
|
The length in characters of the string representation of the type, assuming the maximum allowed precision of the fractional seconds' component. |
|
date |
|
same as time |
|
datetime2 |
|
same as time |
|
datetimeoffset |
|
same as time |
The BUFFER_LENGTH column has the following change:
| SQL Server Data Type | Return Type in JDBC Driver 2.0 | Return Type in JDBC Driver 3.0 |
|---|---|---|
|
user-defined type larger than 8 kB |
2147483647 |
The TYPE_NAME column has the following changes:
| SQL Server Data Type | Return Type in JDBC Driver 2.0 | Return Type in JDBC Driver 3.0 |
|---|---|---|
|
varchar(max) |
text |
varchar |
|
varbinary(max) |
image |
varbinary |
The DECIMAL_DIGITS column has the following changes:
| SQL Server Type | JDBC Driver 2.0 | JDBC Driver 3.0 |
|---|---|---|
|
time |
null |
7 (or smaller if specified) |
|
date |
null |
null |
|
datetime2 |
null |
7 (or smaller if specified) |
|
datetimeoffset |
null |
7 (or smaller if specified) |
The SQL_DATA_TYPE column has the following changes:
| SQL Server Data Type | SQL Server 2008 Data Value in JDBC Driver 2.0 | SQL Server 2008 Data Value in JDBC Driver 3.0 |
|---|---|---|
|
varchar(max) |
-10 |
-9 |
|
nvarchar(max) |
-1 |
-9 |
|
xml |
-10 |
-152 |
|
user-defined type less than or equal to 8 kB |
-3 |
-151 |
|
user-defined type larger than 8 kB |
Not available in JDBC Driver 2.0 |
-151 |
|
geography |
-4 |
-151 |
|
geometry |
-4 |
-151 |
|
hierarchyid |
-4 |
-151 |
|
time |
-9 |
92 |
|
date |
-9 |
91 |
|
datetime2 |
-9 |
93 |
|
datetimeoffset |
-9 |
-155 |
Example
The following example demonstrates how to use the getColumns method to return information for the FirstName column in the Person.Contact table in the SQL Server 2005 AdventureWorks sample database.
public static void executeGetColumns(Connection con) { try { DatabaseMetaData dbmd = con.getMetaData(); ResultSet rs = dbmd.getColumns("AdventureWorks", "Person", "Contact", "FirstName"); ResultSetMetaData rsmd = rs.getMetaData(); // Display the result set data. int cols = rsmd.getColumnCount(); while(rs.next()) { for (int i = 1; i <= cols; i++) { System.out.println(rs.getString(i)); } } rs.close(); } catch (Exception e) { e.printStackTrace(); } }


Conversations with children can often be very illuminating, and often in both directions. I spent the past weekend with a 7-year old child, and the child’s 2-year old sibling. As a result we had many wonderful conversations about mathematics. The 7-year old (hence forth called J, and to simplify things, I’ll use the “he”/“him/his” pronoun).
J knows and understands fairly well, the concept of addition and subtraction. He’s a little shaky on multiplication and is unsure about division. From conversations with the mother, I gather that he’ll be taught multiplication and division in this school year. By the end of the weekend I am satisfied to report that according to his mother he now understands up to division.
We talked about many things, but one interesting topic was addition. Halfway through, J complained to me that his sibling, M “understood” addition only if you asked M exactly in this sequence “1 + 1”, “1 + 2”, “1 + 3”, “1 + 4”. It turns out his sibling only knew the order of the numbers, and not really addition. What struck me however, was how J described the sequence of additions. He had described them as a sequence of numbers that have 1 added to them.
So I pressed on, and before long, J had a look of realization and asked me: “why does addition work?”
Why Does Addition Work?
J had understood implicity but was unable to express some things we adults take for granted: the encapsulation of steps. Addition works because it’s the encapsulation of a series of steps.
If we start with a rule that says the only way to access another number is trough incrementing along the order, then addition was the encapsulation of a number of steps of incrementing the numbers one at a time. In his own words, “it’s like M crawls from 1 to 2 to 3, but I can jump!”.
That J recognized this early is quite remarkable. Adults often take this for granted. When introspective, we would of course realize we’re taking one step after another. However, we didn’t have a way to describe it except in ad-hoc fashion. In fact, it wasn’t until the 1920s that mathematicians started wondering about the formalizing the notion of “steps” in doing mathematics.
Following the publication of Whitehead and Russell, and the posing of the Entscheidungsproblem, Emil Post did a lot of work in the 1920s in trying to formalize the notion of a “step”. Convinced he was going down the wrong path, he did not publish until the 1940s. At the same time, much work was being done by Alan Turing and Alonzo Church. An often-unmentioned contemporary, George Stibitz, may also have invented something of the notion of a Turing Machine.
Lambda calculus and Turing machines are formalizations of algorithms - the methods of formalization are different, but end up being different views of the same thing. The “thing” in question is what we now call an algorithm.
What is An Algorithm?
The so-called encapsulation of steps is an informal defination of an algorithm: A sequence of operations to be taken one after another. This arises very naturally in real life. We as humans, do one thing, then the next, and then the next, in sequence. The notion of “nextness” is the root of all algorithms.
Here I must note that it is a very common thing for young children to repeatedly ask “and then?” - often to annoy adults around them - but more and more, I am starting to believe that it is a “default mode” of a child’s brain. The brain in its default state, I believe to be an emergent unhalting algorithm - the exact model of computation I suspect is closer to an infinite automata, which in some ways can be seen to be more powerful than Turing machines/lambda calculus.
But I digress.
Features of An Algorithm
It’s hard to pinpoint exactly what is an algorithm. We are of course able to informally say what an algorithm is. But to even begin to formalize the concept of an algorithm, we must look at what features all algorithms have:
- Algorithms can take an input,
I
- Algorithms may have an output,
O
. There is only an output if the algorithm terminates. - To compute the output, a series of steps is done. This is called a computation on the input.
- If the computation terminates, the algorithm may be interpreted as a function that maps
I
toO
.
There is one other thing that an algorithm must have in order to be formalized - Algorithms are made up of a finite sequence of symbols, made up of a finite alphabet. But this has to do more with the technical parts, which this post will skip.
The series of operations that is performed on the input, together with the input, is called an algorithm.
Computation
A computation is simply an operation to be performed slavishly according to the rules of the system. Turing himself remarked that it was to be done in a desultory manner. Therefore an algorithm is just a sequence of operations to be performed strictly according to the rules of the system.
The rules of the system are the rules that are necessary to solve a problem: a “programme”/“menu”/“listing” of rules, if you will. Take a guess which term came to be uses in popular parlance.
The notion of computation is inextricably linked to the idea of computability. At the risk of sounding tautological, a computable thing is one that can be computed by a computer, the act of which is called a computation and thus is able to be represented as an algorithm. Conversely speaking, if the computation does not terminate, then it means that it cannot be represented by an algorithm.
Computable functions are a special case of algorithms where the input and outut of the algorithm are numbers. Computably enumerable sets are sets where there is a computable function that can produce all the members of the set. This is particularly important in analysis, because as it turns out there are such things as computably enumerable but uncomputable sets.
In particular, the idea that computable functions are functions with numbers as inputs and outputs only should be troubling to the daily programmer. “But I write functions to deal with various things all the time!”, is what one would say. I shall cover that in the future, when I discuss Gödelization.
I will also leave the topic of non-computable stuff to future posts.
Back to Scheduled Programming
An algorithm is something we all intuitively understand on the gross level. However, the minutae requires a lot of finely tuned mathematical intuitions. You would think that having spent many years writing programs, the idea of an algorithm should be second nature to me. It isn’t. At least not the formal version.
I measure my understanding by a fairly decent yardstick: if I am able to explain a very difficult concept to a young child, or an old person, then I would have succeeded. I attempted this with J, across multiple instances and using multiple concrete examples. I think I was okay at it. Afterall, I did get him to derive up to division.
The child did enquire about non-terminating problems, but he did not completely comprehend recursivity. I thought for the briefest moment when he asked about algorithms that computed other algorithms, he might be getting somewhere, but upon further pressing it just appeared that he got bored waiting for his mother to bring him his schnitzel.
The notion of functional abstraction (i.e. encapsulation, as opposed to abstraction from the category theory sense) was also a hard one to explain, but I went somewhere with that, so that’s a future blog post.