text:
DJB acknowledges vulnerability in djbdns; pays out the $1000 reward (gmane.org)
66 points by dfranke on Mar 4, 2009 | hide | past | web | favorite | 16 comments
tptacek on Mar 4, 2009
Wondering what the flaw was?
Names in DNS packets are "compressed" by encoding repeated labels ("google.com" in a Google A query) as offsets to the first place in the packet the label was seen. The offset encoding allows 14 bits for the actual integer.
Dempsky's bug causes DJB's code to attempt to compress a name whose suffix is first seen more than 16384 bytes into the packet, which rolls that counter, which throws off the rest of the parse and allows data that should be junk inside a record to instead be parsed as a seperate record.
This is the second integer-related security flaw in DJB's code (and apparently the first exploitable one). Integer handling in C code is hard to get right; there are lots of corner cases, but more importantly there are lots of sites in your code you have to check at, unlike buffer overflows, which are almost always sited at your (relatively infrequent) buffer copies.
sfk on Mar 4, 2009
As an aside, the official "compression" algorithm is just unbelievable. DJB's comment in dns_packet.c is quite apt:
/* DNS should have used LZ77 instead of its own sophomoric compression algorithm. */
It has also been a historic source of both security flaws (BIND's problems with DNS compression were remote code execution flaws, not baroque policy violations in delegated subdomains) and interoperability failures (BIND has been unable to decide which record contents are compressable versus which ones need to remain canonical).
But yeah, the experts in this protocol should definitely be the ones to design an Internet-wide PKI.
brl on Mar 6, 2009
> This is the second integer-related security flaw in DJB's code (and apparently the first exploitable one).
Here is what DJB has to say about the exploitability of Guninski's bug:
"In May 2005, Georgi Guninski claimed that some
potential   64-bit portability problems allowed
a ``remote exploit in qmail-smtpd.'' This claim
is denied. Nobody gives gigabytes of memory to
each qmail-smtpd process, so there is no problem
with qmail's assumption that allocated array
lengths fit comfortably into 32 bits. "
I'm not sure I'm convinced by this line of reasoning :)
kurtosis on Mar 4, 2009
The cash rewards always really turned me off from DJB - it sounded like borderline crackpot behavior. The fact that he actually paid it out instantly puts all doubts to rest about his seriousness. I'm of course a long time fan of qmail and djbdns daemontools etc.. I understand his motivation to provide incentives for people to find bugs in his software. Question: how do you provide incentives for people to break your system and report it to you without sounding like a crackpot, other than hiring them?
I don't think the guarantee was a win.
I think most non-security people have roughly the same initial reaction as you did; it sounded silly, especially because lots of commercial enterprises have offered "security guarantees" and held "hacking contests" and weaseled at the results.
I know most security people don't care about the guarantee. We try to beat up on DJB's software because it is so hard to find security flaws in it, everyone knows that, and so a finding is a major reputation win. Nobody cares about the $1000; that's significantly less than a day's bill rate for the class of researcher that is likely to find these flaws.
The moral of this story is, don't bother with the guarantee:
(1) You will end up being asked to pay it out, because you are not Daniel J. Bernstein, and you will not write software as solid as qmail.
(2) It isn't going to impress anyone you care about.
(3) It isn't going to motivate hard-core researchers.
cperciva on Mar 4, 2009
Have a reputation. Nobody who is qualified to review djb's code is going to get him confused with a crackpot.
dfranke on Mar 4, 2009
Offering prize money for discovering flaws is point #13 on the crackpot index (http://math.ucr.edu/home/baez/crackpot.html). I've griped in the past that this criterion is too prone to false positives, citing DJB as an example.
jayp on Mar 4, 2009
Wow, I believe this is the first-ever "security guarantee" payout by DJB? Not bad!, not bad at all!, considering how popular both qmail and djbdns are.
I think so, unless you count the prize for "most interesting cryptanalysis of Salsa20" as a security guarantee. Also, someone discovered a bug in qmail a while back, but DJB disputed that it was security-related and didn't pay. Having seen the details, I'm inclined to side with DJB.
There was a (contested) claim against qmail, where Georgi Guninski found an LP64 integer overflow that would only have been exploitable if you explicitly configured your system to allow qmail to consume huge amounts of memory. The code was imperfect, but the deployed software was safe. So far as I know, DJB didn't pay this out. I'm ambivalent about it.
> would only have been exploitable if you explicitly configured your system to allow qmail to consume huge amounts of memory.
Are you sure it's explicit (ie: changing some qmail configuration file) rather than just depending on how the system-wide rlimits are set up?
Guninski claimed that following the exact instructions in the INSTALL file results in a vulnerable configuration (assuming the exploitable hardware configuration)
http://www.ornl.gov/lists/mailing-lists/qmail/2005/05/msg008...
nikron on Mar 4, 2009
Nice 1 line patch... I'm surprised it could be fixed so easily.
Small security patches aren't uncommon -- offhand, I'd guess that about 75% of FreeBSD security advisories are fixed by patches of 5 lines or less.
newt0311 on Mar 4, 2009
Now if only we could make software companies do something similar...
I'm planning on doing this for tarsnap once it leaves beta. (Well, offering a guarantee -- I hope I'll never have to pay up!)


Actually when U-Boot pass the control, we have memory model equal to just physical addresses (middle column), so we just do not do anything we can perfectly sit with memory model equal with physical.
Set address for stack: we decided to put Mach structure at address 0x2000 (8KB), so let's have a stack at MACHADDR+BY2PG (added a page 4KB) = 12KB, as result we will have stack area for kernel as 0x3000-0x8000 (12KB–32KB). It is 20KB, which is expected as enough of all kernel routines.
(these codes I took from 9pi, so may not good explain step-by-step, I would appreciate if pointed to much better description of all specifics).
File armv6.h with all needed constants I took from 9pi sources.


Please note: If you are already registered to live on campus during the break period, you do not need to submit this form.
If you need to leave your vehicle in a Villanova Parking Lot during a break period, please submit the form below. Please submit this form 2 business days prior to the break.
I agree to park where assigned displaying a valid permit and/or hangtag. I agree that Villanova University is not responsible for fire, theft, or damage to my vehicle while parked on Villanova University property.
Any other Permit: Please submit and the Parking Office with respond with parking instructions.
Parking on University Lots will be at the owner's risk.


Various Artists - Brownswood Bubblers Thirteen. Vinyl LP, CD. Bleep.
It's that time again. The 13th instalment of Brownswood Records' Brownswood Bubblers compilations sees Gilles Peterson's label come through with yet another comprehensive survey of UK's jazz, soul and hip-hop scenes. As usual, it's a delightfully mixed bag - tracks such as the slo-mo electro-r&b of Lynda Dawn's 'Move' sit side by side with the poetry slam grime of Oscar #Worldpeace's 'No White God'. Emma-Jean Thackray, Yazmin Lacey and Puma Blue are also among the tracklist.


text:
package com.iluwatar.masterworker.system.systemmaster;

import com.iluwatar.masterworker.ArrayResult;
import com.iluwatar.masterworker.system.systemworkers.ArrayTransposeWorker;
import com.iluwatar.masterworker.system.systemworkers.Worker;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

/**
 * Class ArrayTransposeMaster extends abstract class {@link Master} and contains definition of
 * aggregateData, which will obtain final result from all data obtained and for setWorkers.
 */

public class ArrayTransposeMaster extends Master {
  public ArrayTransposeMaster(int numOfWorkers) {
    super(numOfWorkers);
  }

  @Override
  ArrayList<Worker> setWorkers(int num) {
    //i+1 will be id
    return IntStream.range(0, num)
        .mapToObj(i -> new ArrayTransposeWorker(this, i + 1))
        .collect(Collectors.toCollection(() -> new ArrayList<>(num)));
  }

  @Override
  ArrayResult aggregateData() {
    // number of rows in final result is number of rows in any of obtained results from workers
    var allResultData = this.getAllResultData();
    var rows = ((ArrayResult) allResultData.elements().nextElement()).data.length;
    var elements = allResultData.elements();
    var columns = 0; // columns = sum of number of columns in all results obtained from workers
    while (elements.hasMoreElements()) {
      columns += ((ArrayResult) elements.nextElement()).data[0].length;
    }
    var resultData = new int[rows][columns];
    var columnsDone = 0; //columns aggregated so far
    var workers = this.getWorkers();
    for (var i = 0; i < this.getExpectedNumResults(); i++) {
      //result obtained from ith worker
      var worker = workers.get(i);
      var workerId = worker.getWorkerId();
      var work = ((ArrayResult) allResultData.get(workerId)).data;
      for (var m = 0; m < work.length; m++) {
        //m = row number, n = columns number
        System.arraycopy(work[m], 0, resultData[m], columnsDone, work[0].length);
      }
      columnsDone += work[0].length;
    }
    return new ArrayResult(resultData);
  }

}

redpajama_set_name: RedPajamaGithub


text:
Pop Smoke Arrested for Allegedly Transporting Stolen Rolls-Royce
RS Charts: Selena Gomez's 'Rare' Edges Out Roddy Ricch for Number One on RS 200
Report: Lev Parnas Handed Over Tapes of Trump and Giuliani to the House Intelligence Committee
BPM Supreme's new sample library will enhance your production
See Ozzy Osbourne Turn Introspective in Documentary Trailer
01/16/2020 by MusicBlogger
parses feeling like a split personality — "John" (his given name) and "Ozzy" — in the first few frames the trailer for the upcoming documentary, Biography: The Nine Lives Ozzy. The film will premiere at this spring's South by Southwest festival.
The 86-minute film, which A&E produced as part its "Biography" series, will tell the story the former Black Sabbath singer: from childhood to solo stardom to reality-TV megafame. Ozzy, Sharon and Jack Osbourne are among the executive producers the picture, which former Osbournes producer R. Greg Johnston directed.
"I use the talent making people feel somewhat entertained when I was going around — to take it onstage with my music, I suppose, is the same kind a thing," Ozzy says in one revealing moment.
"I don't know what music would be like if it weren't for the influence Ozzy," Rick Rubin says. "Ozzy changed everything."
"I think Ozzy's music is timeless," Ozzy's recent collaborator, Post Malone, fers. "It makes me cry and gives me the chills."
The trailer shows Ozzy looking at pictures himself as a child and going around during his Sabbath days. It also show him onstage as a solo artist over the years. In addition, it features commentary from Kelly, Sharon and Jack Osbourne, along with Marilyn Manson and Rob Zombie. Ice-T and Korn's Jonathan Davis are also featured in the documentary.
"He left one the biggest rock bands in the world and became bigger — a credible artist on his own, finding great new talent. And then he] made it huge on TV," Sharon says. "Nobody had done that."
After injuries from a fall sidelined Osbourne for most 2019, the singer will be putting out a new album, Ordinary Man, next month. Guns N' Roses' Duff McKagan and the Red Hot Chili Peppers' Chad Smith comprise the rhythm section for the album, which also features guest appearances by Elton John, Tom Morello, Slash and Post Malone. He's planning on returning to the stage this spring for another North American leg his No More Tours 2 trek.
Pearl Jam Open 'New Doors Creatively' on Single 'Dance of the Clairvoyants'
FEATURES chill, No, personal, premiere, rap, reveal, rock, tour 01/16/2020 by MusicBlogger

