403 Matching Annotations
  1. Sep 2019
    1. proxy_ssl_trusted_certificate file;

      And we should probably specify this.

    2. proxy_ssl_verify on

      We should probably turn this on.

    3. proxy_ssl_server_name on

      Turn this on when you need to proxy to an https server.

    4. There could be several proxy_redirect directives: proxy_redirect default; proxy_redirect http://localhost:8000/ /; proxy_redirect http://www.example.com/ /;

      In case there are multiple layers of redirection.

    5. proxy_redirect ~*/user/([^/]+)/(.+)$ http://$1.example.com/$2;

      So you can basically redirect anything to be the original url so the client is not aware there were layers of redirects by:

      proxy_redirect ~^.*$ /original/endpoint;
      
    1. py27-django{18,19,110,111,111tip},

      An example of how to test multiple python versions against multiple library versions

    1. proxy_redirect $scheme://$host:$server_port/ /gitlab/;

      This doesn't seem to be working as I'd expect it to override the location response header.

    1. proxy_redirect: If you need to modify the redirect (i.e. location header) being returned to the browser
    1. more_clear_headers

      Look into this as the nginx set header Cookie "" doesn't appear to be working. Might also be able to use lua header filter.

    2. openresty/headers-more-nginx-module

      Allows you to clear headers.

    1. Network I/O operations in user code should only be done through the Nginx Lua API calls as the Nginx event loop may be blocked and performance drop off dramatically otherwise. Disk operations with relatively small amount of data can be done using the standard Lua io library but huge file reading and writing should be avoided wherever possible as they may block the Nginx process significantly. Delegating all network and disk I/O operations to Nginx's subrequests (via the ngx.location.capture method and similar) is strongly recommended for maximum performance.

      Very important ngx.location.capture does not block in nginx.

    1. header_filter_by_lua 'ngx.header.Foo = "blah"';

      Not sure why you wouldn't use raw nginx for this.

    2. access_by_lua ' local res = ngx.location.capture("/auth") if res.status == ngx.HTTP_OK then return end if res.status == ngx.HTTP_FORBIDDEN then ngx.exit(res.status) end ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)

      Potentially something like this for getting the content-type response header and using that to decide which proxy server to send the original request to.

    3. The Lua code cache can be temporarily disabled during development by switching lua_code_cache off

      For dev mode switch the lua file cache off.

    1. # map to different upstream backends based on header map $http_x_server_select $pool { default "apache"; staging "staging"; dev "development"; }

      case statement on the header X-Server-Select. I wonder if we could do something similar for rate limiting ip selection.

    1. add_header Set-Cookie cip=$remote_addr;

      How to set a cookie in nginx or perhaps unset a cookie:

      proxy_set_header Cookie cip="";
      
    1. location ~* ^/proxy/(?<pschema>https?)/(?<phost>[\w.]+)(?<puri>/.*) { set $adr $pschema://$phost; rewrite .* $puri break; proxy_pass $adr;

      Nice idea as it doesn't use lua but also a bit fragile I think.

    1. echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report

      This worked really well for me, producing something like below:

      Requests      [total, rate]       2400, 80.03
      Duration      [total, attack, wait]  41.854241245s, 29.988606s, 11.865635245s
      Latencies     [mean, 50, 95, 99, max]  3.425533859s, 0s, 17.212904925s, 23.748749616s, 39.421327692s
      Bytes In      [total, mean]        309003728, 128751.55
      Bytes Out     [total, mean]      0, 0.00
      Success       [ratio]                 29.67%
      Status Codes  [code:count]   0:1688  200:712
      

      It appears though that the latency also includes failed requests which is something to be aware of.

    2. 0 = infinity

      This gave me a can't set to 0 error.

    1. You can only really adjust worker_connections since worker_processes is based off the number of CPUs you have available.
    2. the product of your worker_connections and worker_processes directive settings
    3. worker_rlimit_nofile directive. This changes the limit on the maximum number of open files
    1. Vanguard Total International Bond Index Fund (3%)

      % international bonds to invest in. If not available invest more in US bonds.

    2. Vanguard Total Bond Market II Index Fund (7%)

      % US bonds to invest in.

    3. Vanguard Total International Stock Index Fund (35.9%)

      % international stocks to invest in

    4. Vanguard Total Stock Market Index Fund (54.1%)

      % US stocks to invest in.

  2. Aug 2019
    1. VLBI

      (Very-long-baseline interferometry)[https://en.wikipedia.org/wiki/Very-long-baseline_interferometry]

      Aka: emulating a telescope with a size equal to the maximum separation between the telescopes.

    1. intern

      sys.intern in Python3

    2. ascii letters, digits or underscores

      String composed of these characters are interned. Aka the following will not be interned:

      f = 'f o'

      but the following will be interned:

      f = 'f_o'

    3. sequences generated through peephole optimization are discarded if their length is superior to 20

      So values generated via peephole optimization above 20 are not 'pre-computed' but left as is:

      'a' * 21 # remains in the byte code where as
      'a' * 20 # gets converted to 'aaaaaaaaaaaaaaaaaaaa'
      
    4. string subclasses cannot be interned

      Meaning

      class NewString(str):
         pass
      assert NewString('f') is 'f'
      

      Will fail. Where as:

      f = 'f'
      assert f is 'f'
      

      Will pass.

      This is presents a case for not building custom string types in Python as it breaks the string cache and can result in a performance hit.

    5. strings can be compared by a O(1) pointer comparison instead of a O(n) byte-per-byte comparison

      This is a huge advantage. Not only does it save memory by not duplicating simple and common string values, but the comparison method has an early exit that compares the pointers instead of the values. aka in sudo-code form:

      // compare pointers
      if self._value is value:
         return True
      
      // compare values
      for i, v in enumerate(self._value):
         if v != value[i]:
            return False
      return True
      
    1. While a break in the hyoid bone is common in victims of homicide by strangulation, Epstein's autopsy also showed signs of other neck fractures

      This says there were multiple bones broken in the neck however this article says there was just one bone. Another article sites the linked article above implying that there were multiple bones broken when in fact, only one bone was broken according to the cited article.

    2. Two prison staff members who'd been guarding the unit where Epstein died by apparent suicide failed to check on him that night for about three hours

      There was a three hour gap in the guards schedule.

    1. NBC News, according to a person familiar with the matter, also reported that the autopsy found a bone break in Epstein's neck.

      The 'also' in this sentance seems to imply that there were other broken bones but the sited article only mentions the hyoid bone.

    1. he broke his hyoid bone, a small horseshoe-shaped bone near the base of the human jaw

      This is the only bone that was broken according to this article.

    1. fracture of the hyoid bone is rare because it is protected by the mandible. In fact, most hyoid bone injuries are caused by strangulation.

      The hypoid bone is almost always a result of strangulation.

    1. There’s a perception that the Old World is the advanced world and transferred all this knowledge to the New one, but we are realizing that they knew a lot, and I think this is one more piece of evidence for that

      It's refreshing to see someone coming to this conclusion based on the research and evidence. It seems most of the time we tend to underestimate the technology that civilizations in this era used.

    2. What happened here is that these rocks were struck by lightning sometime between when they were formed many thousands of years ago, and when they were carved

      It kinda makes you wonder if it wasn't struck by lightning naturally but that the people did it to the rocks intentionally.

    3. The fields found in the statues, however, are far stronger — in some cases nearly four times that of the Earth’s magnetic field.

      That's quite impressive. It's on the same order of magnetisim as the rocks at the Puma Punku site in Bolivia.

    4. artisans carved the figures so that the magnetic areas fell at the navel or right temple — suggesting not only that Mesoamerican people were familiar with the concept of magnetism but also that they had some way of detecting the magnetized spots

      The potbelly statues have very strong magnetic areas on the head and around the belly button suggesting that the people who made them had knowledge of magnetism.

  3. Jun 2019
    1. get_current_request()

      This can be used to get the current request object if the request object is not already available in the current context. It really shouldn't be used in production code but in a debug/test scenario it can be quite handy.

  4. May 2019
    1. Food safety authorities worldwide have set acceptable daily intake (ADI) values for aspartame at 40 mg/kg of body weight. The FDA has set its ADI for aspartame at 50 mg/kg.[39]

      The recommended “safe” daily value is 40 mg/kg of body weight.

    2. Dr Arthur Hull Hayes was appointed as Commissioner of the FDA the day after Reagan's inauguration.[34] In 1981, Hayes sought advice on aspartame's ban from a panel of FDA scientists and a lawyer. It soon became clear that the panel would uphold the ban by a 3-2 decision, but Hull then installed a sixth member on the commission, and the vote became deadlocked.[34] He then personally broke the tie in aspartame's favor.

      Taking advantage of the ability to appoint voters in order to manipulate the government in favor of aspartame, aspartame was approved under Ronald Reagan’s administration.

    3. In November 1983, Hayes left the FDA under a cloud and joined Burson-Marsteller, chief public relations firm for both Monsanto and GD Searle, as a senior medical advisor.[37][38] The appointment was widely seen as a reward for his approval of aspartame.

      This a text book example of how companies are able to influence government officials in their favor.

    4. academic pathologists reviewed 15 aspartame studies by Searle, and concluded that, although minor inconsistencies were found, they would not have affected the studies' conclusions.[2]:4 This conclusion was reached despite the testimony of Dr. M. Adrian Gross, a former senior FDA toxicologist, who stated that Searle's studies were largely unreliable and that least one of the studies has established beyond any reasonable doubt that aspartame is capable of inducing brain tumors in experimental animals, and that by allowing aspartame to be placed on the market, the FDA has violated the Delaney Amendment
    5. nor Skinner's successor, Thomas Sullivan, convened a grand jury, allowing the statute of limitations to expire.[26][27][28] In December, 1977, Sullivan ordered the case dropped for lack of evidence, and Conlon was later also hired by Searle's law firm.

      The new FDA lawyer was also hired by the company and the case was eventually dropped.

    6. in February, 1977, Searle's law firm, Sidley & Austin, offered Skinner a job, which he accepted, recusing himself from the case

      The company being sued for the cover up of the negative side effects of aspartame hires the lawyer that represented the FDA thus resulting in the case never making it to trial.

    7. n January 1977, formally requested that a grand jury be convened to investigate whether indictments should be filed against Searle for knowingly misrepresenting findings and "concealing material facts and making false statements" in aspartame safety tests (the first time in the FDA's history that they request a criminal investigation of a manufacturer)

      Aspartame was so poorly misrepresented in the scientific research provided for its approval that it became the first case in history in which a lawsuit was brought against the manufacturer for concealing of material facts and false statements.

    1. elevated cortisol and gut dysbiosis via interactions with different biogenic amine may also have additional impact to modulate neuronal signaling lead to neurobiological impairments

      In summary aspartame increases the fire of neurotransmitters, increases heart rate and and blood pressure, and imbalances gut bacteria.

    2. gut dysbiosis

      most commonly reported as a condition in the gastrointestinal tract, particularly during small intestinal bacterial overgrowth (SIBO) or small intestinal fungal overgrowth (SIFO)

      Common symptoms include stomach upset after eating, indigestion, the extremely common GERD (reflux), heartburn, slow digestion, or bloating, excessive gas, lower belly pains, constipation, or diarrhea.

      Dysbiosis can take between 3-12 weeks to heal.

    3. elevated cortisol

      Often called the “stress hormone,” cortisol causes an increase in your heart rate and blood pressure

    4. aspartame metabolite; mainly Phy and its interaction with neurotransmitter and aspartic acid by acting as excitatory neurotransmitter causes this pattern of impairments

      Aspartame alters the chemical composition of the brain and excites neurotransmitters.

    1. condensed fragmented nuclei

      a fancy way to say the cell dies

    2. examination showed fetal capillaries with condensed nuclei of endothelial cells, cytotrophoblasts with condensed fragmented nuclei and vacuolated cytoplasm, and syncytiotrophoblasts with irregular condensed fragmented nuclei

      In summary aspartame results in the death of cells that carry nutrients and energy to the growing embryo.

    3. syncytiotrophoblasts

      the epithelial covering of the highly vascular embryonic placental villi, which invades the wall of the uterus to establish nutrient circulation between the embryo and the mother

    4. vacuolated cytoplasm

      the cell fills with pockets of fluid

    5. cytotrophoblasts

      The interior of the trophoblast cells that provide energy and nutrients to the baby.

    6. endothelial cells

      cells that line the interior surface of blood vessels and lymphatic vessels, forming an interface between circulating blood or lymph in the lumen and the rest of the vessel wall.

    7. condensed nuclei

      Double-stranded DNA loops around 8 histones twice, forming the nucleosome, which is the building block of chromatin packaging. DNA can be further packaged by forming coils of nucleosomes, called chromatin fibers. These fibers are condensed into chromosomes during mitosis, or the process of cell division.

    8. Damage in the placenta was detected in the form of rupture of the interhemal membrane, lysis of glycogen trophoblast cells, spongiotrophoblast cells with vacuolated cytoplasm and darkly stained nuclei.

      Aspartame caused placenta cells to rupture and behave like they had been exposed to a pathogen or virus.

    9. vacuolated cytoplasm

      phenomenon observed in mammalian cells after exposure to bacterial or viral pathogens as well as to various natural and artificial low-molecular-weight compounds

    10. spongiotrophoblast cells

      placenta cells that provide nutrients and energy and bind with the dye

    11. glycogen trophoblast cells

      cells that provide energy and nutrients to the embryo and develop into a large part of the placenta

    12. lysis

      the disintegration of a cell by rupture of the cell wall or membrane.

    13. interhemal membrane

      A fancy term for the placenta.

    1. Results reveal that the aspartame molecule is inherently amyloidogenic, and the self-assembly of aspartame becomes a toxic trap for proteins and cells

      Aspartame inhibits the function of organs and tissues via clusters of proteins/“plaque”.

    2. amyloidogenic

      producing or tending to produce amyloid deposits. These are associated with malfunction of organs.

    3. necrosis

      death of cells or tissue through disease or injury

    4. apoptosis

      the death of cells which occurs as a normal and controlled part of an organism's growth or development.

    5. Aspartame fibrils were also found to induce hemolysis, causing DNA damage resulting in both apoptosis and necrosis-mediated cell death.

      This study found that aspartame causes DNA damage and cell death.

    1. Pathogenic amyloids form when previously healthy proteins lose their normal physiological functions and form fibrous deposits in plaques around cells which can disrupt the healthy function of tissues and organs.

      Clusters of these proteins prevent organs from functioning correctly.

    2. Amyloids are aggregates of proteins that become folded into a shape that allows many copies of that protein to stick together, forming fibrils. In the human body, amyloids have been linked to the development of various diseases.

      Amyloids are clusters of proteins that are associated with development of various diseases in humans.

    1. config_file: Path to the config file name

      Since Hypothesis uses a server side config I'm not sure what to do here as there is no config file to provide. 🤔

      If it turns out this isn't feasible (although I'm sure there's a solution for this config_file issue) the alternative approach would be to use the post method.

    2. newrelic-admin record-deploy config_file description [revision changelog user]

      To enable recording of deploys on the python agent via New Relic, you can simply call the newrelic-admin record-deploy command and pass it the necessary revision information. This will place a deployment marker on any graph you view in newrelic as a vertical line-indicating that a new revision of the code was released at that point in time.

    1. Cahokia Mounds State Historic Site.
    2. Cahokia, as it may have appeared around 1150 CE. Painting by Michael Hampshire for the Cahokia Mounds State Historic Site.

      This structure reminds me of the pyramids. It's interesting how cultures thoughout the world tend to share the same shapes of structures.

    3. Cahokia Mounds State Historic Site.

      This link contains a short video of what the structure looks like today. Unfortunately, not much of it remains. https://youtu.be/Tdp2hZG4ky4

    4. 1150 CE.
    1. Artistic finds include stone tablets carved with images (such as a birdman) as well as evidence of sophisticated copper working, including jewelry and headdresses.

      Interestingly other megalithic cultures have artistic renderings of a "birdman" as well, including the Incan, Mayan, and Egyptian cultures.

    2. The name "Cahokia" is from an aboriginal people who lived in the area during the 17th century. 

      The name of the site comes from a culture that inhabited the site years after its initial construction. The name was given to it by French colonizers.

    1. immigrants formed one-third of the population of the city throughout its history (from about AD 1050 through the early 1300s)

      This suggests that this site was a "melting pot" of many different types of people similar to a modern day city.

    1. A gradual decline in the Cahokian population is thought to have began sometime after 1200 A.D. and two centuries later, the entire site had been abandoned.

      Interestingly, the Mayan declined around the same time as this civilization began.

    2. Archaeologists have also excavated four, and possibly five, circular sun calendars referred to as Woodhenge.

      Again there is a connection to megalithic architecture's large sundials

    1. There was also an astronomical observatory (“Woodhenge”), consisting of a circle of wooden posts.

      This term "Woodhenge" further points to an acknowledgment of the similarities between this site and other pyramid sites.

    1. Talks about the politics of archeology in Egypt. Also notes some potentially quite significant findings that appear to have been covered up by Egypt; a vast amount of tunnels under the Sphinx.

  5. Apr 2019
    1. Ponies with gastric cannulas fed 45 mL corn oil PO once daily by dose syringe had significantly lower gastric acid output and increased prostaglandin concentration in their gastric juice compared to the non oil dosed animals

      This suggests that vegetable oils can act as a stomach membrane protector.

    2. Feeding of sweet feed should be avoided as a large quantity of VFAs could be produced if greater than 1 to 2 kg of sweet feed is fed per meal. Grains like barley and oats can be substituted to decrease fermentation to VFAs. The diet should not exceed 2 g/kg bodyweight of starch intake per day or more than 1 g/kg bodyweight of starch per meal.24 Concentrate meals should not be fed less than 6 hours apart.

      This recommends reducing grain intake in horses with ulcers.

    3. feed supplement consisting of salts of organic acids in combination with B‐vitamins might be beneficial in the management of ESGD98 and a preparation containing sea buckthorn berries appeared to have protective effects against the development of EGGD in a fasting model of disease

      Here's a "natural" preventative ulcer treatment.

    4. 23% of horses experiencing worsening of their EGGD grade in a series of recent studies, despite omeprazole treatment at doses ranging from 1–4 mg/kg PO once daily.

      In 23% of cases the ulcers got worse with a treatment of omeprazole.

    5. a recent study reported a 67.5% healing rate for EGGD of the pyloric antrum using omeprazole (GastroGard1) at 4 mg/kg PO once daily and sucralfate at 12 mg/kg PO twice daily.91 Further studies investigating the role of sucralfate and the potential for interactions between it and omeprazole, as reported in human medicine, are required.

      A treatment of sucralfate and omeprazole has shown to heal 67% of ulcer cases in horses but there may be interactions between the two drugs.

    6. although such bacteria are present in ESGD their role appears to be secondary as the response to acid suppression alone is good

      In some cases bacteria is present in horses with ulcers but it is considered a secondary cause and acid suppression treatment such as omeprazole (commonly known as Prilosec ) is effective.

    7. The factors that contribute to breakdown of this protective layer are yet to be elucidated in the horse, but in humans Helicobacter pylori and NSAIDs are the predominant causes of gastric ulceration.

      In summary, the cause of ulcers in humans is the presence of the H pylori bacteria however, the cause in horses is still unknown.

  6. Mar 2019
    1. The HMO Act of 1973 changed that premise. It authorized for-profit IPA-HMOs in which HMOs may contract with independent practice associations (IPAs) that, in turn, contract with individual physicians for services and compensation. By the late 1990s, 80 percent of MCOs were for-profit organizations, and only 68 percent or less of insurance premiums went toward medical care.

      The HMO Act of 1973 resulted in for profit health care.

    1. Nixon signed into law, the Health Maintenance Organization Act of 1973, in which medical insurance agencies, hospitals, clinics and even doctors, could begin functioning as for-profit business entities instead of the service organizations they were intended to be. 

      In the 1970s health care was allowed to change from a non-profit to a for profit.

    1. a group of teachers created a program through Baylor University Hospital where they would agree to pre-pay for future medical services (up to 21 days in advance). The resulting organization was not-for-profit and only covered hospital services. It was essentially the precursor to Blue Cross.

      Baylor University's teacher's created one of the first "employee insurance companies" which turned into Blue Cross.

    2. Since U.S. businesses were prohibited from offering higher salaries, they began looking for other ways to recruit new employees as well as incentivizing existing ones to stay. Their solution was the foundation of employer-sponsored health insurance as we know it today.

      The result of the Stabilization Act of 1942 was for employers to provide health care benefits to employees.

    1. Because health benefits could be considered part of compensation but did not count as income, workers did not have to pay income tax or payroll taxes on those benefits. Thus, by 1943, employers had an increased incentive to make health insurance arrangements for their workers, and the modern era of employer-sponsored health insurance began

      After WWII companies started providing health insurance to employees. Somewhere along the way this translated into employers co-oping with private insurance companies to provide health insurance as opposed to paying the employees medical bills or providing their own doctors and clinics.

    1. Best advice:

      "If your drywall tape is bubbling it means you didn't lay enough wall plaster down before putting the tape on."

    2. Taping drywall is a 4 day project according to this video series.

      1. Put up the tape and let it dry.
      2. Put a second smooth coat on with a wider knife.
      3. Put a third coat on with an even wider knife.
      4. Sand or sponge smooth.
    1. To attach the cabinets to each other, use a No. 8 2¼-inch-long trim-head screw with a fine thread suited for hardwood. This fastener's small-diameter head is unobtrusive, so you don't have to hide it under a cap or wood plug.

      To attach the cabinets to each other use a 2.25 inch No. 8 trim-head screw. image

    2. cabinet screw, washer-head screw, washer-head cabinet screw, or button-head screw. Its large-diameter head bears down firmly on the cabinet's hanging rail, ensuring a solid installation. Attach the cabinets to the wall using No. 8 or No. 10 screws, approximately 3½ inches long.

      Use 3.5 inch No. 8 or No. 10 button-head screws to attach kitchen cabinets to the wall studs. image

    1. To installing kitchen cabinets, utilize a long level and draw a level line around the room at the base of the upper cabinets and the top of the lower cabinets using the lowest point of the ceiling and the highest point of the floor to make the starting mark. This will ensure that the cabinets are level. Shims can be used (little pieces of wood) to make up the difference as needed.

    1. Putting up drywall tape in the corner of the ceiling. It's important to always start at the middle and work your way towards the sides when smoothing it down with the knife so you avoid bubbles.

    1. https://youtu.be/yJQbO-NSbx4?t=169

      The electrical box sits inside the cabinet. It requires a 40 amp breaker with #8 AWG wire since it can consume up to 7,800 W at 240 VAC. This means while it connects to the standard 120 V electrical supply is has two hot wires (red and black) rather than 1 (black) to achieve the 2x voltage. The double oven will typically come with flexible conduit but you must provide the rest (aka electrical box, cover, etc).

    2. https://youtu.be/yJQbO-NSbx4?t=351

      If your cabinet is too wide you need to install side wood pieces to fill in the gap and give the double oven frame something to screw in to. Screw the extra side pieces in on either side of double oven cabinet so they don't show and then screw the frame of the oven to those. You'll also probably want to add some fancy trim on the edges to cover the gap/extra piece of wood you added between the oven frame and the side of the cabinet.

    3. How to install a double wall oven.

  7. Feb 2019
    1. Any local, state or national government, or any political machine, in order to live, must give the people assurance that they can express their will freely and that their votes will be counted. The most powerful machine cannot exist without the support of the people. Political bosses and political machinery can be good, but the minute they cease to express the will of the people, their days are numbered.

      A very powerful sentiment aligned with the US Declaration of Independence.

    1. WHY DO ABORTIONS OCCUR?

      What the public really wants to know is a breakdown of abortion timeline compared to the reason but none of these stats show this breakdown which is very odd because based on the data they have here it seems the original data set should have this information. It's possible it doesn't though, if the "why" survey's are not linked to the "when" data.

    1. Nearly half of FBI rap sheets failed to include information on the outcome of a case after an arrest—for example, whether a charge was dismissed or otherwise disposed of without a conviction, or if a record was expunged

      This explains my personal experience here: https://hyp.is/EIfMfivUEem7SFcAiWxUpA/epic.org/privacy/global_entry/default.html (Why someone who had Global Entry was flagged for a police incident before he applied for Global Entry).

    2. Applicants also agree to have their fingerprints entered into DHS’ Automatic Biometric Identification System (IDENT) “for recurrent immigration, law enforcement, and intelligence checks, including checks against latent prints associated with unsolved crimes.

      Intelligence checks is very concerning here as it suggests pretty much what has already been leaked, that the US is running complex autonomous screening of all of this data all the time. This also opens up the possibility for discriminatory algorithms since most of these are probably rooted in machine learning techniques and the criminal justice system in the US today tends to be fairly biased towards certain groups of people to begin with.

    3. It cited research, including some authored by the FBI, indicating that “some of the biometrics at the core of NGI, like facial recognition, may misidentify African Americans, young people, and women at higher rates than whites, older people, and men, respectively.

      This re-affirms the previous annotation that the set of training data for the intelligence checks the US runs on global entry data is biased towards certain groups of people.

    4. for as long as your fingerprints and associated information are retained in NGI, your information may be disclosed pursuant to your consent or without your consent.

      Meaning they can give your information to with or without your consent.

    5. people enrolled in, or applying to, the program consent to have their personal data added to the FBI’s Next Generation Identification (NGI) database, shared with “federal, state, local, tribal, territorial, or foreign government agencies”, and DHS third-party “grantees, experts, [and] consultants” forever.

      So it's not just shared with the US government but any government official from any country. Also third-party experts pretty much opens it up for personal information to be shared with anyone.

    1. as part of the application process, TSA collects a cache of personal information about you, including your prints. They’re held in a database for 75 years, and the database is queried by the FBI and state and local law enforcement as needed to solve crimes at which fingerprints are lifted from crime scenes, according to Nojeim. The prints may also be used for background checks.

      While Global Entry itself only lasts for 4 years, the data you give them and allow them to store lasts for almost your entire life.

    1. by providing their passport information and a copy of their fingerprints. According to CBP, registrants must also pass a background check and an interview with a CBP officer before they may be enrolled in the program

      I was at my Global Entry interview (not at all sure I made the right decision to apply) and a person who already had Global Entry came into the room because he had gotten flagged. The lady at the desk asked him if he had ever been arrested, he said no. She said their new system (they continuously update it with new algorithms to find this info) had flagged a police incident that had happened prior to him applying for Global Entry. He hadn’t been arrested, wasn’t guilty of any crime but his name had apparently made it into some police report and that gave them cause to question him when he re-entered his country.

    2. including data breaches and bankruptcy, experienced by “Clear,” a similar registered traveler program

      Clear was another travel program that had a breach of traveler's personal information so it is not unreasonable to be cautious of Global Entry which has the same information and same legal protections in place (or lack there of).

    1. being able to wear clothing that enabled better mobility. Walker chose to wear what was known as the "Bloomer costume" as a modified uniform all throughout the war. It was a dress-and-trouser combination that had gone out of favor long before the war began, but she didn't care -- she wore it anyway.

      From the time she was a girl she wore pants and she continued to do so even in the military.

    2. In 1863, her medical credentials were finally accepted, so she moved to Tennessee, where she was appointed as a War Department surgeon

      The phrasing of this appears to be somewhat biased. It sounds like her credentials weren't up to snuff or something but really, the military was low on surgeons at that time and simply didn't want a woman. https://hyp.is/vAWzXCtjEem5j1tLLCQ8dg/cfmedicine.nlm.nih.gov/physicians/biography_325.html

    3. Because of her credentials, she didn't want to be a nurse, either, so she chose to volunteer for the Union Army.

      This is some what conflicting information. According to https://hyp.is/vAWzXCtjEem5j1tLLCQ8dg/cfmedicine.nlm.nih.gov/physicians/biography_325.html she did work as a Nurse, she just wasn't paid.

    4. Walker went into private practice for a few years, but then the Civil War broke out in 1861. She wanted to join the Army as a surgeon but wasn't allowed because she was a woman.

      She was a surgeon in private practice but wanted to join the war effort.

    5. in 1855 graduated as a medical doctor from Syracuse Medical College

      She was the second women surgeon at that time.

    1. in 1863 she was briefly appointed surgeon in an Ohio Regiment.

      She finally was appointed a surgeon near the end of the war.

    2. Dr. Mary Walker was an outspoken advocate for women's rights, and the first woman ever awarded the Congressional Medal of Honor.

      She wore her medal everyday and also modified her uniform in the war to have pants. In 1917 they took all medals of honor away for anyone who hadn't been "in combat". She refused to give her medal up and wore it until the day she died. Jimmy Carter later reinstated her medal in 1977.

    3. At the outbreak of the Civil War, she volunteered in Washington to join the Union effort, and worked as a nurse in a temporary hospital set up in the capital.

      She worked as an unpaid nurse because she was not allowed to join as a surgeon in the US military.

  8. Jan 2019
    1. Server-Sent Events utilize a regular HTTP octet streams, and therefore are limited to the browser’s connection pool limit of ~6 concurrent HTTP connections per server. But they provide a standard way of pushing data from the server to the clients over HTTP, which load balancers and proxies understand out-of-the-box. The biggest advantage being that, exactly as WebSockets, they utilize only one TCP connection. The biggest disadvantage is that Server-Sent Events don’t provide a mechanism to detect dropped clients until a message is sent.

      Possibly an alternative to using websockets for server-client communication (when the communication does not need to be two ways).

    1. Server-sent Event(SSE) in Python and here is why I thought Python is a great server-side language for SSE

      Server side events in python work well.

    1. Conference in Portland OR about open tools in publishing, science, and social justice.

    1. So it realizes that clean is a dependency of two tasks. In this way, it makes sure that it is executed only once.

      gulp3.0 traces the dependencies and generates the dependency tree such that it only executes a common dependency once.

    2. gulp.task('default', gulp.series('clean', gulp.parallel('scripts', 'styles'), function() {...}));

      The new and improved version in gulp4.0. The difference here which fixes the previous problems of having to rebuild every-time it that, the dependencies can be run independently. So styles can be run by itself without running cleanup beforehand.

    3. Gulp 4 drops the dependency parameter completely and replaces them with execution functions that can be used instead: gulp.series for sequential execution gulp.parallel for parallel execution.

      gulp4.0 allows you to specify the exact execution order of dependencies rather than letting gulp assume the order from the dependency tree.

    4. Imagine triggering the styles task every time you change one of your CSS files. It would execute first clean, and then styles, practically deleting your efforts from “script”.

      This means the dependency graph can cause undesirable wipes of a build directory resulting in unnecessary rebuilds.

    5. All those tasks are executed for maximum concurrency.

      If it can, when generating the dependency graph, it will execute dependencies in parallel.

    1. When a document is deleted or updated (= delete + add), Apache Lucene simply marks a bit in a per-segment bitset to record that the document is deleted. All subsequent searches simply skip any deleted documents.

      Meaning any deleted documents do not show up in search. Assuming that change has been propagated to all shards.

  9. Oct 2018
  10. Sep 2018
  11. Aug 2018
    1. He was told that the documentation he had provided could not be accepted. Bank officials insisted he produce a different form, according to Moshfegh. The bank was wrong, he maintains, because the form he had supplied was the correct one based on his current status as a student nearing graduation.

      Here again, it sounds like because of his potential change in status, they changed the form that he normally would fill out or thought they needed to change the form he normally fills out.

    2. He recently married an American.

      It sounds like perhaps his marital status may have triggered something?

    3. Moshfegh used the account for everyday transactions. All he had to do to maintain the account was show proof of legal residency every six months.

      BOA has been asking for proof of residency every 6 months since 2011.

    1. About 1 week after setting up the account they sent a letter informing us that they were closing the account. They provided a 1-800 number to learn why. The only thing that they would (very tersely) say is that "It was a business decision". That very same day we learned about BOA questioning the citizenship status of its account holders.

      Out of 3931 reviews this is the only one that mentions residency/citizenship and it's not 100% certain that that was even the reason why the account was closed. I'm not saying Bank of America doesn't have terrible business practices and/or ask for unnecessary and discriminatory information but it does kinda make me question whether the media is over-dramatizing this and why they are just reporting on it now since even their own reporting has revealed this has been happening for years (although perhaps not following through with closing people's accounts when they fail to respond?). Looking forward to seeing how this progresses.

    1. Bank of America, though, told the Star it is the company’s standard practice to inquire about citizen status when opening a new account or updating customer information on an existing one. And all customers will eventually receive update notices asking about their citizenship and dual citizenship status.

      This lines up with Moshfegh's story.

    1. The regulations are not designed to determine immigration status. In fact, citizenship status is not even considered when establishing a bank accounts. Also important, we do not ask for proof of citizenship. In fact, we maintain relationships with customers of many different nationalities.

      This sounds like a bunch of political babel.

    2. Twice a year, he was asked to produce certain documents to prove his legal status. Then, Bank of America asked for different documentation that he could not provide. When he was unable to, the bank froze his account. Moshfegh reportedly couldn’t pay his rent as a result.

      Saeed already had to provide proof of legal status and they just changed the form on him. So it's not that Bank of America hasn't been requesting this information before, it's that the format of information has changed. (Not that I think they should be doing that in the first place but there is some truth in what the BOA representative said.)

    1. This text analysis that it contains words written in hebrew and deciphering of the first sentence of the text using hebrew translation seems to align with what this author is saying about the text being passed down through the family.

      She made recommendations to the priest, man of the house and me and people.

      [Source] (https://hyp.is/GB7sZKjvEeidoGeGo8L6jA/www.independent.co.uk/news/science/mysterious-manuscript-decoded-computer-scientists-ai-a8180951.html)

    1. Comments, questions, suggestions? Your feedback is welcome.

      Sukhwant Singh's analysis here seems to fit with a lot of other's partial analysis/observations such as multiple characters representing the same character, certain characters only appearing at the end of words etc. It seems quite compelling. The dates however, are a century too early although that does not necessarily dispel his theory that it is written in Landa Khojki.

    2. Many "words" differ by only one character and are found in each other's vicinity

      This might suggest the same thing as Tiltman's analysis in that a single character may take several forms.

    3. Tiltman treats f as a variant form of k and p as a variant form of t

      When learning that there were over 100 characters used in the manuscript my first thought was that perhaps variations of a character were used to represent the same character.

    4. Speaking generally, each character behaves as if it has its own place in an 'order of precedence' within words; some symbols such as o and y seem to be able to occupy two functionally different places.

      This is very interesting. It seems to suggest that each word may be scrambled based on the characters used.

    1. Here is a copy of the full manuscript.

    2. The text seems to be split into four parts (based on the drawings); botanicals, astrological charts, women bathing, and what appears to be recipes. For this reason it's theorized that the Voynich Manuscript is an encoded medical book.

    3. Both the mineral pigments used in the paint as well as the large and consistent quality of the parchment indicates the text would have cost quite a bit of money to produce.

    4. The Voynich Manuscript has not been deciphered despite people dedicating their entire lives to the challenge. Even modern deciphering computerized methods have not picked up a pattern.

    5. Interestingly, the drawings of some of the plants seem to show cellular level detail. The first microscope didn't exist until centuries later.

    6. The Voynich Manuscript was carbon dated to 1404-1430. The dovetail wall in one of the drawings given the time period indicates the author probably lived in Italy as that's the only known place during that time period with that style of architecture.

    1. Women were afforded much the same rights as men in Egyptian society.

    2. At least 15 egyptian pharaohs were known to be women. This article from 2014 suggests there were at least 7. It's crazy how in just 3 years they discovered that there were more than twice as many. This really speaks to the cover up by the scientific community to exclude women from history.

    3. Hatshepsut took over rule for her son because he was too young but continued on even after he was of age. She was known as a royal warrior and monumental builder.

    4. Arsenoe's rule was pretty much the start of capitalism.

      During her rule as pharaoh coins started being used in most transactions.

    5. Arsenoe's crown's various components pay homage to all the powerful women before her.

    6. Nefertari's earings were given to her by the Greeks and she wore them throughout her life.

    7. I didn't realize all the pharaohs wore fake tie on beards!

  12. Mar 2018
    1. max_overflow

      This defaults to 10 (assuming we increase our pool_size to be 10) which means we will have max 20 connections.

    2. pool_size¶

      The default is 5 in our env -but we typically run with at least 10 connections per instance so this prob means we should increase this number in our config to 10.

    3. from sqlalchemy import create_engine, exc e = create_engine(...) c = e.connect()

      It seems like this is the way we should be using the db engine. Create it once, then create 'sessions' / 'connection' off of it throughout the code. We are doing this by using sessions that underneath grab a connection from the pool. See https://github.com/hypothesis/h/blob/master/h/streamer/streamer.py.

    4. All SQLAlchemy pool implementations have in common that none of them “pre create” connections - all implementations wait until first use before creating a connection. At that point, if no additional concurrent checkout requests for more connections are made, no additional connections are created. This is why it’s perfectly fine for create_engine() to default to using a QueuePool of size five without regard to whether or not the application really needs five connections queued up - the pool would only grow to that size if the application actually used five connections concurrently, in which case the usage of a small pool is an entirely appropriate default behavior.

      The default connection pool is a "small pool"-as other data seems to indicate thus further pointing to increasing our pool size would be a good place to start. Also note the default pool doesn't start out with all those connections it ramps up and discards all connections above pool_size.

    5. Particularly for server-side web applications, a connection pool is the standard way to maintain a “pool” of active database connections in memory which are reused across requests.

      This is something that appears to be not currently happening as our 'default state' number of connections is 50 in total. Rather than taking the thrash as traffic ramps we should maintain more connections in the queue by default. This will avoid cpu thrash as creating connections is an expensive cpu thrashing operation.

    1. session = session_factory(settings)

      This is where we create the db engine/connection pool and a session associated with it.Note at the end we close the session-but not the engine or the pool. The connection created by the original session will be re-used each iteration. See http://docs.sqlalchemy.org/en/latest/core/pooling.html and http://docs.sqlalchemy.org/en/latest/orm/session_basics.html#getting-a-session for details.