redpajama_set_name: RedPajamaCommonCrawl


The DELUXE FRACTION TOWER ACTIVITY SET is a must have for your math manipulatives classroom collection! Snap these cubes together and see fraction concepts come together right before your eyes. Innovative Fraction Tower Cubes fit together or into the base unit. Set includes 51 color-coded fraction cubes with fractions printed on them to show halves, thirds, fourths, fifths, sixths, eighths, tenths, twelfths and one whole. Blue base, 12 double-sided activity cards and Teacher's Guide also included.


This circular disc can be attached to the entrance to your hive and allows different openings: closed, closed with ventilator, queen excluder segment or completely open. 190mm diameter with 6mm fixing hole. Also comes with the extra bits for the poly nuc hive feeder.


WE CREATE HIP, FRESH WEBSITES – THAT CONVERT CUSTOMERS. RAD Web Marketing is a digital marketing agency that designs cutting edge websites and web marketing strategies for forward thinking small businesses and entrepreneurs.
Kazak Media is a local internet marketing company specializing in search engine optimization (SEO), search engine management (SEM), and web design. We can cater to any budget. Call us today!


text:
"Now everybody—" Visit Interprets Songs by Thomas Pynchon
Bonus Material
We intend to add more homemade videos over time. For now, here is a selection of videos that were made before and during the production of the album. They might not sound anything like what is on the album. Feel free to subscribe to our Youtube channel.
Our promotional video — a homage to those compilation TV commercials from the 1980s and 1990s.
Wacky Coconuts
In time for a little wacky holiday spirit: "Wacky Coconuts" from Pynchon's 1990 novel Vineland.
Our interpretation of the ending of Pynchon's masterpiece Gravity's Rainbow.
Visit Live in Basel (2019)
"They've Been Sleeping on Your Shoulder," "Full Moon in Pisces," "Long Trip Out," and "Last Song" performed live at conference The Prolonged Death of the Hippie, 1967–1969 at the University of Basel, the night of full moon in Pisces 2019.
Middletown New York
"Middletown New York" is from Thomas Pynchon's 2013 novel Bleeding Edge. The footage was shot during the recording sessions at the Terrarium in Minneapolis.
Hymn and Glee
On the occasion of Thomas Pynchon's 80th birthday on May 8th, 2017, a birthday party (in absentia of Pynchon, needless to say) was organized at Cabaret Voltaire in Zurich. Among shuffling, drinking, suspended bananas, and a birthday cake with a marzipan V-2 rocket, Tyler Burba performed a number of the tunes that were later developed into proper arrangements for this album. He also performed two of the solo pieces here, "Hymn" and "Glee" from The Crying of Lot 49.
Existential Hymns: New Album by Visit
At long last: Visit's new album is out! Check out the album's trailer on YouTube or visit the website!
Aug. 11th, 2022: book launch, New York
Aug. 13th, 2022: one set, New York
Aug. 14th, 2022: two sets, Philadelphia
The music video of "Wacky Coconuts" from Thomas Pynchon's novel Vineland is online on YouTube. (25 December 2021)
Why I Cried interviewed Tyler Burba about the album, the death of the hippie, and reading Thomas Pynchon (or not). Read it here. (27 May 2021)
"Now everybody—" was featured on the radio too. Bavarian Radio (Bayerischer Rundfunk) went so far as to call "It Was Fun While It Lasted" one of the best songs of the pandemic-ridden year 2020! (26 Dec 2020)
On October 7th, 2020, on Swiss Radio SRF 2 Kultur. Download the podcast (starting around 18min45s).
On October 11th, 2020, on Bavarian Radio BR2, Kulturjournal. Download the podcast (starting around 22min30s)
Copyright © 2023 · All Rights Reserved · "Now everybody—" Visit Interprets Songs by Thomas Pynchon


As I start planning a party, a to-do list quickly develops as ideas and tasks come to my mind. One has to decide a theme, buy party supplies, invite guests, etc. However, for me the most important decision is dessert. I will admit it. I love sweets, and always want to offer my guests the most delicious treat I can find. I recently became engaged, and am now faced with the ultimate decision – what dessert do I serve at my wedding reception?
Wedding cakes are to the traditional go-to wedding dessert option. Elaborate, gorgeous structures that have delicate detailing are often the centerpiece of the entire reception. Guests immediately gravitate towards it (often bypassing the newlyweds) in order to sneak a peak as soon as they enter the room. Any flavor combination that you could desire (vanilla buttercream frosting with a passion fruit filling or German chocolate with a hazelnut ganache) can be created by an expert baker who spends months creating your confectionery dream. You envision intricate sugar tulips cascading down the cake. No problem. Or maybe a navy blue trim that delineates each tier. Done and done.
However, more and more couples are opting to blaze new trails and venture into the endless world of desserts to find one that suits their personalities. Throughout my time on the wedding reception circuit, I have seen (and tasted) everything. Each was delicious and presented in a beautiful way that matched the overall feel of the day.
Do you have a soft spot for cupcakes? Then create a cupcake tower with a separate small cake on top if you want to preserve the traditional first cutting. Or are you more of a macaron lover? Pick out shades and flavors that compliment your wedding colors. Is Italy one of your favorite places to travel to? Then set up a gelato bar with all of your favorite toppings. And what if you are more of a pie lover? Then have your favorite bakery create its famous blackberry raspberry pie.
So all of this begs the question: what dessert are you? Thankfully, this is one of the sweeter choices you get to make throughout the planning process. For me there are only two major criteria – what looks great, and more importantly, what tastes amazing! And for those of you who are still worried that you won't pick the right dessert, take a look at some of these creations. Trust me – at the very least, it will give you a good laugh!


text:
Rodtang Jitmuangnon (en tailandés: รถถัง จิตรเมืองนนท์; nacido el 23 de julio de 1997) es un peleador de Muay Thai tailandés que actualmente compite en la categoría de peso mosca de ONE Championship, donde es el actual Campeón Mundial de Muay Thai de Peso Mosca de ONE. Rodtang es también un ex-Campeón de Omnoi Stadium de 130 lb y campeón de MAX Muay Thai de 125 libras.

Desde diciembre de 2020, The Nation lo considera el mejor peleador de Muay Thai libra por libra del mundo.

Biografía
Rodtang tuvo su primera pelea de Muay Thai a la edad de 8 años para ganar dinero y ayudar a su familia. A los 14, se mudó a Bangkok para unirse al gimnasio Jitmuangnon.

El 2 de enero de 2016, Rodtang ganó su primer título de Muay Thai cuando derrotó a Petchprakan Kor. Klanbut por decisión para reclamar el Campeonato MAX Muay Thai de 125 libras. El 6 de febrero de 2016, defendió con éxito su cinturón de título MAX 125 lb contra Petchprakan, ganando por decisión una vez más.

El 29 de julio de 2017, derrotó a Chai Sor Jor Toypadriew para ganar el título vacante de 130 libras del Omnoi Stadium. Rodtang retuvo el título el 28 de abril de 2018 al derrotar a Phetnamngam Aor Kwanmuang.

El 16 de junio de 2018, Rodtang se enfrentó a la superestrella japonesa del kickboxing Tenshin Nasukawa bajo las reglas del kickboxing en Rise 125 en Tokio, la pelea fue muy emocionante y disputada. Los jueces dieron un empate después de 5 rondas y se tuvo que pelear una ronda extra, Rodtang perdió esa ronda y la pelea, pero algunos observadores pensaron que había hecho lo suficiente para obtener la victoria antes de eso.

En agosto de 2018, Rodtang se enfrentó a Chorfah Tor Sangtiennoi. Esta pelea luego sería elegida como la Mejor Pelea del Año del Estadio Rajadamnern.

A lo largo de 2017 y 2018, Rodtang tuvo una racha ganadora de 10 peleas en los estadios que culminó en una pelea contra Rungkit Morbeskamala por el título vacante de 130 libras de Rajadamnern. Rodtang perdió por decisión.

El 16 de agosto de 2019, Rodtang se enfrentó a Saeksan Or. Kwanmuang en la provincia de Songkhla, la pelea se consideró decepcionante teniendo en cuenta el estilo de lucha de los dos participantes. La revancha un mes después fue la guerra de ida y vuelta que esperaban los fanáticos y recibió el premio a la Pelea del año en el Estadio Rajadamnern.

El 31 de enero de 2020, Rodtang se enfrentó a Yodlekpet Or. Pitisak en la tarjeta de Muay Thai más grande del año en Phuket. A pesar de una diferencia de tamaño y una apuesta adicional de 1 millón de baht del campamento Teeded99 en juego, Rodtang dominó a su oponente y ganó una clara decisión contra posiblemente uno de sus mejores oponentes hasta el momento.

Rodtang sufrió su primera derrota desde el 25 de octubre de 2018 contra Kaonar P.K.SaenchaiMuaythaiGym en el estadio Rajadamnern el 27 de febrero de 2020.

Pudo vengar su derrota ante Kaonar en una revancha en el evento R1 UFA celebrado en el World Siam Stadium el 5 de octubre de 2020, ganando por decisión en cinco asaltos.

El 24 de noviembre de 2020, el fundador de Yokkao, Philip Villa, anunció en Instagram que Rodtang firmó un contrato de patrocinio de tres años con la marca de Muay Thai. Su compañero de campamento, Nuenglanlek Jitmuangnon, también firmó un contrato de patrocinio de tres años con la marca.

ONE Championship
Después de firmar con ONE Championship, Rodtang hizo su debut en ONE Super Series contra Sergio Wielzen el 22 de septiembre de 2018 en ONE Championship: Conquest of Heroes en Yakarta. Derrotó a Wielzen por decisión unánime.

Campeonato Mundial de Muay Thai de Peso Mosca de ONE
El 2 de agosto de 2019 en ONE Championship: Dawn of Heroes en Manila, Rodtang se enfrentó a Jonathan Haggerty por el Campeonato del mundo de Muay Thai de peso mosca después de que Haggerty lo desafió previamente en ONE Championship: For Honor. Después de un comienzo lento de la pelea, Rodtang derribó a Haggerty en el cuarto asalto y ganó la pelea por decisión unánime, y también fue coronado como el nuevo Campeón Mundial ONE Flyweight Muay Thai. En su primera defensa del título, Rodtang derrotó a Walter Goncalves por decisión dividida en ONE Championship: Century el 13 de octubre de 2019.

Rodtang luego hizo su segunda defensa del título del Campeonato Mundial ONE Flyweight Muay Thai en una revancha contra Jonathan Haggerty en ONE Championship: A New Tomorrow el 10 de enero de 2020. En una pelea en la que derribó a Haggerty un total de 4 veces, incluido un golpe al hígado en el primer asalto, Rodtang retuvo su título de muay thai de peso mosca de ONE con una victoria por nocaut técnico en el tercer asalto después de entregar 3 caídas en ese mismo asalto.

Rodtang luego se enfrentó a Petchdam Petchyindee Academy por tercera vez, ya que está programado para defender el Campeonato Mundial de Muay Thai de peso mosca ONE por tercera vez en ONE Championship: No Surrender el 31 de julio de 2020. Derrotó a Petchdam y retuvo el título por decisión mayoritaria después de cinco rondas.

El 5 de octubre de 2020, Rodtang se enfrentó a Kaonar PKSaenchaiMuaythaiGym en una revancha que se organizó para recaudar dinero para obras de caridad. Rodtang ganó la pelea por decisión unánime.

Como luchador titular de muay thai, Rodtang estaba programado para hacer su debut en kickboxing contra Alejandro Rivas en ONE Championship: Fists Of Fury el 26 de febrero de 2021. Más tarde, Rivas fue reemplazado por Tagir Khalilov, a quien Rodtang venció por decisión dividida.

Se esperaba que enfrentara a Jacob Smith en ONE en TNT 1, el 7 de abril de 2021. Sin embargo, Smith luego fue retirado de la pelea y reemplazado por Daniel Williams. Rodtang derrotó a Williams por decisión unánime.

Pelea de Reglas Especiales
El 15 de septiembre de 2021, se anunció que Rodtang se enfrentaría al ex campeón de peso mosca de UFC y campeón del Gran Premio de peso mosca de ONE 2019, Demetrious Johnson. La pelea estaba programada para el 5 de diciembre de 2021 bajo reglas especiales y encabezaría el evento ONE X. Las rondas 1 y 3 se disputarían bajo el conjunto de reglas ONE Muay Thai, y las rondas 2 y 4 se disputarán bajo el conjunto de reglas ONE MMA. Sin embargo, debido a los cierres por la pandemia, el evento se reprogramó para ONE Championship: X el 26 de marzo de 2022. Rodtang perdió la pelea a través de una sumisión de estrangulamiento por detrás en la segunda ronda.

Grand Prix de Peso Mosca de Muay Thai de 2022 de ONE
La pelea contra Jacob Smith fue reagendada para ser parte de los cuartos de final del Grand Prix de Peso Mosca de Muay Thai de ONE en ONE 157, el 20 de mayo de 2022. Ganó la pelea por decisión unánime. Dicha victoria lo haría ganador de su primer premio de Actuación de la Noche.

Rodtang estaba programado para enfrentar a Savvas Michael en las semifinales del torneo en ONE on Prime Video 1, el 27 de agosto de 2022. Dos días antes de la pelea, Rodtang no entregó una muestra obligatoria para el test de hidratación y no se le permitió pesarse. Rodtang se retiró de la pelea el 25 de agosto, debido a una enfermedad.

Continuación de su reinado titular
Rodtang realizó la cuarta defensa de su título de Muay Thai de peso mosca de ONE contra el actual Campeón de Muay Thai de Peso Paja de ONE Joseph Lasiri, en ONE on Prime Video 4, el 19 de noviembre de 2022. Rodtang ganó la pelea por una muy dominante decisión unánime, luego de tirar a Lasiri dos veces durante pelea.

Rodtang estaba programado para enfrentar a Daniel Puertas en una pelea de kickboxing en ONE Fight Night 6, el 13 de enero de 2023. Sin embargo, se anunció que Puertas enfrentaría a Superlek Kiatmuu9 por el título de kickboxing vacante y fue reemplazado por Jiduo Yibu. Durante el pesaje, Rodtang dio 136.5 libras, 1,5 libras sobre el límite de peso mosca, por lo que la pelea prosiguió en un peso pactado. Rodtang ganó la pelea por una muy dominante decisión unánime.

Oportunidad por el Campeonato de Kickboxing de Peso Mosca de ONE
Rodtang está programado para enfrentar a Superlek Kiatmuu9 por el Campeonato Mundial de Kickboxing de Peso Mosca de ONE el 24 de marzo de 2023, en ONE Fight Night 8.

Rodtang está programado hacer la quinta defensa de su título de Muay Thai de peso mosca de ONE contra Edgar Tabares el 5 de mayo de 2023, en ONE Fight Night 10.

Campeonatos y logros

 ONE Championship
 Campeonato Mundial de Muay Thai de Peso Mosca de ONE (Una vez; actual)
 Cuatro defensas titulares exitosas
Actuación de la Noche (Una vez) vs. Jacob Smith
 Pelea del año 2021 de ONE Super Series
 Mayor cantidad de victorias por decisión en ONE Championship (9)
 Racha más larga de victorias en ONE Championship (13)
 Rajadamnern Stadium
Pelea del año 2019 Rajadamnern Stadium (vs Saeksan Or. Kwanmuang)
Pelea del año 2018 Rajadamnern Stadium (vs Chorfah Tor.Sangtiennoi)
Omnoi Stadium
Campeón de 130 lbs de Omnoi Stadium 2017
MAX Muay Thai
Campeón de Max Muay Thai en 125 lbs

Récord de Muay Thai y Kickboxing

Récord en peleas de reglas mixtas

Véase también

 Lista de actuales peleadores de ONE

Referencias

redpajama_set_name: RedPajamaWikipedia


text:
La calle de Sánchez Toca es una vía pública de la ciudad española de San Sebastián.

Descripción

La calle nace de la de Hondarribia y llega hasta la de Urbieta, con cruce a medio camino con la de los Reyes Católicos. Desde 1902, y aunque con diferentes variantes del mismo título, honra a Melchor Sánchez de Toca y Sáenz de Lobera (1806-1880), médico y escritor natural de la localidad guipuzcoana de Vergara, miembro durante cuarenta y tres años de la Real Academia de Medicina, que llegó a dirigir. La vía aparece descrita en Las calles de San Sebastián (1916) de Serapio Múgica Zufiria con las siguientes palabras:

Véase también
Anexo:Calles de San Sebastián

Notas

Referencias

Bibliografía

Enlaces externos
Mapa de la calle en la Infraestructura de Datos Espaciales de Gipuzkoa

Calles de San Sebastián


The firm is ranked in the third tier of eprivateclient Top Law Firms 2017. The list recognises UK law firms which are providing high-quality private client services to high net worth individuals based domestically and internationally.
Mayer Brown banking and finance co-head Dominic Griffiths is a partner in the firm's London office.
'Brexit'. A word that only entered our vocabulary recently, but one that sets families, friends and colleagues into fits of political wrangling, accompanied by hysterical warnings of economic Armageddon or (depending on your persuasion) a new dawn of political sovereignty, our very own 'Independence Day'.
The majority of the London legal community is reported to have voted Remain, with a brave few lifting their heads above the parapet to declare Brexit leanings, risking public vilification and accusations of rabid bigotry and xenophobia.
As someone who is genuinely sympathetic to arguments on both sides of the fence, I decided recently to institute an old fashioned etiquette in the Griffiths household, of banning the discussion of politics at the dining table. At least European politics.
In an age of not so much fake news but exaggerated and inadvertently incorrect reporting (some friends were recently led to believe by sections of their media that Theresa May's invocation of Article 50 this week would lead to an immediate travel ban on EU citizens travelling to the UK) it is difficult to have a rational discussion on the future of the EU, or the UK economy.
The narcissistic preening of leading Brexiteer and Remain politicians, together with our tendency these days to stream our news through selective media, bifurcates the debate in a manner that leaves little room for compromise or agreement.
So, on the eve of triggering the irreversible exit from the institution we've been a member of for more than 40 years, what is the sentiment of the City lawyer? There is worry, of course. There is bound to be uncertainty in such a negative and noisy political environment, a furore which shows no signs of abating during the no doubt fraught period of negotiation for exit.
Notwithstanding some positive economic signs, we face the prospect of a less than beneficial trade deal and a lack of a passporting regime or equivalency that freely enables our financial institution and insurance clients to conduct business as usual on the Continent.
We have however had some time to think through these consequences and law firms with international clients and offices beyond Europe should be looking towards the fast rising economic growth in Asia, Africa as well as the Middle East.
In fact much of the deal-doing of businesses from these regions occurs in London, as any casual visit to the restaurants and hotels of Mayfair or Knightsbridge these days will attest.
One Italian CEO client recently told me he sees London as his true business home – a place he can see counterparts from China, India, Qatar, South Africa. A place to meet and commune with the world of commerce and industry and get deals done efficiently. He does not see that changing dramatically post Brexit. Prospects for the use of English law and the English courts to settle international disputes continue to be positive, with our long tradition for transparency, fairness and certainty in the application of those laws and in the judgments of our courts being the best PR we could hope for.
Closer to home, a number of our clients have already made their Brexit plans, or have at least advanced a strategy. These include the opening of regulated entities and offices in Amsterdam, Paris, Frankfurt or Luxembourg. Very few appear to be contemplating move of headquarters or transfer of an undue proportion of employees, although views may change as the process unravels, particularly in the extremely unlikely event the UK decides to restrict the movement of City employees of EU origin, a move that really would spell disaster for our financial services industry.
Yes, there is uncertainty and it is not easy to predict the impact on our clients and transactions, but the year has started with more activity in the corporate sector and there are signals that foreign investment in the UK is picking up. We need to adapt to change and develop our practices to meet the needs of a fast changing world. We lawyers are a conservative lot, but it's time to get with the new agenda.
As for the politicians? We have EU negotiators who show signs of caring more for the preservation intact of the institution they love so dearly above the national economic interests of their home nations and our domestic political parties in opposition setting strict criteria for supporting a deal which appear almost impossible to achieve. Interesting times ahead.
Read more from The Lawyer' Brexit experts here.


text:
Hanns Martin Schleyer (1915–1977) was an influential German manager, employer, and industry representative.

Schleyer may also refer to:

 Waltrude Schleyer, (1916-2008), widow of Hanns Martin Schleyer
 Johann Martin Schleyer (1831–1912), Catholic priest who invented the constructed language Volapük
 Paul von Ragué Schleyer (1930–2014), American chemist


Yesterday, we just released the news of the temporary closure of Kunzhou. This afternoon, when the Visa Commissioner submitted the 188A application for South Australia to his clients, he found that he could not submit it the application successfully. At first, he thought it was a network problem. After many attempts, he still could not succeed. Xintong's Australian Visa Team was alert immediately. Is South Australia closed?
Later confirmed: South Australia 188A temporarily closed the application channel due to the excessive number of applicants!
This is a bolt from the blue for our visa team. You know, there are still a large number of customers who have visited and queued up for submission. Once closed, it will affect the original planning of many families.
In a hurry, we urgently submitted the 132 South Australia project. At the beginning, it was just as unsuccessful as the 188A project. Everyone was as anxious as ants in a pan.
According to industry news, Australia's quota will be particularly tight this year, coupled with the general election, the Federation may introduce more stringent commercial immigration policy. Among them, the most advantageous step is to take the 132 project of permanent residence green card. In the future, it is very likely to become a temporary green card first, and then the form of permanent residence.
However, we did not receive the news of the closure of South Australia 132. The "one-track" visa Commissioner still persisted in submitting the visa. Finally, after many failures, lucky customers succeeded! At the same time, the consulting team urgently contacted the customers waiting for submission to inform them of the urgent situation, and suggested that the quota should be locked up as soon as possible.
Finally, through our persistent efforts to help a group of customers successfully submit!
As we grabbed the quota for South Australia's 132 projects, we were informed that Victoria (Melbourne) had chosen to temporarily close the application due to the shortage of the quota, and the reopening time had not yet been determined.
The applicant lost another state that could be submitted. This means that new states (Sydney), Kunzhou and Victoria have closed their immigration application channels. South Australia 188A project has been temporarily closed, with only a small quota of 132 in South Australia, and West Australia may be the target of competition.
And we also know from immigration officers that even in Western Australia, there has been a quota problem, and the closure is sooner or later.
Many people wonder why Australian immigration quotas have become so tight in recent two years.
From the perspective of immigration policies of major mainstream countries in the world, Australia's attractiveness is determined by its relatively short processing cycle, relatively small amount of investment, short investment cycle and high green card security. In addition, Australia's economic and social stability, superior environment and quality of education have also become the preferred country for many immigrants.
Look at the immigration situation in these big countries: the scheduling problem of EB-5 investment immigrants in the United States is extremely scarce, and the investment quota in Canada is rising. Take Quebec province of Maple Leaf Card as an example, this year, the quota has been reduced from 1330 to 1235, while the demand for household assets has risen from 1.2 million to 2 million Canadian dollars, and the one-time payment has risen from 220,000 to 350,000 Canadian dollars. Even so, the quota is opened. The door is the rhythm of second light.
New Zealand's investment in the second category has doubled from 1.5 million to NZ 3 million; Hong Kong's investment immigrants have already closed in 2015; the threshold for Britain, Singapore and other countries is too high to climb. All this has forced immigrant applicants to rush to Australia, where they are "applying for depressions".
On the one hand, migrant countries around the world "chase and intercept", on the other hand, from the domestic point of view, whether from children's education, global asset allocation or the pursuit of a better living environment, the demand for migrants is growing geometrically every year.
According to the 2007 White Paper on Investment Immigration published by Hurun Research Institute, 62% of high net worth people choose to send their children abroad before their children go to high school, which also shows that the trend of low-age immigration of children of high-end groups in China is becoming more and more obvious.
To sum up, the demand for immigrants is booming, while the door of other big countries is half closed, only Australia is contested. In addition, in 2019, Australia's general election year, also known as the year of great coup in the industry, for immigrants with clear objectives in Australia, it is a very short-lived moment. Earlier seizure of quotas will directly determine the future development of families and children.
For many applicants who are hesitant to return from the investigation, today's thrill has shown that immigrants to Australia must not wait until the coup raises the application threshold and find that they can not meet the conditions before regretting!


Meet AIDO: a smart home robot with microphones, voice recognition, obstacle avoidance, object/face detection, and a projector that lets you keep an eye on your home and learn a few things. The robot can monitor your home and play educational videos.
The robot can be controlled using an iOS or Android device. It offers social media integration. Thanks to its SDK, developers can come up with new apps for it. You can find out more about this project on Indiegogo.


Sargeant Carpets is an independent family business supplying and installing floor coverings since 1986. Since then we have built a reputation on quality, reliability with a professional personal service. Our vast knowledge and experience gained over the last 30 years of trading is unrivalled locally.
To provide all our customers with the highest level of service and quality of workmanship, we will assist you with the correct product selection then install your chosen flooring perfectly.
Over the years we have built great relationships with our suppliers, we deal directly with all leading flooring manufacturers along with the best wholesalers this means we can get the product you want when you want it and at the right price.
We have provided flooring solutions for a huge number of customers including private homeowners, letting agents, councils and private developers, the National Trust and even the NHS. With our keen focus on customer care, whether you are simply looking to carpet a small room in your house or put down a high performance solution for your suite of offices, or a full quote for a new development, we will provide the same high level of service and attention to detail every time.
© 2019 Sargeant Carpets. All Rights Reserved.


text:
Can you take CBD oil and drive?
Last updated August 20-2020 Published August 18-2020
Today, most people are familiar with CBD. Even if your friends haven't mentioned it, you've probably seen some in a health food store or noticed a CBD oil billboard on the road. Some people, though, are still confused about what it is and why it's used, only knowing its association with cannabis. For those uncomfortable with marijuana, CBD oil can raise red flags, particularly when it comes to driving. Is it safe to take CBD oil and drive? Is it legal? Although CBD is linked to Cannabis sativa, as we'll discuss, it's quite different from THC, and not at all dangerous.
Let's backtrack a little, though. CBD, known scientifically as cannabidiol, is one of the 113 identified cannabinoid compounds found in cannabis. Second to THC, CBD is the most abundant cannabinoid. In hemp and high-CBD cannabis strains, though, it's the most dominant. Accordingly, since being discovered in 1940, it's been the subject of somewhat extensive scientific and clinical research. Through that research, scientists have learned some key similarities and differences between CBD and other cannabinoids.
IS CBD DIFFERENT FROM THC?
One of the main goals of early research was understanding the relationship between CBD and THC. Although both cannabinoids derive from the same base cannabinoid acid, they act quite differently. CBD, like THC and CBC (another cannabinoid), starts out as geranyl pyrophosphate, which interacts with olivetolic acid to become CBGA. Then, depending on the enzyme that interacts with it, CBGA can become THCA, CBDA, or CBCA. CBDA, upon being heated or exposed to UV light (decarboxylated), then becomes CBD. THC, however, results from THCA's decarboxylation.
The differences continue when we observe how each cannabinoid interacts with the brain. THC, unlike CBD, binds directly with cannabinoid receptors (predominantly CB1 receptors) to exert its psychoactive effects. CBD, on the other hand, stimulates the endocannabinoid system indirectly and triggers it to produce beneficial endocannabinoids—cannabinoids our body produces naturally. In this way, rather than feeling the effects of CBD itself, we're feeling the effects of our own chemical output.
HOW DOES CBD MAKE YOU FEEL?
The main difference between THC and CBD is how they make us feel. THC has a psychoactive effect that makes us feel euphoric, relaxed, giggly, unfocused, and sometimes sluggish. What you feel, of course, is dependent on your own body and situation, but those are some of the most common effects.
CBD, however, has no psychoactive effect on the user. People who take it might report a soothing sensation, but they'll never feel any sort of "high". Side effects like dizziness and fatigue can occur at high doses, but these are rare given the required intake.
WILL FULL-SPECTRUM CBD OIL AFFECT DRIVING?
So, will a full-spectrum CBD oil, or any CBD for that matter, affect your driving? Well, unless it makes you especially tired or sick, you should have no trouble driving after taking CBD oil. This, of course, is provided that the CBD oil producer is controlling the THC content. If produced correctly, there should be less than 0.2% THC in any given CBD product. This deems it legal to consume, and the negligible presence of THC isn't strong enough to induce any kind of high.
The industry is still young, though, so regulation is still a challenge. For that reason, it's very important to source independently tested and reviewed CBD oil from producers who can back up all their claims.
CBD IS WELL TOLERATED WITH A GOOD SAFETY PROFILE
Wrapping things up, if you find a quality-tested CBD product and take a regular dose, you should be more than fine to operate a vehicle. Besides the potential side effects we mentioned earlier, CBD has a thoroughly verified safety profile. The World Health Organisation has deemed it safe for consumption, and studies have found no major adverse effects, although drug interactions are possible. As long as you know CBD oil doesn't affect your energy level or health, you can safely drive.
Weed 'N Whisky Sour recipe
Documentary about Lebanon's hashish kingpin
Mar 7-2017


text:
Alexandria Ocasio-Cortez says she had a 'close encounter' during the Capitol riot and 'thought I was going to die'
Bruce Springsteen, John Legend, and Foo Fighters set for Biden inauguration special
impeachment round 2
Rep. Alexandria Ocasio-Cortez (D-N.Y.) is speaking out about her "traumatizing" experience at the Capitol building during last week's deadly pro-Trump riot, revealing a "very close encounter" made her fear for her life.
The New York lawmaker spoke on Instagram about what she described as a "traumatizing week for so many people" after a mob of President Trump's supporters stormed the Capitol building in a riot that left five people dead. She referenced a "close encounter" she had during the riot, one she said she couldn't provide further details on for security reasons.
"I had a pretty traumatizing event happen to me," she said. "And I do not know if I can even disclose the full details of that event due to security concerns, but I can tell you that I had a very close encounter where I thought I was going to die. ... I did not know if I was going to make it to the end of that day alive. And not just in a general sense, but also in a very, very specific sense."
Ocasio-Cortez told viewers that it "is not an exaggeration to say that many, many members of the House were nearly assassinated" during the riot, and lawmakers were "very lucky that things happened within certain minutes" so they weren't harmed.
"But many of us nearly and narrowly escaped death," Ocasio-Cortez added.
She also described having feared, after being taken to a secure location with other lawmakers, that certain "white supremacist members of Congress" would "disclose my location" and "create opportunities to allow me to be hurt" or "kidnaped." Brendan Morrow
"I had a very close encounter where I thought I was going to die." @AOC says she feared for her life as a mob looted the Capitol in Washington DC.
Read more on this story here: https://t.co/67A9hRXauR pic.twitter.com/cZvZZEWnRw
— Sky News (@SkyNews) January 13, 2021
Jemal Countess/Getty Images
President-elect Joe Biden has recruited a few more stars for his primetime inauguration TV special — including The Boss.
Bruce Springsteen, John Legend, and Foo Fighters will perform at a primetime TV special for Biden's inauguration next week, The New York Times reported on Friday. Additionally, Eva Longoria and Kerry Washington have been tapped for roles in the special after both actresses participated in the virtual Democratic National Convention last year.
Biden's inaugural committee previously announced that this primetime TV special called "Celebrating America" would be held on the night of his swearing-in and hosted by Tom Hanks. Officials say it will "showcase the American people's resilience, heroism and unified commitment to coming together as a nation to heal and rebuild" amid the COVID-19 pandemic, per the Times. Justin Timberlake, Jon Bon Jovi, and Demi Lovato are also scheduled to perform, and Biden and Vice President-elect Kamala Harris will both deliver remarks.
Traditional inauguration festivities have been dramatically scaled back due to the pandemic, and Americans have been urged to watch Biden officially become the next president from home. Earlier in the day on Jan. 20, Lady Gaga will sing the national anthem at Biden's swearing-in ceremony, and Jennifer Lopez is also set for a performance. Brendan Morrow


text:
Posted on November 6, 2018 by staff
Locations revealed for five 'life-saving' AI centres
Government backs opening of five new centres which will use AI medical advances to diagnose diseases at an earlier stage and improve patient outcome
Mo Aldalou	 7:33am 6th Nov 2018
The centres will leverage AI medical advances to improve patient outcomes
The government has today revealed the location of five new medical centres that could save lives by using radical advances in AI medical technologies.
The 'centres of excellence' will be based in Leeds, Oxford, Coventry, Glasgow and London but will each have partners across "many parts of the UK".
They will bring together doctors, businesses and academics to develop products using advances in digital technology to improve early diagnosis of disease, including cancer by detecting abnormalities.
It is hoped that the centres will develop more intelligent analysis of medical imaging, which will lead to better clinical decisions for patients and free up more staff time for direct patient care in the NHS.
"The innovation at these new centres will help diagnose disease earlier to give people more options when it comes to their treatment, and make reporting more efficient, freeing up time for our much-admired NHS staff time to spend on direct patient care," said business secretary Greg Clark.
The new centres will be funded through the government's Industrial Strategy Challenge Fund and will be spearheaded by medical giants including GE Healthcare, Siemens, Philips, Leica, Canon and Roche Diagnostics.
They are expected to be up and running during 2019.
"The centres announced today bring together the teams that will develop artificial intelligence tools that can analyse medical images varying from x-rays to microscopic sections from tissue biopsies," added Professor Sir Mark Walport, chief executive of UKRI.
"Artificial intelligence has the potential to revolutionise the speed and accuracy of medical diagnosis."
Health secretary Matt Hancock said artificial intelligence will play "a crucial role" in the future of the NHS.
"As part of our long-term plan, we will transform the NHS into an ecosystem of enterprise and innovation that allows technology to flourish and evolve," he added.
The centres are: London Medical Imaging and Artificial Intelligence Centre for Value-based Healthcare; Glasgow's I-CAIRD (Industrial Centre for AI Research in Digital Diagnostics); NCIMI (National Consortium of Intelligent Medical Imaging) in Oxford; The Northern Pathology Imaging Collaborative (NPIC) located in Leeds; and the Pathology image data Lake for Analytics, Knowledge and Education (PathLAKE) in Coventry.


Several of us, when we were younger, tried so hard to fit in. So we tried on different personas, said things and acted in ways that weren't really authentic to who we were. It's all part of the development process.
Isn't it wonderful to get to a stage of life where the important thing is to be who we really are? We don't have to be something or someone we're not. At last, we can be comfortable in our own skin. Somewhere I've heard the saying, "I'm not trying to be something I'm not. I'm trying to be everything I am." Yes!
That said, it doesn't mean we can be rude or offensive and simply say, "Well, sorry, this is who I am. You'll just have to get used to it." Trying to be everything we are means tilting more to our higher self. That self is there, inside.
These days, that can be more difficult than it should be—since it appears, right now at least, that many of the voices we hear appeal to our baser selves—our selfish, greedy, uncompassionate selves. It's really all about which part of our self we nurture and feed.
Be conscious of your choices today. Which self is getting fed?
It's so easy to get caught up in the quotidian and mundane aspects of life, isn't it? Or worse even than the mundane and common parts of life are the negative and toxic pieces—hearing the offensive insults hurled by one politician to another, watching violent and graphic movies or TV shows, reading about yet another mass shooting or terrorist attack.
So what are you doing to counteract all the negativity or even the boring and commonplace?
Pablo Picasso famously said, "Art washes away from the soul the dust of everyday life."
I like that. What do you think? And, of course, art encompasses many things from music to paintings to photography to dance to theater to beautiful written and spoken words and more. Find something artful and lose yourself in it for a while. See whether that doesn't wash away the dust—or even clear away the toxins. Appreciate the beauty. Savor it. Let go of the mundane and the toxic.
Do you have time enough?
Have you heard of the terms "time famine," "time poor," "time affluence" or "hurry sickness"?
All of these terms have been coined to describe the phenomenon we in the West, at least, seem to experience. "Time famine" refers to the constant feeling of being so rushed and busy all the time. We're starving; we never have enough time. In fact, in our society, we almost wear that as a badge of honor. "See how busy (and important) I am!"
"Time poor" is the same thing as "time famine." You simply feel you don't have enough time to get everything done.
"Time affluence" is the feeling of having enough time—or perhaps even more time than you need. That's pretty rare, isn't it? Have you even felt that in the last year or years?
"Hurry sickness" illustrates how most of us are caught up in the rush. We may have time-saving devices, but we're rushing here and there, never feeling as though we can slow down and just "be." We can never just sit still and relax.
Are you resonating with any of these terms? Would you like to change how this shows up in your life? If you feel "time poor" or suffer from a "time famine," what can you do to change that? You are the only one who can make choices to do so. What can you let go so that you'll have enough time for what's important to you?
Whatever you decide, make choices today that support the lifestyle you want. If it means better boundaries or learning to say "No" to extra activities, work on that. Work on finding that Still Point inside where you can simply "be." If you wish to discuss any of this, I invite you to contact me for a complimentary coaching session.
During my years as a magazine journalist when I took global trips to remote parts of the world to gather stories, I had to be both the writer and the photographer. I conducted the interviews, wrote up the notes and also had to stop and take the photos. Sometimes it felt as though I saw way too much through a camera lens rather than with the naked eye. I was so busy with my notebook and my camera that I couldn't even soak up the amazing people, places and experiences—places to which I'll likely never return.
So when I went on my own travels, I sometimes took very few or no photos. I just wanted to experience the trip. I wanted to do more than just document the event or experience.
I've heard it said that today, with our cell phones functioning as cameras and always with us, we have become so obsessive about documenting our lives (and then posting them on one or more social media sites) that we don't truly even have the experiences. It's as though we aren't even present for our lives. We're so busy looking in from the outside and then sharing that snapshot with others.
Does that resonate with you? I confess I've done plenty of that myself. I want to become more aware of that, however, and try to be more present to my life and to those who people it. I tell myself: Be awake and aware, Sonia. Be present to your life.
A book I was reading for inspiration threw out a good question this week to ponder. It seems especially relevant now after yet another terrorist attack in Europe and with daily reports of murders, bombings and refugees fleeing war-torn countries trying to find safety for themselves and their families. And that's not even to mention all the mass murders we have in this country on a regular basis.
Then we have the books and TV shows in which violence and murder play a central role. And in U.S. TV shows, at least, nothing is left to the imagination. Everything is pretty graphic. In many ways, it doesn't seem a far cry from the days in which gladiators fought to the death or lions were set loose on prisoners as a stadium of people watched.
The question is this: What does it take to choose life in a world that so often chooses violence and death? In reminds me of an Old Testament verse found in Deuteronomy 30: "...I have set before you life and death, blessings and curses. Choose life...." (verse 19).
What would it mean to choose life? I suspect it's not a once-and-done decision, right? We may have to make that choice over and over and over. And some days, perhaps we don't make that choice. And how does that feel?
I'm still thinking about the question. What would you answer?
Yesterday I mentioned negative posts on Facebook. Goodness knows, there are plenty of those—particularly these days with a race to the White House and the great political divide that seems to separate us as a people.
"A manifesto for a simple life: Eat less, move more. Buy less, make more. Stress less, laugh more. Feel blessed, love more. Find a quiet spot every day and BREATHE."
There really isn't any need to say more. Those thoughts stand on their own. So I invite you to reflect on them today. And don't forget to breathe!
What's cluttering your mind and heart?
Spring isn't just a time to declutter and clean houses. It's also a good time to think about those things that clutter our minds and hearts—and get rid of what needs to go.
Yesterday I made a decision that has lightened my load today. It was such a simple decision—and only required a couple keystrokes on my computer.
Because what goes into our minds can clutter up our inner life and mess with our emotions, I find it essential to pay attention to what's inspiring, what's toxic, what will help me stay positive and what drags me down into negativity. One of my Facebook "friends" had been posting several negative comments lately, some bordering on quite offensive. But yesterday he really crossed what's a line for me. The comment went around and around inside my head, really bothering me until I put up my own comment on his page saying that I didn't find it funny to joke about brutality, murder and violence directed toward protesters at political rallies.
Still later, as I thought about how such comments and interactions clutter my mind, heart and soul with negativity, I decided to "unfriend" this person on Facebook. My action hurt no one. But it freed up space inside me to focus instead on what's good in the world. Mind you, we can't hide from what's not good (here I'm thinking of the heartbreaking news yesterday of terrorism in Brussels). But we can shut out some of the negatives. Turn off the violent TV shows. Unfriend Facebook users who cross lines that we have a right to keep in place. And there are so many other ways to declutter our insides, too.
Ask yourself: "What can I change or let go so I can focus more on that which inspires and uplifts me?" Make more room for peace in your heart today.
Recently I heard someone talk about an experience to which they'd looked forward for a long time. And now the experience was history already. And that person felt sad about it being over.
Anticipation is at least half the fun, isn't it? And all too soon, what we anticipated is over and done. It's common to feel some sadness about that. One of the lessons in that for me is to really savor that time of anticipation. Enjoy every minute of the dreaming and the planning.
In fact, enjoy every minute of the experience, too. And then savor the memories afterward. It's all great.
This brings to mind a quote from Dr. Seuss, "Don't cry because it's over; smile because it happened."
To practice contentment these days can feel like a real uphill battle. Marketers and advertisers urge us to want—and to buy—more and more and more. And does that really lead us to happiness? Of course not.
I like what the Dalai Lama says about this: "When you are discontent, you always want more, more, more. Your desire can never be satisfied. But when you practice contentment, you can say to yourself, 'Oh, yes—I already have everything that I really need.'"
What would it look like for you to "practice contentment"? How much is enough for you?
It's an individual choice. I don't get to tell you how much is enough. You don't get to tell me. But it's definitely worth asking ourselves those questions—and then making choices about how much is enough.
We're all surrounded by vitriol these days, it seems. Angry tirades against one or more of the political candidates. Insults traded by the candidates themselves. Drivers cutting each other off and making nasty hand gestures on the roads we travel. Water-cooler conversations in the workplace that are less than polite and supportive. Angry exchanges with family members and friends.
Go forth into the world in peace. Encourage one another and support one another.
May you have enough pain to keep you sensitive and enough health to keep you going.
May you have enough failure to keep you humble and enough success to keep you eager.
May you have enough doubt to keep you inquisitive and enough faith to keep you steady.
Go in peace. Live with freedom.
Here's another: May you be joyful. May your happiness increase. May you not be separated from great happiness. May your good fortune and the causes for your joy and happiness increase.
You can come up with your own blessings. Offering them will change you. Guaranteed.
Have you taken time to play lately? I mean really play? I don't just mean an evening out at a movie or time working on your hobbies. I mean play. I mean something your Inner Child would love to do.
If you haven't already done so, consider bringing back one of those into your life. Or buy some Play-Doh and have fun with it. Working that dough with your hands can be so therapeutic! If building blocks or Legos are more your thing, buy yourself a set—and go to. Or maybe you like puzzles?
Feel foolish doing those things? What's the worst that can happen to you if you engage in some fun and play? Someone might laugh at you? Do you care? Perhaps the benefits will be worth it. And anyway, a worthy goal is to get to the point where we follow our own heart and worry far less about "what other people think." Go ahead—play a little.
It's no secret to any of us, I'm sure, that there's a lot of fear "out there" these days. We can hear it in the political rhetoric and see it in protests and interactions from the local to the national and international level. No doubt we can see it in our own decision-making and that of others, too.
And it's no wonder. Truly, there's plenty about which to be fearful. The economy still has many people scared as they continue to feel the effects of what's been called a recession—and many people fear still more recessions ahead. Then there's the threat of terrorism, that from afar as well as home-grown. And family break-downs, job losses, illnesses and so much more keep people awake at night, too.
It's really understandable. The problem is, however, that when we're all tied in knots with fear, we aren't at our creative best. We can't come up with our best solutions for how to move forward. In fact, some people can't even really move forward at all because fear can be immobilizing. In addition, it's really an awful way to live, isn't it?
Let's see whether, without losing our grip on reality, we can set fear aside and try to live in hope and gratitude instead. Let's try to start each day in gratitude for all the gifts and blessings we do have. Let's look for the hope rather than focusing on the negatives that induce fear. Ready to try it?
There is such a power in presence, isn't there? I'm sure we've all gone through periods of loneliness, great fear or sadness—and all we needed was someone just to be there for us and with us. Most likely, that other person didn't have the power to change our circumstances. But it made an enormous difference to us to just have that person's presence.
It's good to remember that when others we know and love are going through tough times and challenging situations. We don't have to have answers. We probably can't fix the situation. We don't necessarily need words of wisdom. But we can show up! We can sit beside them. We can listen. We can hug. We can hold their hands. We can give them a backrub or foot massage. We can simply be.
I remember when I got the phone call saying my father (after 11 years of fighting cancer and it had now gone to his brain) had suffered a seizure and was being put into hospice. While my youngest son was on his way driving to my home so we could leave for Iowa to be with Dad, my dear friends came over to sit with me. They held me as I cried. They listened to my fears—and to my stories about Dad. They stayed with me until my son arrived. I will never forget that. The power of presence. It didn't change the situation. It changed me. I felt more able to face whatever was ahead. I felt surrounded and held by love.
Forgiveness is such a huge, and often misunderstood, topic, isn't it? Seldom are we really taught just how to forgive—even though most of us grow up hearing that we need to do so.
"One therapist suggests four stages of forgiveness: to forgo (leave it alone), to forbear (to abstain from punishing), to forget (to avert from memory, to refuse to dwell), to forgive (to abandon the debt). She stresses that our part in the process is to refuse to dwell, to punish, to recollect. We stop bringing up the wrong again and again, and make a conscious decision not to hold resentment and retaliate."
What that therapist had also said is that we need only "begin the process" and be open to it, praying for the "grace of forgiveness" and the rest would come.
So often, however, we like to tell the old, old stories, don't we? We like to hang onto the resentments and repeat the tales of how wronged we were. So perhaps that therapist is right: If we but begin the process and "refuse to dwell," the rest may be easier. If we begin the process and truly open our hearts, forgiveness can come to dwell within us rather than the old tales dwelling there. It's worth a try, isn't it? The act of forgiving sets us free—we are the ones who benefit! Let go, let go, let go.
Our Western culture seems uncomfortable with the grieving process. We praise and admire people for holding up, for staying strong, for re-engaging life so quickly after a loss. It's as though we can't move on quickly enough.
Since I've spent a good deal of my life as a strong, leap-tall-buildings-single-bound person, I understand why grieving can seem like weakness and too much vulnerability. However, it's not healthy to be strong all the time. It's actually a sign of strength to be vulnerable—to acknowledge loss and spend time grieving it. By being open and real about those losses we suffer and spending time grieving them, we allow ourselves to be cleaned out and to heal. And we can move on far more quickly.
I've heard this comment, "You can't heal what you don't feel;" and it makes complete sense to me. If we have no sense of the impact of a loss we suffer, and we can't even feel that loss, how would we hope to heal from it?
When I say this to you, I'm saying it to myself, too. I really need to hear this: Real strength means being whole—experiencing and expressing both joy and sadness.
I so enjoy the writings and wisdom of Rachel Naomi Remen, a physician, visionary and warm human being. I was first exposed to her warmth and wisdom in her book My Grandfather's Blessings: Stories of Strength, Refuge and Belonging. Now I am reading her Kitchen Table Wisdom: Stories That Heal. Both are equally rich with stories and wisdom.
In Kitchen Table Wisdom, Remen writes: "We usually look outside of ourselves for heroes and teachers. It has not occurred to most people that they may already be the role model they seek. ...we are all more than we know. ...Integrity rarely means that we need to add something to ourselves: it is more an undoing than a doing, a freeing ourselves from beliefs we have about who we are and ways we have been persuaded to 'fix' ourselves to know who we genuinely are."
Isn't that fascinating? Perhaps we do sell ourselves short. Perhaps we really are more than we imagined. And definitely I do believe that "it is more an undoing than a doing." We spent so many years adding things into our container of "This is who I am." And then in midlife and beyond, we realize that many of those things are not really who we are. They're not natural for us. Perhaps for someone else. But not for us. And so we begin to undo those things that aren't really "us."
That seems to be a central task of the last half of life, doesn't it? At that stage, we know who we really are. We become comfortable in our own skin. We can be the role model we seek!
I know I write a lot about the importance of personal boundaries. But I've dealt with it in my life, and I have so many clients who have, too. In addition to that, I hear so many women (and men, too) talking about how "used" they feel—as though people are really taking advantage of their good-hearted and generous nature.
Does any of that describe you? Do you say "Yes" more often than you'd like—and perhaps end up resentful later?
If so, it might be a good idea to work on developing, and keeping, personal boundaries. Those are like little fences that keep you safe from those attitudes, requests, behaviors and words that are harmful to you. They can help you learn to say "No" when you need to do so. Boundaries are not punitive. And you are the one who gets to decide what yours are. You are the only one who knows where to draw the line in terms of how others treat you. Is someone "guilting" you into always doing what they want? You get to say "No" to that, if that's in your best interest. And, of course, there are ways of saying "No" to words, behaviors and requests that are kind rather than hurtful.
When you set boundaries, you get to also say what the consequences are for breaking them. For example, I might tell my friends that I don't like raised voices. Then I can tell them that if they do yell at me, I will leave the room. If they persist in their behavior, I may eventually have to leave the relationship. All those things are within my right to decide—and to do.
If this is something you'd like to discuss, I invite you to contact me for a complimentary strategy session.
I've heard it said that what it takes us to survive is far different from what it takes to live a healthy and happy life.
Mind you, survival is not to be taken lightly. It's a huge accomplishment. Life can contain so many hurtful and life-altering circumstances. It can take everything we have to survive some of them. But once we have survived the difficult or painful thing, we need to refocus our life to see what's needed to live in a truly life-giving and healthy way.
Do you see a difference? For example, if you've faced cancer and had to endure surgeries, radiation and/or chemotherapy, you've no doubt had to pull away from all your commitments and perhaps even some of your friendships in order to conserve your energy. You're pouring all your energy into healing.
Once you have healed and come out on the other side, you may be more selective about those activities and friendships you re-engage; but you will definitely not want to isolate. You will need the support and love of friendship groups. You needed them during your survival time, but I'm guessing you didn't have as much energy to give to them then. Now you can refocus and re-engage in a new way. The choices are yours.
Rumi, 13th century Persian poet and Sufi mystic, once said, "The wound is the place where the Light enters you."
Think about that a bit. Each one of us carries scars from wounds that we've suffered through our years of life. How do you see your scars? As signs of strength? Signs that you've conquered the pain and learned lessons? Signs that you grew stronger and moved forward because of that pain? Or do you see your scars as ongoing pain that still drags you down? Do you still focus on the hurt and pain?
It's a choice. But I do encourage you to see your scars as a path to healing and strength. At each of those points, the Light is able to get in. As my healing touch practitioner told me once, "Don't just let your heart be broken. Let it be broken open." I see a heart broken open as one that's able to let healing in. It's also able to let in more love and let love out more easily, too. And I see each of my wounds and scars as signs of those things in my life that have made me stronger.
Our suffering has the possibility of making us stronger. We can be survivors—even thrivers. Think about it—how do you see your wounds?
Did you know that doing good deeds for others is good for your health? It's just plain good for many reasons, isn't it? We always feel better about ourselves when we can be of service to others and help someone in need.
A 2013 study showed that volunteering actually has a significant impact on blood pressure, making volunteers less likely to develop hypertension. Research also shows a link between giving, unselfishness and a lower risk of early death.
Then there's the "helper's high" that we feel after performing a good deed—when our brains release endorphins (feel-good chemicals). What's not to like about that kind of high?
People who do good in their workplaces are far happier at work, too, according to a study from the University of Wisconsin-Madison. And the BMC Public Health journal discovered, after a review of 40 studies, that volunteering is good for mental health, too.
So if you're already doing good things, keep it up—and stay healthy. And if you're not, it's easy enough to find ways to contribute to the happiness of others. So many volunteer opportunities exist plus there's always an opportunity or two for doing random acts of kindness.
Do you live with regret for things you've said and done in the past? Has regret become a ball-and-chain for you?
Someone asked that question recently, and a handful of women responded in various ways. I've been thinking about that a lot since then. It's understandable that, as we look back on our lives, we recall some things we said or did with regret, sometimes even with shame. However, unless we use that sense of regret or shame to cull some lessons from those experiences, such emotions can weigh us down and prevent us from really moving forward freely. It can keep us stuck and weighed down. Once we draw the life lessons from such experiences, it's healthier to forgive ourselves, let go and move on.
Forgiveness and letting go are such crucial parts of a healthy life as we age. We don't want to be weighed down by old baggage. We can't change the past. We can only change how we do things going forward. And here's the other thing: All the experiences in our past, both the good and the bad ones, add up to make us who we are today. We would not be who we are and where we are without a variety of life experiences and without making mistakes and learning lessons from them.
And so I invite you to be grateful even for those things you regret—yes, I did say be grateful. For, we hope, you have learned much from those things you regret having said and done. I know I have. I've probably learned more from my mistakes than from any successes I've ever had! Forgive, let go and move on. Ah, feel that serenity settle into your heart.
The political rhetoric these days is so offensive and hateful. It's really harmful to one's well-being and peace of mind to read any of the reports or listen to any coverage of debates and the insult-hurling that takes place between debates as well. Most of these remarks and insults appeal to our basest self and are about as inspirational as a front-row seat in a gladiator ring.
Here's what I think: The rest of us have our work cut out for us. It's time to lift the rhetoric to a higher level, at least in our own small circles and wherever we call community. We most definitely do not want to be filled with the toxins that are flying around, and we don't want to be part of spreading them ourselves either. I so want to believe that we are really better than this.
So I'm throwing out a challenge—for myself as well as for you. Let's see if we can refrain from joining the snarky and offensive conversations going on these days—and see whether we can lift to a higher plane any conversations of which we're part. We can still talk politics but at a policy level. We can talk about what really matters to people, about what this country really wants to be. How do we want to be described as a people? How do we want to treat others? What should our stance in the world be? What's needed now?
Ready for the challenge? I hope those of you who know me well will call me on it when I fall into snarky rhetoric. We just may need support to do this as it feels upstream right now!
So here's a true confession for you: I'm not good at listening to my body. I want to be. I know it's important. But many times, I'll keep on pushing even when my body is tired, thinking I simply have to get my to-do list done. Sometimes, even when my body is full, I'll have just that extra small helping of the delicious dessert. I'm sure you know what I'm getting at.
One of the things I want to do this year is be better about listening to my body—when it wants sleep, when it's satisfied but not yet full, when it simply needs for me to slow down a bit, when it needs activity or exercise, etc. After years of "pushing through" no matter what, I suspect it will take me a while to learn to listen.
So yesterday my body got my attention! I awoke with an internal to-do list for the day, but it didn't take long to register that I felt a bit queasy and just off. Oh, dear, what's that about? Then it hit me like a ton of bricks: Hmmm, perhaps my body is telling me that I need a day to just "be"—to slow down and refrain from running from one task to the next activity all day long. So I did. I just rested. I even took a nap. I drank a lot of fluids and only fed my body what appealed to me, which wasn't much.
Ever have that happen? If we aren't paying attention, our bodies do have a way of getting a message across. Sometimes the message comes in the form of illness. Perhaps I'm fortunate that it was simply a day of queasiness. But I'm listening now ... and I hope I don't forget to keep listening! Are you listening to yours? Check in on your needs.


My brother, Sean, is in town right now.
He lives on the east coast, so I treasure every second I get with him.
Sean is an acupuncturist and Qi Gong instructor and, along with his wife, does private catering to clients who are looking to integrate alternative medicine with a healthy diet in order to achieve optimal health. Both Sean and his wife, Jenny, believe that food is our greatest weapon against disease.
The dishes they prepare are primarily vegetarian and incorporate a lot of raw foods, as well as legumes, whole grains, vegetables and fruits. They are sensitive to people with allergies and focus on low-glycemic, anti-inflammatory food.
Just spent a couple days making new surfaces and going prop shopping.
Yesterday was a perfect Sunday.
The sun was shining, I had a nice morning with one of my closest friends, my dog snuggled with me for an extra long time. But, mostly, it was a perfect Sunday because I learned how to make pie.
I don't mean that I read a recipe and made a pie. I mean, I learned how to MAKE PIE-- from scratch, without a recipe. And I learned how to do it from the Queen of Pie, Kate McDermott.
I cannot find the words right now to tell you how amazing Kate is, or about the awesomeness of her class, Art of the Pie. My friend, Kim, did a lovely job of summing up the experience so you should read what she wrote.
What I CAN do is show you my pie. The pie I made with my own two hands, from scratch, after learning from Kate. It was the best damn pie I have ever eaten.
Take Kate's class. You will not regret it.


Prior to joining AMI, Romero straddled the worlds of business and government. Most recently, he was a diplomatic officer for Colombia in both Switzerlandand Germany, working to improve trade relationships and increase investment. He assumed his diplomatic role with the Colombian government after several years of market consulting work. Romero's work in this area was diverse, ranging from providing CRM and project management services to Colombian firms to conducting rigorous market analysis for both IATA—a trade association of the world's largest airlines—and for Fraser Milner Casgrain, a Canadian law firm that merged with Dentons to become one of the largest law firms in the world.
As DACH Market Director for AMI, Romero will focus on developing new business within the German, Austrian and Swiss markets. "In particular, European suppliers have interesting opportunities in Latin America," he observes. "With costs rising for US products and a fear of cheap Chinese imports, rising foreign direct investment outlooks and pro-business administrations in LatAm, DACH suppliers in areas like engineering services, capital equipment, and project finance could grow their revenues nicely in LatAm," says Romero.
"Bernardo's experience in developing investment opportunities for Latin American governments and private industry consulting will allow him to help our European clients recognize new opportunities and maximize existing ventures in the region through AMI's blend of market insights and strategic analysis," explains Price.


text:
Dress code for parents? Mother turned away from Texas high school
by: NBC News
Posted: Apr 10, 2019 / 10:15 AM EDT / Updated: Apr 10, 2019 / 03:40 PM EDT
HOUSTON, Texas (NBC News) — The mother of a Texas high school student claimed she could not register her daughter for class because of her outfit.
Joselyn Lewis wore a T-shirt dress of Marilyn Monroe and a headscarf to enroll her daughter at Houston's Madison High School but said she was not allowed on the property.
Lewis said at first, she thought an administrator mistook her for a student and explained that she was a parent and registering her child.
"She went on to say that she still couldn't let me on the premises because I was not in dress code and I still didn't understand what that meant," Lewis said. "She said that my headscarf was out of dress code and my dress was too short."
Lewis said due to bullying, she un-enrolled her 15-year-old daughter from Lamar High School on Monday morning and intended to instead enroll her at Madison.
"When I went to Lamar, I had no problems, but when I got to Madison High School, they refused me access to the premises because of what I had on," Lewis said. "I mean, I didn't understand why my headscarf and my dress would conflict with me enrolling someone in school."
NBC affiliate KPRC reached out to Houston Independent School District officials to hear the district's side of the story, but hasn't heard back.
Read more: http://bit.ly/2IpNw2s
WalletHub names Tampa the best city in Florida to live


University of Wisconsin, system of higher education of the state of Wisconsin, U.S. It comprises 13 four-year institutions and 13 two-year colleges. The four-year campuses are located in Eau Claire, Green Bay, Kenosha (Parkside), La Crosse, Madison, Menomonie (Stout), Milwaukee, Oshkosh, Platteville, River Falls, Stevens Point, Superior, and Whitewater. They vary in size from the main campus in Madison (with nearly 40,000 students at the beginning of the 21st century) to the branch campus at Superior (with about 2,800 students).
The original campus of the University of Wisconsin was founded at Madison in 1848 and became a land-grant college in 1866. Women were first admitted in 1863, and it became fully coeducational in 1874.
Whatever may be the limitations which trammel inquiry elsewhere, we believe the great state University of Wisconsin should ever encourage that continual and fearless sifting and winnowing by which alone the truth can be found.
In 1971 the University of Wisconsin at Madison merged with the Wisconsin State Universities system to create the University of Wisconsin System, which thus became one of the largest state university systems in the country, with a total enrollment of more than 150,000 students at its four-year campuses. All of the system's four-year institutions grant bachelor's and master's degrees, while the main campus at Madison and the one at Milwaukee also grant doctoral degrees. The Madison campus is one of the world's great university research centres. It includes some 20 schools and colleges, including schools of veterinary medicine, social work, pharmacy, natural resources, library and information studies, law, medicine, and nursing, as well as programs in environmental and international studies.


Your dual credit grade will appear on your UCC Student Account and Transcript exactly like a class taken on campus. In many cases, your dual credit class(es) start your college GPA. Students may view their UCC transcripts online as soon as the class is graded. Students should verify that all their Dual Credit grades have been posted by looking at their UCC free unofficial transcript. If you have questions on how your credits will transfer to other colleges and universities, please check with that institution.
Click on "Academic Transcript", choose the type of transcript you wish to view and click "Submit".
From the Academic Transcript page (use above procedure), click "Request Printed Transcript"


text:
package edu.cmu.cs.stage3.alice.scenegraph.renderer.directx7renderer;

class Graphics extends edu.cmu.cs.stage3.alice.scenegraph.renderer.nativerenderer.Graphics {
    public Graphics( edu.cmu.cs.stage3.alice.scenegraph.renderer.nativerenderer.RenderTarget renderTarget ) {
        super( renderTarget );
    }
    public Graphics( edu.cmu.cs.stage3.alice.scenegraph.renderer.nativerenderer.RenderTarget renderTarget, edu.cmu.cs.stage3.alice.scenegraph.renderer.nativerenderer.TextureMapProxy textureMapProxy ) {
        super( renderTarget, textureMapProxy );
    }

    protected native void createNativeInstance( edu.cmu.cs.stage3.alice.scenegraph.renderer.nativerenderer.RenderTargetAdapter renderTargetAdapter );
    protected native void createNativeInstance( edu.cmu.cs.stage3.alice.scenegraph.renderer.nativerenderer.RenderTargetAdapter renderTargetAdapter, edu.cmu.cs.stage3.alice.scenegraph.renderer.nativerenderer.TextureMapProxy textureMapProxy );
    protected native void releaseNativeInstance();

	protected native void setFont( String family, String name, boolean isBold, boolean isItalic, int size );

	public native void translate( int x, int y );
	public native java.awt.Color getColor();
	public native void setColor( java.awt.Color c );
	public native void setPaintMode();
	public native void setXORMode( java.awt.Color c1 );
	public native void copyArea( int x, int y, int width, int height, int dx, int dy );
	public native void drawLine(int x1, int y1, int x2, int y2);
	public native void fillRect( int x, int y, int width, int height );
	public native void clearRect( int x, int y, int width, int height );
	public native void drawRoundRect( int x, int y, int width, int height, int arcWidth, int arcHeight );
	public native void fillRoundRect( int x, int y, int width, int height, int arcWidth, int arcHeight );
	public native void drawOval( int x, int y, int width, int height );
	public native void fillOval( int x, int y, int width, int height );
	public native void drawArc( int x, int y, int width, int height, int startAngle, int arcAngle );
	public native void fillArc( int x, int y, int width, int height, int startAngle, int arcAngle );
	public native void drawPolyline( int xPoints[], int yPoints[], int nPoints );
	public native void drawPolygon( int xPoints[], int yPoints[], int nPoints );
	public native void fillPolygon( int xPoints[], int yPoints[], int nPoints );
	public native void drawString( String str, int x, int y );
	public native void drawChars( char[] data, int offset, int length, int x, int y );
	public native void drawBytes( byte[] data, int offset, int length, int x, int y );
	public String toString() {
		return "edu.cmu.cs.stage3.alice.scenegraph.renderer.directx7renderer.Graphics["+hashCode()+"]";
	}
}


text:
namespace v8 {
namespace internal {

namespace {

void* AlignedAllocInternal(size_t size, size_t alignment) {
  void* ptr;
#if V8_OS_WIN
  ptr = _aligned_malloc(size, alignment);
#elif V8_LIBC_BIONIC
  // posix_memalign is not exposed in some Android versions, so we fall back to
  // memalign. See http://code.google.com/p/android/issues/detail?id=35391.
  ptr = memalign(alignment, size);
#else
  if (posix_memalign(&ptr, alignment, size)) ptr = nullptr;
#endif
  return ptr;
}

// TODO(bbudge) Simplify this once all embedders implement a page allocator.
struct InitializePageAllocator {
  static void Construct(void* page_allocator_ptr_arg) {
    auto page_allocator_ptr =
        reinterpret_cast<v8::PageAllocator**>(page_allocator_ptr_arg);
    v8::PageAllocator* page_allocator =
        V8::GetCurrentPlatform()->GetPageAllocator();
    if (page_allocator == nullptr) {
      static v8::base::PageAllocator default_allocator;
      page_allocator = &default_allocator;
    }
    *page_allocator_ptr = page_allocator;
  }
};

static base::LazyInstance<v8::PageAllocator*, InitializePageAllocator>::type
    page_allocator = LAZY_INSTANCE_INITIALIZER;

v8::PageAllocator* GetPageAllocator() { return page_allocator.Get(); }

// We will attempt allocation this many times. After each failure, we call
// OnCriticalMemoryPressure to try to free some memory.
const int kAllocationTries = 2;

}  // namespace

void* Malloced::New(size_t size) {
  void* result = AllocWithRetry(size);
  if (result == nullptr) {
    V8::FatalProcessOutOfMemory(nullptr, "Malloced operator new");
  }
  return result;
}

void Malloced::Delete(void* p) {
  free(p);
}

char* StrDup(const char* str) {
  int length = StrLength(str);
  char* result = NewArray<char>(length + 1);
  MemCopy(result, str, length);
  result[length] = '\0';
  return result;
}

char* StrNDup(const char* str, int n) {
  int length = StrLength(str);
  if (n < length) length = n;
  char* result = NewArray<char>(length + 1);
  MemCopy(result, str, length);
  result[length] = '\0';
  return result;
}

void* AllocWithRetry(size_t size) {
  void* result = nullptr;
  for (int i = 0; i < kAllocationTries; ++i) {
    result = malloc(size);
    if (result != nullptr) break;
    if (!OnCriticalMemoryPressure(size)) break;
  }
  return result;
}

void* AlignedAlloc(size_t size, size_t alignment) {
  DCHECK_LE(V8_ALIGNOF(void*), alignment);
  DCHECK(base::bits::IsPowerOfTwo(alignment));
  void* result = nullptr;
  for (int i = 0; i < kAllocationTries; ++i) {
    result = AlignedAllocInternal(size, alignment);
    if (result != nullptr) break;
    if (!OnCriticalMemoryPressure(size + alignment)) break;
  }
  if (result == nullptr) {
    V8::FatalProcessOutOfMemory(nullptr, "AlignedAlloc");
  }
  return result;
}

void AlignedFree(void *ptr) {
#if V8_OS_WIN
  _aligned_free(ptr);
#elif V8_LIBC_BIONIC
  // Using free is not correct in general, but for V8_LIBC_BIONIC it is.
  free(ptr);
#else
  free(ptr);
#endif
}

size_t AllocatePageSize() { return GetPageAllocator()->AllocatePageSize(); }

size_t CommitPageSize() { return GetPageAllocator()->CommitPageSize(); }

void SetRandomMmapSeed(int64_t seed) {
  GetPageAllocator()->SetRandomMmapSeed(seed);
}

void* GetRandomMmapAddr() { return GetPageAllocator()->GetRandomMmapAddr(); }

void* AllocatePages(void* address, size_t size, size_t alignment,
                    PageAllocator::Permission access) {
  DCHECK_EQ(address, AlignedAddress(address, alignment));
  DCHECK_EQ(0UL, size & (GetPageAllocator()->AllocatePageSize() - 1));
  void* result = nullptr;
  for (int i = 0; i < kAllocationTries; ++i) {
    result =
        GetPageAllocator()->AllocatePages(address, size, alignment, access);
    if (result != nullptr) break;
    size_t request_size = size + alignment - AllocatePageSize();
    if (!OnCriticalMemoryPressure(request_size)) break;
  }
#if defined(LEAK_SANITIZER)
  if (result != nullptr) {
    __lsan_register_root_region(result, size);
  }
#endif
  return result;
}

bool FreePages(void* address, const size_t size) {
  DCHECK_EQ(0UL, size & (GetPageAllocator()->AllocatePageSize() - 1));
  bool result = GetPageAllocator()->FreePages(address, size);
#if defined(LEAK_SANITIZER)
  if (result) {
    __lsan_unregister_root_region(address, size);
  }
#endif
  return result;
}

bool ReleasePages(void* address, size_t size, size_t new_size) {
  DCHECK_LT(new_size, size);
  bool result = GetPageAllocator()->ReleasePages(address, size, new_size);
#if defined(LEAK_SANITIZER)
  if (result) {
    __lsan_unregister_root_region(address, size);
    __lsan_register_root_region(address, new_size);
  }
#endif
  return result;
}

bool SetPermissions(void* address, size_t size,
                    PageAllocator::Permission access) {
  return GetPageAllocator()->SetPermissions(address, size, access);
}

byte* AllocatePage(void* address, size_t* allocated) {
  size_t page_size = AllocatePageSize();
  void* result =
      AllocatePages(address, page_size, page_size, PageAllocator::kReadWrite);
  if (result != nullptr) *allocated = page_size;
  return static_cast<byte*>(result);
}

bool OnCriticalMemoryPressure(size_t length) {
  // TODO(bbudge) Rework retry logic once embedders implement the more
  // informative overload.
  if (!V8::GetCurrentPlatform()->OnCriticalMemoryPressure(length)) {
    V8::GetCurrentPlatform()->OnCriticalMemoryPressure();
  }
  return true;
}

VirtualMemory::VirtualMemory() : address_(nullptr), size_(0) {}

VirtualMemory::VirtualMemory(size_t size, void* hint, size_t alignment)
    : address_(nullptr), size_(0) {
  size_t page_size = AllocatePageSize();
  size_t alloc_size = RoundUp(size, page_size);
  address_ =
      AllocatePages(hint, alloc_size, alignment, PageAllocator::kNoAccess);
  if (address_ != nullptr) {
    size_ = alloc_size;
  }
}

VirtualMemory::~VirtualMemory() {
  if (IsReserved()) {
    Free();
  }
}

void VirtualMemory::Reset() {
  address_ = nullptr;
  size_ = 0;
}

bool VirtualMemory::SetPermissions(void* address, size_t size,
                                   PageAllocator::Permission access) {
  CHECK(InVM(address, size));
  bool result = v8::internal::SetPermissions(address, size, access);
  DCHECK(result);
  USE(result);
  return result;
}

size_t VirtualMemory::Release(void* free_start) {
  DCHECK(IsReserved());
  DCHECK(IsAddressAligned(static_cast<Address>(free_start), CommitPageSize()));
  // Notice: Order is important here. The VirtualMemory object might live
  // inside the allocated region.
  const size_t free_size = size_ - (reinterpret_cast<size_t>(free_start) -
                                    reinterpret_cast<size_t>(address_));
  CHECK(InVM(free_start, free_size));
  DCHECK_LT(address_, free_start);
  DCHECK_LT(free_start, reinterpret_cast<void*>(
                            reinterpret_cast<size_t>(address_) + size_));
  CHECK(ReleasePages(address_, size_, size_ - free_size));
  size_ -= free_size;
  return free_size;
}

void VirtualMemory::Free() {
  DCHECK(IsReserved());
  // Notice: Order is important here. The VirtualMemory object might live
  // inside the allocated region.
  void* address = address_;
  size_t size = size_;
  CHECK(InVM(address, size));
  Reset();
  // FreePages expects size to be aligned to allocation granularity. Trimming
  // may leave size at only commit granularity. Align it here.
  CHECK(FreePages(address, RoundUp(size, AllocatePageSize())));
}

void VirtualMemory::TakeControl(VirtualMemory* from) {
  DCHECK(!IsReserved());
  address_ = from->address_;
  size_ = from->size_;
  from->Reset();
}

bool AllocVirtualMemory(size_t size, void* hint, VirtualMemory* result) {
  VirtualMemory vm(size, hint);
  if (vm.IsReserved()) {
    result->TakeControl(&vm);
    return true;
  }
  return false;
}

bool AlignedAllocVirtualMemory(size_t size, size_t alignment, void* hint,
                               VirtualMemory* result) {
  VirtualMemory vm(size, hint, alignment);
  if (vm.IsReserved()) {
    result->TakeControl(&vm);
    return true;
  }
  return false;
}

}  // namespace internal
}  // namespace v8


The last few years on the 1980s, Bill drove around California on assignment from the San Francisco Chronicle, writing about rural places and the people who inhabit them, including ranchers, farmers, environmentalists, scientists, horse wranglers, game wardens, and town folk. Writing as William Poole, Bill published 90 Detours features between June of 1987 and December of 1990 in the This World section of the San Francisco Chronicle, Sunday edition. Three decades later, these features, with photographs by the author, are being added to this website as time allows.