text:
Hydrogen Optimized Signs Letter of Intent with Industrial Company to Supply More Than 40 MW of Large-Scale Hydrogen Production Capacity
Deuterium, Stuart, Iridium, Carbon, Ampere, MW, Methanol, Ammonia, LOI, Transport, Time, CEO, Technology, Water, Key, Architecture, Wind, Steel, KEY, Renewable energy, Hydrogen
"The signing of this LOI is a significant step forward in our commercialization process," said Andrew T. B. Stuart, President and CEO of Hydrogen Optimized.
Hydrogen Optimized is a private hydrogen technology company that develops and commercializes large-scale Green Hydrogen production systems.
As a sustainable energy conversion company, Hydrogen Optimized enables the conversion of green electricity into Green Hydrogen and the transformation of heavy fossil fuel-use industries into sustainability leaders.
Hydrogen Optimized seeks to be the first water electrolysis company to supply an aggregate of 10 GW of hydrogen production equipment.
Advantest Announces New Versatile, High-Throughput Test Solution for NAND/Nonvolatile Flash Memory ICs
Monday, November 29, 2021 - 8:05am
Ampere, WLBI, Na, Internet of things, IOT, NAND, DFT, TSE, 3D, Machine learning, ALPG, GLOBE, Artificial intelligence, Ownership, BIST, Social responsibility, Semiconductor, Engineering, Video game console, Printed circuit board
Worldwide sales of NAND wafer test equipment for multi-stacked type probers are approximately US$100 million per year, accounting for an estimated seven percent of the total memory market.
As the market grows, customers are shifting away from high-functionality wafer-sorting test equipment toward more cost-effective design-for-test (DFT) and BIST strategies using multi-probe systems.
The systems test stations do not add to the overall footprint because they are housed within the multi-wafer prober.
This allows the T5221 platform to use much less floor space than Advantests previous nonvolatile memory tester and a standalone prober.
Ceylon Graphite's Anode Graphite in Full Cell Lithium Ion Batteries Outperforms Leading Commercial Synthetic Graphite
Tuesday, November 23, 2021 - 12:15pm
Electrochemistry, News, SDC, EIL, CEO, Western Ghats Ecology Expert Panel, Graphite, National Instrument 43-101, Risk, Industry, Government of Sri Lanka, Acquisition, Company, SEM, CCY, National instrument, Shri, Faraday Institute for Science and Religion, Risk factor, Sri Lankan, TSX Venture Exchange, CYL, Industry Standard, APL, Electrochemical engineering, GLOBE, UCL, IML, OTC, Government, Ampere, FSE, Mining, Failure, University College London, Aluminium, Lithium
In tests at a leading global, independent facility, University College London (UCL), Ceylons vein graphite anode material far exceeded comparable anodes made with industry standard commercial synthetic graphite.
This is the first time in battery research history that commercial spherodized vein graphite materials were tested in a lithium ion battery in a full cell.
The C/5 stable cycling (25 to 50) gives an average reversible capacity of 155mAh/g for the best performing vein graphite material, compared to 139mAh/g for standard synthetic graphite.
The initial results prove the suitability of our material for lithium ion battery anodes for either stand alone or possible blending with synthetic graphite.
Unifrax and Clearlake Announce Battery Advisory Board to Support Breakthrough Silicon Fiber Anode Battery Technology, Thermal Run-Away and Separator Products
Thursday, November 11, 2021 - 12:00pm
Alternative Energy, Energy, General Automotive, Technology, Automotive, Science, Nanotechnology, Engineering, Automotive Manufacturing, Other Technology, Manufacturing, Other Science, Associate, Industry, Apple Inc., EVS, Motorola, Technical University of Munich, IBM, FRSC, Arumugam Manthiram, Apple, Silicon, University of Texas at Austin, Safety, MIT, Nobel Prize, TUM, Research, Aviation, Gordon Research Conferences, Sustainability, IPad, Ceramic, Filtration, Fellow of the Royal Society of Chemistry, CEO, Department, Lane, Clearlake, Multimedia, Twitter, Princeton University Department of Chemistry, Electrochemistry, Electronics, Nature Energy, University, World Economic Forum, Retirement, Supply chain, Senior, SVP, Investment, Royal Society, Ford Motor Company, Materials science, LinkedIn, Royal Society of Chemistry, Mac, Ampere, Ford Escape, Electric battery
Unifrax , a leading manufacturer of high-performance specialty materials, today introduced its Battery Advisory Board, which will meet regularly to provide strategic guidance as Unifrax grows its battery portfolio and enters the silicon anode market with its new SiFAB Silicon Fiber Anode Battery Technology .
This transformational technology becomes part of a robust battery portfolio that also consists of world class thermal management products and separator media.
Unifraxs Battery Advisory Board will include:
Dr. Prabhakar Patil, former CEO, LG Chem Power, and Chief Engineer of Hybrid Technologies, Ford Motor Company.
Were thrilled to have put together such a talented and influential advisory board, said John Dandolph, CEO, Unifrax.
Broadcom Strengthens its Commitment to Open Compute Project Showcasing Leading-Edge and Wide Range of Initiatives at this Year's Global Summit
Tuesday, November 9, 2021 - 5:28pm
Cloud, Trident, San Jose Convention Center, PCI Express, AT, Ethernet VPN, Dennis Trident 3, ODM, Meta, OEM, Ali Baba, Silicon, SAN, Technology, Concourse, Automation, Juniper Networks, QCT, Architecture, IEEE 802.1X, High Speed, MiTAC, GLOBE, PTP, Tomahawk, AVGO, Serial Attached SCSI, Expo Hall, SJCC, OCP, Tors, NASDAQ, Aowanda National Forest Recreation Area, Sonic, Ampere, PHY, Capgemini, Program, RAID, C23, API, HBA, PAI, SPDM, Physics, OpenBMC, Jericho, EPFL, Capri, Mass Storage Control Protocol, Dell, AT&T, Microsoft, Medical device, Renewable energy, Video game console, Video game, Internet service provider, Online shopping, Mobile phone
A long-time supporter of open, standards-based technologies, Broadcom is dedicated to developing high-performance, scalable solutions optimized for AI/ML in Cloud and hyperscale data centers.
Broadcoms innovative products are designed specifically to deliver a rich set of features at maximum performance, while providing power and cost efficiencies.
The first demo is for a massively scalable, virtualized, distributed routing platform utilizing Broadcom Jericho2 and Ramon chipsets, OCP Experience Center.
Broadcom showcasing 2x100G OCP NIC 3.0 adapter with multi-host connectivity, manageability, and precision timing using PTP, OCP Experience Center.
ADLINK launches first embedded MXM graphics modules based on NVIDIA Ampere architecture for edge computing and AI
Efficiency, Shock, Robotics, Deep learning super sampling, Health care, TGP, Gracemont (microarchitecture), Acceleration, PCI Express, Health, Vibration, Longevity, Transport, Technology, IOT, Telecommunication, Ampere, Artificial intelligence, Corrosion, Facebook, SAS, Architecture, AI, PCI, Twitter, Intel, LinkedIn, Solution, Temperature, MXM, Communication, AWS, ROS, FP32, ADLINK, GPU, Video game console
ADLINK embedded MXM graphics modules offers high performance GPU acceleration in the compact, power-efficient MXM form factor, bringing edge computing and embedded AI to numerous vertical markets in healthcare, manufacturing, transportation, and more
Rugged design built for severe temperature extremes, shock and vibration, and corrosion in harsh conditions
ADLINK Technology Inc. , a global leader in edge computing, today introduced the industry's first embedded MXM graphics modules based on the NVIDIA Ampere architecture, built for accelerated computing and AI workloads at the edge.
The new embedded graphics modules deliver real-time ray tracing, AI-accelerated graphics and energy-efficient AI inference acceleration in the compact mobile PCI express (MXM) form factor.
"Computing and AI workloads are shifting from the cloud to the edge to shorten response time, enhance security and lower communication costs.
Applications of the embedded MXM graphics modules include:
Healthcare: Accelerated image reconstruction for mobile X-ray, ultrasound and endoscopic systems
For more information, visit the product page here.
Helios Technologies Introduces the New Clim8zone™ Heat Pump Integrated Control; First to Market with Innovative Technology
Other Manufacturing, Electronic Design Automation, Automotive, Engineering, Technology, Automotive Manufacturing, General Automotive, Manufacturing, Intelligence, Heat pump, Industry, COP, Technology, Health, Heat, Water, Senior, Growth, Exercise, Multimedia, Agriculture, Acquisition, New, Company, Solution, Temperature, NYSE, Weather, Ampere, Heating, ventilation, and air conditioning
Fully integrated with Balboas powerful BP Control System and SpaTouch3 panels, the Clim8zone Heat Pump features a variable speed compressor and a smart algorithm to optimize energy output.
The Clim8zone Heat Pump meets what the industry has been asking for, including the ability to cool the water of a swim spa to the ideal temperature to exercise, he continued.
The new Clim8zone Heat Pump is revolutionary, answering the health and wellness industrys needs to reduce the costs of running a hot tub while transforming the heating and cooling of the spa water.
Additional features and benefits of the Clim8zone Heat Pump:
Unlike other spa heat pumps on the market, Clim8zone functions at low ambient air temperatures (-20C/-4F) in colder climates
Fully integrated with the BP Systems and uses the same spa heating pump as the spas traditional electric element heater.
Supermicro Enhances Broadest Portfolio of Edge to Cloud AI Systems with Accelerated Inferencing and New Intelligent Fabric Support
Tuesday, November 9, 2021 - 11:03am
Cloud, Efficiency, 2600-series (CTA), Redstone, Natural language, Enterprise & Data Center SSD Form Factor, Natural language processing, Artificial intelligence, Gracemont (microarchitecture), VMware, Acceleration, Engineering, CEO, Media, Graphics processing unit, 3D, Computer, ASR, Technology, AI accelerator, Ampere, NVIDIA, AI Enterprises Ltd v Bram Enterprises Ltd, AMD, AI, Cloud computing, Workflow, Playin' for Keeps (Bunky Green album), Environment, Intel, Big data, Solution, NLP, Reinforcement learning, Speech recognition, A2, Name, SMCI, InfiniBand, CPU, GPU, Bluefield, A30, Workload, Video game console, Cryptocurrency
SAN JOSE, Calif., Nov. 9, 2021 /PRNewswire/ -- Super Micro Computer, Inc. (SMCI), a global leader in enterprise computing, storage, networking solutions, and green computing technology, announces the enhancement of the broadest portfolio of Artificial Intelligence (AI) GPU servers which integrate new NVIDIA Ampere-family GPUs, including the NVIDIA A100, A30, and A2.
"Supermicro leads the GPU market with the broadest portfolio of systems optimized for any workload, from the edge to the cloud," said Charles Liang, president, and CEO of Supermicro.
In addition, Supermicro also just introduced the new Universal GPU Platform to integrate all major CPU, GPU, and fabric and cooling solutions."
The Supermicro E-403 server is ideal for distributed AI inferencing applications, such as traffic control and office building environmental conditions.
Supermicro Hyper-E edge servers bring unprecedented inferencing to the edge with up to three A100 GPUs per system.
NVIDIA Sets Path for Future of Edge AI and Autonomous Machines With New Jetson AGX Orin Robotics Computer
Tuesday, November 9, 2021 - 9:16am
Cortex, Jetson, Robotics, Robot Operating System, Industry, DRIVE, Ecosystem, Gracemont (microarchitecture), Omniverse, Nvidia Jetson, Health, NASDAQ, SDK, Transport, Ampere, Catalog, Growth, NVIDIA, Endoscopy, Artificial intelligence, Architecture, Perception, Research, GLOBE, Robot, ROS, Agriculture, Physics, GPU, City, Medical device, Video game console
Built on the NVIDIA Ampere architecture, Jetson AGX Orin provides 6x the processing power and maintains form factor and pin compatibility with its predecessor, Jetson AGX Xavier.
Jetson AGX Orin addresses this need, enabling the 850,000 Jetson developers and over 6,000 companies building commercial products on it to create and deploy autonomous machines and edge AI applications that once seemed impossible.
Jetson AGX Orin features an NVIDIA Ampere architecture GPU and Arm Cortex-A78AE CPUs, along with next-generation deep learning and vision accelerators.
DRIVE AGX Orin, also powered by the NVIDIA Ampere architecture like Jetson AGX Orin, is the platform of choice for the transportation industry.
Cloud, Efficiency, Redstone, View, Natural language, Enterprise & Data Center SSD Form Factor, Natural language processing, Artificial intelligence, Gracemont (microarchitecture), VMware, Acceleration, SAN, Engineering, CEO, Graphics processing unit, 3D, Computer, ASR, Technology, AI accelerator, Ampere, NVIDIA, Multimedia, AI Enterprises Ltd v Bram Enterprises Ltd, AMD, AI, Cloud computing, Workflow, Playin' for Keeps (Bunky Green album), Environment, Intel, Big data, Solution, NLP, Reinforcement learning, Speech recognition, A2, Name, SMCI, InfiniBand, CPU, GPU, Bluefield, A30, Workload, Cryptocurrency, Video game console


text:
Q: Creating tibble or data frame of tibbles or data frames and other class Is it possible to create a tibble or data.frame, which has columns that are integers and other columns that are tibbles or data.frames?
E.g.:
library(tibble)
set.seed(1)
df.1 <- tibble(name=sample(LETTERS,20,replace = F),score=sample(1:100,20,replace = F))
df.2 <- tibble(name=sample(LETTERS,20,replace = F),score=sample(1:100,20,replace = F))

And then:
df <- tibble(id=1,rank=2,data=df.1)

which gives this error:
Error: Column `data` must be a 1d atomic vector or a list

I guess df.1 has to be a list for this to work?

A: Is this what you are looking for? I think the key is the length of each column should be the same, and we need to use list to create a list column to store df.1 and df.2.
df <- tibble(id = 1:2,
             rank = 2,
             data = list(df.1, df.2))
df
# # A tibble: 2 x 3
#      id  rank              data
#   <int> <dbl>            <list>
# 1     1     2 <tibble [20 x 2]>
# 2     2     2 <tibble [20 x 2]>

head(df$data[[1]])
# # A tibble: 6 x 2
#    name score
#   <chr> <int>
# 1     G    94
# 2     J    22
# 3     N    64
# 4     U    13
# 5     E    26
# 6     S    37

head(df$data[[2]])
# # A tibble: 6 x 2
#    name score
#   <chr> <int>
# 1     V    92
# 2     Q    30
# 3     S    45
# 4     M    33
# 5     L    63
# 6     Y    25

And since the structure of each tibble in the data column are the same. We can use tidyr::unnest to expand the tibble.
library(tidyr)
df_un <- unnest(df)
# # A tibble: 40 x 4
#       id  rank  name score
#    <int> <dbl> <chr> <int>
#  1     1     2     G    94
#  2     1     2     J    22
#  3     1     2     N    64
#  4     1     2     U    13
#  5     1     2     E    26
#  6     1     2     S    37
#  7     1     2     W     2
#  8     1     2     M    36
#  9     1     2     L    81
# 10     1     2     B    31
# # ... with 30 more rows

And we can also nest the tibble, making it back to the original format with a list column.
library(dplyr)
df_n <- df_un %>%
  group_by(id, rank) %>%
  nest() %>%
  ungroup()
df_n
# # A tibble: 2 x 3
#        id  rank              data
#     <int> <dbl>            <list>
#   1     1     2 <tibble [20 x 2]>
#   2     2     2 <tibble [20 x 2]>

# Check if df and df_n are the same
identical(df_n, df)
# [1] TRUE

A: Using tidyr's nest:
set.seed(1)
df.1 <- data.frame(name=sample(LETTERS,20,replace = F),score=sample(1:100,20,replace = F))
df.2 <- data.frame(name=sample(LETTERS,20,replace = F),score=sample(1:100,20,replace = F))

I can create a tibble where df.1 is nested under id and rank:
library(dplyr)
library(tidyr)

data.frame(id=1,rank=2,data=df.1) %>% nest(-id,-rank)

# A tibble: 1 × 3
     id  rank              data
  <dbl> <dbl>            <list>
1     1     2 <tibble [20 × 2]>

For having both df.1 and df.2 in a tibble, I'd simply do:
data.frame(id=c(1,2),rank=c(2,1),data=c(df.1,df.2)) %>% nest(-id,-rank)

# A tibble: 2 × 3
     id  rank              data
  <dbl> <dbl>            <list>
1     1     2 <tibble [10 × 4]>
2     2     1 <tibble [10 × 4]>

redpajama_set_name: RedPajamaStackExchange


Hi there audience, Many thanks on your precious time you just read a piece of writing atlanta divorce attorneys snapshot that individuals provide. What you are examining nows a perception Chandelier Wall Art. Via here you possibly can know the design of exactly what does one give to help to make your house as well as the space unique. Here many of us will certainly indicate yet another graphic merely by clicking on any button Next/Prev IMAGE. Chandelier Wall Art The author stacking these nicely to be able to fully grasp the motive of the preceding content, to help you generate through investigating the particular snapshot Chandelier Wall Art. Chandelier Wall Art definitely neatly from your gallery over, to be able to help you to do the job to build a residence or possibly a place more beautiful. All of us additionally present Chandelier Wall Art include went to any people company.
You might use Chandelier Wall Art, while using proviso that will the employment of this content or even picture each and every post merely tied to individuals, certainly not pertaining to business requirements. As well as the author in addition provides liberty to be able to each impression, offering ORIGINAL Link this page. As we include spelled out previous to, when anytime you want a image, it is possible to spend less the particular photograph Chandelier Wall Art inside cell phones, notebook computer or computer by simply right-clicking this picture and decide on "SAVE AS IMAGE" as well as you can obtain down below this post. Along with to search for different photographs upon every single publish, you can also try looking in the particular line SEARCH prime right on this website. On the info offered copy writer with any luck ,, youll be able to take something useful by much of our articles.
Step 4: *To Add A Little Extra Glamour, Add Some Gold Brush Strokes All Around The Canvas! And You Are Now An Artist!
Twinkling LED Canvas Wall Art Is Sure To Turn Heads!. It Is A Wonderful Illusion That Also Adds A Colorful, Warm Look To Your Walls.


text:
Sarah Shipley of Hastings Wins 28th GAM Women's Championship Despite Penalty
July 9, 2019 July 9, 2019 by The Original Golf Blogger
SAGINAW – Sarah Shipley didn't let a two-stroke penalty for hitting from a wrong tee box on the sixth hole ruin her day.
The Hastings resident and University of Kentucky golfer shot a 1-under 70 despite the penalty and won the 28th GAM Women's Championship presented by Global Golf Post Tuesday at Saginaw Country Club.
"It was early enough in the round that I didn't get that worked up about it," she said after the four-shot win over 2017 champion Kerri Parks of Flushing and Marshall University and Yurika Tanida of East Lansing and Michigan State University, who tied for second.
"It was frustrating, but I had birdied a couple of holes and knew I had a cushion. Plus, I knew there were more birdies out there."
Shipley's closing 70 gave her a two-day total of 4-under 138. Parks, who rallied with a 6-under 65, and Tanida, who shot a second consecutive 71, tied at even-par 142.
Defending champion Allyson Geer-Park of Brighton and Michigan State shot 69 for 143 and fourth place. Katie Chipman of Flushing and Grand Valley State University shot 69 for 144 and fifth.
Michigan State head women's golf coach and Michigan Golf Hall of Famer Stacy Slobodnik-Stoll of Haslett, who shot 74, and Chaithra Katamneni of Midland and the University of Nevada, who shot 72, tied at 145.
Anna Kramer of Spring Lake and the University of Indianapolis, the 2016 champion, shot 72 for 146, and Elayna Bowser of Dearborn and Loyola University-Chicago shot 72 for 147. Meghan Deardorff of Clarkston and Central Michigan, who shot 78, and Haylin Harris, another Michigan State golfer who shot 74, rounded out the top 10 at 148.
Shipley said she was in conversation with playing partners Slobodnik-Stoll and Deardorff when she stepped to what she thought was the No. 6 tee and hit a shot. Deardorff then stepped on the tee and noticed it was not the correct tee.
"I had to hit another one, take the two strokes, try to make a birdie for bogey, but I made par for a double-bogey," she said. "I've never done that before. I'm glad it was earlier in the round. That's why I didn't get too down about it. If I do something like that late in the round it might have been a different story."
Shipley, 21 and a senior-to-be this fall at Kentucky, said she was proud that she worked through the mistake and kept playing well.
"I had two rounds in the red (under-par) so I feel really good about that," she said. "It's my best play of the summer for sure. It will boost my confidence going into the season back at school. I had the kind of rounds I will need to have to go back to school and win a college tournament."
Shipley, who was qualifying medalist in last year's Michigan Women's Amateur Championship, will miss the Aug. 5-9 championship at Spring Lake Country Club with a mission trip to Nicaragua with some other University of Kentucky athletes.
"I will play in the Women's Western Amateur and that's it before going back to school," she said.
Parks, the defending Michigan Women's Amateur champion said she will also miss the championship. She heads back to Marshall for summer classes on Monday.
"I'm excited I shot a good round before I head back to school," she said after her 65 that helped her forget an opening 77. "I had good distance with my driver today and seemed to hit it to 9-iron distance a lot," she said. "I hit good shots and made a few putts. Yesterday I hit several errant shots, but today I played much better."
Tanida, who will be a junior at Michigan State and is originally from Japan, said her 71 was frustrating.
"I started out very bad," she said. "I struggled to make pars, struggled all through the round."
COMPLETE RESULTS: Scores can be found under the championships tab at gam.org,
Categories Apparel, Michigan Golf Tags GAM, Golf Association of Michigan Post navigation
Western Amateur Returning to Point O' Woods In Benton Township, Michigan

redpajama_set_name: RedPajamaCommonCrawl


text:
Palmarès
In carriera ha conseguito i seguenti risultati:

Giochi Panamericani:
Winnipeg 1999: argento nel fioretto a squadre.

Collegamenti esterni
Scheda di Sandra Torres sul sito FIE.

redpajama_set_name: RedPajamaWikipedia


Toad for SQL Server 7.0.3.684 beta has started. Quest's beta programs are your opportunity to participate in the development, direction, and quality assurance testing of our products. By becoming a beta tester you have direct access to the development team and product management.
Build 7.0.3.684 expiring on Jun 06, 2019.
TSS-1423 [SubCase][Schema Compare]-Database schema compare is not sensitive to full text indexes.
Toad still not remembering toolbar customization and desktop layout. I have not been able to get Toad to remember my desktop configurations since 6.7. I currently have folders for 6.7, 6.8, 7.0 and 7.0 beta in my appdata folder. The files in the Layout folder seem to get updated but it continues to reset all customizations.
Are you using the msi installer? I have seen this error when you need to uninstall first.
This should not be the case. Can you open a support case? We would need to gather you setting files from those releases and see what is not being retained. All layouts and tool bar configurations should be retained from version to version has long as the previous version was installed on the same pc and that you pressed the button and said 'yes' to migrate settings.
I ended up uninstalling the previous beta and started again and it installed fine.


This was the pierogi that started it all. The classic potato & 3 cheese that Kelly has been making as long as she can remember. Ours uses our favorite blend of 3 cheeses as well as a dash of love. Serve along side some sautéed onions and grilled kielbasa (with plenty of sour cream!) in true Polish fashion, or go ahead and eat them on their own, the choice is yours!


The Godhra City Co-Op Bank Ltd. was established on March 07, 1924. Its was the first bank establishment in Godhra city.
The-Godhra-City-Co-Op-Bank-Ltd is one of State/UT in India, with 1 district, click on the district to check village directory.


I promise this post is about running - but it is mostly a rant about real life. It is not intended to be offensive, but a candid look at my own life.
I always have a lot of anxiety when the end of summer rolls around (remember: teacher/summer off/etc.) I'm talking actual anxiety attacks here. Tears. Tantrums. Doom and gloom. It has less to do with the fact that summer ends and much more to do with feeling like I am breaking up with my authentic self. I get to live an authentic life for a 10 week window every summer. When I have to put my selfish pursuits aside for the sake of a grown-up existence, I freak out.
I have always been introverted - preferring to work on my own, because I am an efficient and committed self-starter and I have control issues. Without the distraction of others or rules imposed by others, I can accomplish a tremendous amount. Because of that, the summer is a really productive and exciting time for me. I work as much during those ten weeks as I do during the school year, but I work on things that are mine - entirely selfish and fulfilling. My rules. My pursuits. My rap cd blaring in the background.
I'm not trying to paint myself as a rebellious brat. I am a grown-up with a grown-up life that I have to maintain - a life that I am mostly proud of - but the 15 year old version of myself gives me the finger every time I disingenuously say "Yes, sir" to the Man, every time I trade my time for money, every time I neglect my wants and needs for something else. I think of the young version of myself and what I thought life would look like; the girl that got voted "Wildest Imagination" in school did not expect life to be so regimented and tame. I thought I would grow up to write and illustrate children's books and live happily ever after. That is still on the table. That is authentic.
Do not marginalize your life.
I have found some ways to navigate adulthood. I don't want to say that I bend the rules, but I do set up my own framework in all situations to make life manageable. Basically, I avoid doing a lot of things I don't want to do. I try to remember I never have to do anything. Here are a few examples that I get a fair amount of criticism for: I'm not married yet, because I don't want to be. I don't have kids yet, because a crying baby will make my ovaries shrivel. I don't engage in small talk, because it's the foundation of gossip and inefficiency. I don't eat meat, because meat had a mom. Etc. If there isn't a severe consequence and I can avoid doing something I don't want to do or some that conflicts with my values, you better believe I'll be avoiding it.
The visceral reaction I mentioned above rears its head EVERY. SINGLE. TIME I do something that conflicts with my "authentic self" or threatens my independence. Every soul-sucking time. The real version of Michelle is kinda moody, high-strung, creative, ambitious, impatient, funny and into rock & roll. She lives permanently in my mind and interjects when she can, but the Michelle that is present is the watered down version that passes for a grown-up. She is the one that puts on professional clothes, signs emails with "regards" and listens intently while someone else dictates her life. *Real Michelle shakes her head at the Drone Michelle and tells a dirty joke.* I sincerely feel like I have multiple personality disorder.
I think it is extremely important to listen to those voices, to those feelings in your "gut," and to act on them. Or be miserable. Or numb. In that regard, running has been my savior. Running is the only time when I can be 100% authentic. In control. Honest in my dialogue. When I have to return to the world of the working, running is the sanity that gets me through it all and keeps me connected to WHO I REALLY AM.
That said - my point in all of this - I am making a commitment to myself to work on my authenticity. Running will help me get there, but it is going to require some bold moves. Stagnation is not in the cards, my friends.
One of my favorite quotes is: This ain't no side hustle. My life is no side hustle. This is it and it is what I make of it.
Be and do what you love.
I have made an interesting choice with my training. I'm changing it entirely. And I'm changing it near the peak of my training. *GASP* My goal race, The Lakefront Marathon, is on October 6th.
When training for my last two marathons, I have followed hybrids of traditional plans that gradually increase mileage and goal paces until peaking a few weeks out - taper - race. You know the drill. It might be completely ill-advised, but I'm doing something completely different this time. Why? Because balls to the wall.
1. Long runs will still happen as scheduled. The day before or after a long run (not both) will be enough to equal 20+ miles for the two days. Example: Sunday long run = 16 miles. Monday run = four miles. Total = 20 miles/2 days = 10 miles/day. Got it? If you go over the 10 mile daily average, that's fine - but no less.
2. Speed work and hills must be built into the 10 miles for any given day as planned. The speed work can be done on a track, but the remaining distance must be done after the workout.
3. Easy days must be run easily. 1:30 min below race pace for a total of 10 miles.
4. Once a week, the workout can be divided into two separate runs. Example: 6 miles in the morning, 4 miles in the evening. This can be done on speed work days.
5. Cross training does not count toward mileage and should be done as scheduled in addition to daily mileage of 10 mile average.
That is it. 70+ miles. No excuses. Speed, hills, distance included. Either this will be a genius way to end my cycle or it will fail miserably and I will feel it come race day. I'm excited to try it out, because it eliminates the question, "What is my workout today?"
Oh - that's right - it's TEN 'TIL TAPER!
What's the rationale behind all this? The fact of the matter is that I have some specific goals tied to the race in October. While traditional plans have been fine in the past, I need something that is going to put my training over the top. By maintaining higher mileage for the last few weeks of training before taper, I hope to develop some muscle memory and strength. I'm looking to PR in the marathon; you can't achieve new goals doing the same thing over and over.
Today is Lace & Race's One Year Blogiversary! YAY! I guess that means we have to PARTY!
One year ago - I started this blog with the intention of keeping me accountable with my training after the "slow champ" incident. If you're not familiar, you can get caught up with the Slow Champ story in this post, "In Search of an Impressive Run."
So - why "Lace & Race" as a name? There's the obvious connection to running - lace up your shoes and get racing, fool! But the name kinda has a double-meaning for me. I've always toed the line between being a girly-girl and a tom-boy. Lace represents the girl in me that likes vintage skirts and rom-coms; Race is the competitive tom-boy instinct that I can't suppress. Hence Lace AND Race because I don't want to choose sides.
The year has been exciting to say the least! If I think back to this time last year, things are so different and a lot of that is because of Lace & Race.
The biggest difference is in the people that I have met along the way. Between Twitter, Instagram, blog followers and Facebook - I have "met" so many incredible people. It's funny, because I talk to a lot of you more than I talk to my real-life friends and better yet - some of my internet friends are now REAL LIFE FRIENDS! That's so great - it's like if your childhood imaginary friends were suddenly real people. I guess that just shows the strength of the runner, fitness and wellness community. We all have so much in common that we connect in major ways - like we've been living parallel lives, so we already "know" each other pretty well. And - we understand the high level of "crazy" that this runner's life demands.
The support I have received from many of you has been invaluable. I love that I can come to my blog followers and internet friends for advice, for a good rant and especially a laugh. You've also helped me with my training and accountability. I always know I'm going to have to report my performance results to an internet audience - so you guys keep me motivated. Plus - so many of you are inspirational and extremely talented. I have sincerely learned so much from you guys. I'll stop gushing now, but you're pretty neat.
The first year of Lace & Race has been AWESOME.
I look forward to what the next year has in store!
Here are some bloggy highlights from the last year...and a major giveaway at the bottom!
1. Sun* - Eat. Host. Run. Style.
5. Nicole* - More Beets, Please!
*denotes "net friend" turned "real life human friend"
Enough chit-chat! Let's get to the good stuff - the FREE STUFF! I have a pretty great giveaway for you all - filled with products that I personally use and love. It is a winner-takes-all situation, so if the single winner is you, you will get all of the following items as described! Some will come directly from me, some from the generous companies that have offered to participate - so please read carefully. Continental US entries for shipping purposes please! Enter through the Rafflecopter Giveaway below.
On Saturday, I ran the Milwaukee Irish Fest 5K with some of my Olallie friends! We ran as a team. Going into the race, I wasn't sure how to approach it. As I mentioned in my last post, I've been having some issues with my knee and my right foot. Part of me wanted to take it easy and just enjoy the event with friends while also giving my body a break. The other part of me knows that I am too competitive to let that happen.
Fast Olallie and Oiselle girls before the race.
I lined up near the front - but I left plenty of room to keep an eye on the girls that lined up closer to the start. I assumed they'd be my competition. Whenever I run a race, I use this strategy - line up slightly behind my anticipated pace and scope out the competition - basing my opinions entirely on physique, gear and pre-race demeanor. (SCIENCE!) There were only a couple girls in front of me to check out anyway.
The start of this race was - umm - really weird, because some random lady in the crowd started shouting the start sequence. Literally "ON YOUR MARK. GET SET. GO!" Everyone was confused. I thought it was a joke until the crowd started moving.
My race wasn't puke or faint worthy (or death - sheesh.) The fact that I didn't really feel like puking or fainting tells me that I probably could've pushed it a little bit more - but remember - bum foot and knee demand restraint. I do a "smile test" during races of all distances, if I can still smile I am not suffering (which is good in a marathon) but I should also consider going faster. So - I did the smile test and settled in around 6:22 min/mile pace.
I passed the girls that were in front of me - and no girls found their way back to the front of the pack. I am always expecting some girl to take it really easy and save a sizable energy reserve for a killer finish - she typically comes blazing past me in the last half mile when I am ready to trip on an imaginary crack and call it a day. This happens in every race - without fail - until Saturday. My finishing time was 19:44 - good for a *1st Place Female Overall finish. Olallie girls, you understand the asterisk.
Olallie girls collapse after a fast and hot race.
We all ended up doing pretty well - and most importantly - we had fun! If you want to see a really flattering picture of me running this race, click here. In that exact moment, I spotted the photographer and thought "Oh crap. He caught me making a face. Not a pretty face. Damn it!" All that intensity in my face is going to leave a mark and a trail of ugly race photos on the internet.
So - that brings me to the rest of my marathon training. I have to be honest. This last week sucked for training. I took off four days entirely and the running I did get in was not great. But - I have to keep reminding myself that is all in an effort to give my knee and foot a break. The 5K did nothing for my ankle and heel; I woke up on Sunday with a swollen ankle and a nasty limp. It was so bad that I opted out of doing the Dirty Girl 5K, because obstacles with a swollen ankle sounds like a terrible idea. I was bummed.
I also missed the 20 miler that my schedule called for this past weekend. I am willing to make a lot of sacrifices, but long runs and speed work cannot be skipped during marathon training - not when there are goals on the line anyway. I ran my 20 miler today instead. It really wasn't that bad - definitely a little sore once I got home, but the run itself was fine. I ran 7:30 to 8:00 pace the whole time - averaging 7:48. I did give myself three 3 minute water/fuel stops - because I was not interested in pushing my luck today. The worst thing about the whole run: a blister from new shoes and some chafing from thighs that won't cut me a break. Such is life. All that matters is that those miles are in the books!!
How is your fall race training going??
Over-Training - Gimme a Break!
Hi friends! I'm back from my little "recharging" trip to the woods. I needed to get away for a few days - to shut off the electronics, spend time outside and let everything slow down, quiet down for just a little while. And - wow - Wisconsin is so incredibly beautiful.
My body ended up needing a little bit of a rest too, so this trip was perfectly timed. On Saturday morning, I went out for a 17 mile long run - and everything went fine. But on Sunday, my left knee felt locked and my right heel felt bruised. I have no idea why either body part was mad at me - I didn't do anything out of the ordinary on my long run.
I think two years of constant marathon training has caught up with me.
With that in mind - I did something I haven't done in a really long time and something that makes me extremely uncomfortable: I didn't run at all during the last four days. Zero miles.
I hate that I am currently experiencing some amount of runner shame as I admit that I didn't log the miles my schedule called for. I did the opposite - I kicked my feet up (because they hurt,) read books, ate trail mix, had a beer or two and tried to keep my mind off of the fact that I wasn't running. Whenever I did think about it, I beat myself up pretty badly - but I had to keep reminding myself that I have also BEATEN MYSELF UP pretty badly by running continuously for a few years.
"HEY YOU - can you give me a break here??"
So - I did exactly that: I gave me a break. A couple days off won't derail all of the work I've put in; it will probably improve my training, because I won't risk a more serious, long-term injury.
Don't let the imagined guilt of missing a workout stop you from taking care of yourself. You won't get off track with your training because YOU are a dedicated and competitive runner with really big and totally achievable goals - as long as you're not hurt. ;) Plus, sometimes kicking your feet up and taking in the view heals your soul a little bit. That is pretty important.
Discuss: How do you decide when your body needs a little bit of a break from training? Do you feel guilty about taking that break?
That's right - this girl right here is an official part of the Oiselle Volée Team! WHOOP WHOOP! Insert a happy dance and a virtual high-five.
Within the running world, Oiselle is truly an institution; however, I know some non-runners might be asking: What is Oiselle? Let me explain.
Oiselle is a brand of premium women's running apparel that is revered and longed for by fast ladies everywhere. "A women's running apparel brand" doesn't do justice to exactly what Oiselle is though. As a brand, they are passionate about the sport of running and the women that live their lives/achieve their goals in Oiselle gear. Their products are meant to be functional and fashionable - designed for real athletes' needs with high quality fabrics, vibrant colors and fashion-forward designs that won't hinder competitive running. Shop here.
Oiselle is all about helping women run free and fast! Currently we have 150 women from across the country who represent our brand as they train and race toward their running goals. Above all, we seek teammates who - like us - see running not just as a sport, but as a life philosophy. And who are excited about bringing this energy to their own community.
I am so excited for the first time I get to race in my Oiselle singlet - knowing that it represents my own achievements as well as my place in a sisterhood of strength. I look forward to the camaraderie and support as we race our way through the upcoming year. Birds of a feather! Meet the the rest of the Oiselle Volée Team here, with introduction from Oiselle CEO + Founder, Sally Bergesen!
Earlier in the summer, I entered a Twitter competition to name a new fabric pattern for Spandits! - the "seriously fun, but never too bold" active apparel line out of Maine. Spandits liked the name I suggested, which means I won some gear in that pattern to test, review and giveaway! Here I am sporting "Aurora Borealis" in all of its colorful glory! So flashy!
I don't know about you guys, but I get really bored with a lot of the spandex active apparel out there. I usually just default to black because its easy, but why not add some fun to your workout gear? I have mentioned it in the past - but I truly believe that what you wear affects your performance, because it affects how you feel about yourself. If you feel that you look colorful and fun, you are more likely to feel confident and push it to that next level.
Both stayed in place while test running them! Important!
I tested out both products so I could give you all a fair review: thumbs up! I tend to have problems with headbands sliding off (I think my head is small???) but this one stayed in place the whole time. The arm sleeves also stayed up while I was running. The best part: I got several compliments on them in the short time I was out testing them.
Spandits has several patterns available if Aurora Borealis isn't your style. You can apply the patterns to headbands, sleeves, skull caps, tights, etc. If you want to accessorize in any way - they probably have an option for you. My favorite is the arm sleeves. I have always raced in sleeves for functional reasons, but I do think other runners see you in them are like, "Ohhh, she must be serious!" Sleeves make it easy for spectators to find you in races too - because they stand out so much, especially when they are in a "seriously fun, but never too bold" pattern!
In other exciting Spandits news, they are looking to start an Ambassador program! If you're a Spandits super-fan, you can find more info about participating in the program here. How fun - a discount while representing a great brand!
I have never been a particularly religious person - I'm not even sure faithful is the word I would use to describe how I feel about God and life; I would say that I am spiritual. Please be aware that I am not intending to judge anyone or their belief systems. This is fairly difficult for me to write about - but I feel like it is important to share. Maybe some of you can relate.
As a very serious young girl with a need for logic and reasoning - I had an exceptionally hard time accepting the rules of my church. I could never make sense of what I was supposed to take away from my time spent there - should I be afraid of God? Should I be ashamed of my mistakes? I could not get behind an institution that seemed to make so many judgments - and most importantly - I did not personally feel a love from the church or its rules. I didn't leave feeling like a better person or like I knew myself or God any better. It actually made me feel a lot of confusion and anger towards organized religion.
The fact that I stopped going to a church does not mean that I don't believe in God. I would argue that I have an extremely strong connection to God - and everything that falls under the umbrella of "life." The only rule I live by is to be honest, fair and kind to all things. Good choices will follow.
I seek out time with God in nature rather than within the walls of a church. This is where running comes in. Running is my church. It has become my time to reflect, to meditate on my life - to seek out that "zen" moment where everything is a bit hazy accept my thoughts, my footfalls on a path and the rhythm of my breathing - a harmonized connection of mind, body and nature. It is healing and necessary for me.
I remember the first time that my beliefs about God felt validated. The sun was setting as I ran down an abandoned county road in my hometown. I was struggling through a long run; I was in pain, my breathing was heavy and so were my feet - but off in the distance I heard a "whooshing" sound - a breeze rustling the fall leaves. They kind of danced in front of that orange and pink sky, and in that exact moment - I became so overwhelmed by the peacefulness and beauty of it all that I started to cry. I felt sad that no one was there to experience it with me, but so grateful that I was able to recognize the moment at all. "God is in the trees" was all that went through my mind and that is a phrase that hasn't left me since.
God is in the trees.
That day, I felt a connection with nature and God and life that I am always trying to replicate - and I am often able to do so while running. I have found that as long as I am paying attention to the details in my surroundings, I'm able to have a similarly overwhelming experience - where I can find myself in absolute amazement at both the simplicity and complexity of life. Running allows me to experience MORE of those moments. You just see MORE. You cover MORE ground. I always think about the beautiful details that I'm passing when I'm in a car - how much did I NOT experience because I'm passing it by for the sake of modern efficiency? Running forces us to take our time, to use our senses and to participate in a natural world that we are not separate from but we are an integral part of. When my life feels chaotic, my solution is to put on my running shoes and head to the woods.
When I've had this conversation before, people have written it off as a runner's high. Crazy talk. So what? I don't think it matters if its a runner's high as long as I have a time to feel a part of something much greater than myself - as long as I am able to appreciate the beauty and structure of life - as long as it helps me to lead a healthy, happy and thoughtful experience. And let's not forget: just the ability to run - to push our bodies through this rigorous activity - is an incredible gift and a testament to our amazing design.
What about you? Do you feel a greater connection to yourself, to life, to God when you are running?


text:
package com.agrawalsuneet.loaders;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.animation.LinearInterpolator;
import android.widget.LinearLayout;

import com.agrawalsuneet.dotsloader.loaders.AllianceLoader;
import com.agrawalsuneet.dotsloader.loaders.BounceLoader;
import com.agrawalsuneet.dotsloader.loaders.LightsLoader;
import com.agrawalsuneet.dotsloader.loaders.PullInLoader;
import com.agrawalsuneet.dotsloader.loaders.RotatingCircularDotsLoader;
import com.agrawalsuneet.dotsloader.loaders.SlidingLoader;
import com.agrawalsuneet.dotsloader.loaders.TashieLoader;
import com.agrawalsuneet.dotsloader.loaders.TrailingCircularDotsLoader;
import com.agrawalsuneet.dotsloader.loaders.ZeeLoader;

/**
 * Created by suneet on 9/22/17.
 */

public class MainActivityJava extends AppCompatActivity {

    LinearLayout containerLL;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        /*LazyLoader loader = new LazyLoader(this, 30, 20, ContextCompat.getColor(this, R.color.loader_selected),
                ContextCompat.getColor(this, R.color.loader_selected),
                ContextCompat.getColor(this, R.color.loader_selected));
        loader.setAnimDuration(500);
        loader.setFirstDelayDuration(100);
        loader.setSecondDelayDuration(200);
        loader.setInterpolator(new LinearInterpolator());*/

        TashieLoader tashie = new TashieLoader(
                this, 5,
                30, 10,
                ContextCompat.getColor(this, R.color.green));

        tashie.setAnimDuration(500);
        tashie.setAnimDelay(100);
        tashie.setInterpolator(new LinearInterpolator());
        containerLL.addView(tashie);

        //sliding loader
        SlidingLoader sliding = new SlidingLoader(this, 40, 10,
                ContextCompat.getColor(this, R.color.red),
                ContextCompat.getColor(this, R.color.yellow),
                ContextCompat.getColor(this, R.color.green));
        sliding.setAnimDuration(1000);
        sliding.setDistanceToMove(12);
        containerLL.addView(sliding);

        //RotatingCircularDotsLoader
        RotatingCircularDotsLoader loader = new RotatingCircularDotsLoader(this,
                20, 60, ContextCompat.getColor(this, R.color.red));
        loader.setAnimDuration(3000);
        containerLL.addView(loader);

        //trailingCircularDotsLoader
        TrailingCircularDotsLoader trailingCircularDotsLoader = new TrailingCircularDotsLoader(
                this,
                24,
                ContextCompat.getColor(this, android.R.color.holo_green_light),
                100,
                5);
        trailingCircularDotsLoader.setAnimDuration(1200);
        trailingCircularDotsLoader.setAnimDelay(200);
        containerLL.addView(trailingCircularDotsLoader);

        //zeeloader
        ZeeLoader zeeLoader = new ZeeLoader(
                this,
                60,
                4,
                ContextCompat.getColor(this, R.color.red),
                ContextCompat.getColor(this, R.color.red));

        zeeLoader.setAnimDuration(200);
        containerLL.addView(zeeLoader);

        AllianceLoader allianceLoader = new AllianceLoader(
                this,
                40,
                6,
                true,
                10,
                ContextCompat.getColor(this, R.color.red),
                ContextCompat.getColor(this, R.color.amber),
                ContextCompat.getColor(this, R.color.green));

        allianceLoader.setAnimDuration(500);
        containerLL.addView(allianceLoader);

        LightsLoader lightsLoader = new LightsLoader(
                this, 5,
                30, 10,
                ContextCompat.getColor(this, R.color.red));
        containerLL.addView(lightsLoader);

        PullInLoader pullInLoader = new PullInLoader(this,
                20, 100, ContextCompat.getColor(this, R.color.red));
        pullInLoader.setAnimDuration(2000);
        containerLL.addView(pullInLoader);

        PullInLoader pullInLoader2 = new PullInLoader(this,
                30, 160, getResources().getIntArray(R.array.vibgyorg));
        pullInLoader.setAnimDuration(2000);
        containerLL.addView(pullInLoader2);

        BounceLoader bounceLoader = new BounceLoader(this,
                60,
                ContextCompat.getColor(this, R.color.red),
                true,
                ContextCompat.getColor(this, R.color.black));

        bounceLoader.setAnimDuration(1000);
        containerLL.addView(bounceLoader);
    }

}

redpajama_set_name: RedPajamaGithub


Up until the past 10 years, when you thought of book publishers for childrens books, your thought would naturally go to the large childrens book publishing companies that were primarily located in New York or California.
Here's an excellent source for information about childrens book publishers as well as an extensive list of book publishers for childrens books.
There was a pretty standard and rigid process to be strictly adhered to if you were a new author wanting to break into the world of writing childrens books and getting them published.
However, the reason for this was, and still is, that publishers of childrens books need to be pretty certain each book they choose to publish will earn them a return on the hefty investment in time, money and resources they make for each book.
The percentage of new authors published each year was very small, and your chances for financial success were infinitesimally small.
BUT, you gained credibility and you could use your book as a marketing tool for childrens books author appearances, teaching classes about writing childrens books, and other avenues for earning money.
Your chances for financial success are still small unless you're willing to do the necessary marketing and sales, as I explained on publishing childrens books.
However, there are more and more small and independent book publishers for childrens books who are self-publishing childrens books because of new methods for self publishing, namely online publishing of childrens books and POD (Print on Demand), where you only print books after they have been ordered and paid for.
One of the problems with POD publishing is that anyone and everyone can use the technology to have their book published if they're willing to pay the fees for doing so.
Research as discussed in The Well-Fed Self-Publisher indicates that most POD authors sell around 100-200 copies of their books, meaning that these authors don't really want to do the necessary marketing and sales required for financial success.
Also, the quality of many POD printed books isn't of the same high quality as required by bookstores and libraries.
Lastly, the author receives much less profit compared to the true model of self-publishing where you literally publish thousands of copies of a book to get a great price per book and the quality is superior.
I did this when I self-published my first childrens book. Five thousand, one hundred fifteen (5,115) copies arrived on my front lawn and I had nowhere to store them. My living room, bedroom and kitchen were overflowing with kids books.
Self publishing childrens books as online childrens books make childrens books more affordable for buyers and less expensive to self-publish.
If you have a child with a burning desire to self publish, here's information on how children can self publish.
Or if you as mom want to self publish and know nothing about building a web site, check out these fascinating stories about stay at home moms who have created revenue generating web sites.
Scroll down to see WritingHelp-Central about how one man has created a financially successful self publishing business, which is what I'm in the process of doing with my childrens books self publishing.
Check out sample pages from my first online self publishing childrens book.
Here's accompanying samples from the Friendship Unit Study, which covers character traits such as forgiveness, acceptance and love in a gentle way.
For further info or to purchase Bingo and Bonner, A Read-Me, Draw-Me Book, where kids, ages 6-9, create their own illustrations based on their understanding of the picture book quality story.
Here's more information about publishing childrens books and ideas for book publishers for childrens books.
The information and art found on Book Publishers for Childrens Books is the property of Childrens Educational Books.


text:
Q: MSAL / ASP.NET Core - How to check token cache contents? In my ASP.Net Core Mvc confidential web app I am using Microsoft Identity Web / Platform with AAD which I would like to call a downstream WebAPI. The web app Startup.cs is as follows:
            services.AddMicrosoftIdentityWebAppAuthentication(Configuration)
                .EnableTokenAcquisitionToCallDownstreamApi(new string[] { Configuration["ConfigSection:ConfigSectionScopes"] })
                .AddInMemoryTokenCaches();

When a user signs in, if I understood correctly their access token (acquired at sign-in, auth code flow requesting access token too) is stored in the InMemoryTokenCache.
From an MVC Controller, how do I access the token cache for the signed in user? I can acquire a token via ITokenAcquisition and GetAccessTokenForUserAsync (providing scopes) successfully, but I would like to check the cache to determine if the token is there and if other tokens are present for the user. I tried var accounts = await app.GetAccountsAsync(); but this is always null.

A: AddInMemoryTokenCaches registers IMsalTokenCacheProvider and IMemoryCache to the IOC container.
In your controller you can easily pick both up like so:
public class WeatherForecastController : ControllerBase
{
    private readonly IMsalTokenCacheProvider _cacheProvider;
    private readonly IMemoryCache _cache;

    public WeatherForecastController(IMsalTokenCacheProvider cacheProvider, IMemoryCache cache)
    {
        _cacheProvider = cacheProvider;
        _cache = cache;
    }
    ...
}

Looking at the two, it seems you can't extract much value from IMsalTokenCacheProvider so I'd suggest to stick with the IMemoryCache instance


text:
Ages 4 - Adult (120)
Scientists (59)
Informal Science Educators (231)
Synthetic Biology (1)
Human Body (17)
Microorganisms (2)
Engineering and Technology (407)
Nanotechnology (406)
Electricity and Magnetism (16)
Motion and Forces (10)
Programs and Activities (143)
Long Activities (14)
Theater and Stage Presentations (22)
K-12 Lesson Plans (12)
Non-Traveling Exhibits (20)
Scientific Images (67)
Print Media and Posters (16)
Intro to Nano (11)
For Scientists (35)
Online Workshops (36)
Evaluation and Research (68)
Front-End Evaluation (5)
Formative Evaluation (32)
Summative Evaluation (26)
NanoDays kit (78)
Explore Science: Zoom into Nano kit (20)
✕ Nanoscale Informal Science Education Network (447)
Building with Biology - Synthetic Biology (2)
Space and Earth Informal STEM Education Project (2)
✕ Project: Nanoscale Informal Science Education Network (447)
DIY Nano App - iPhone and iPad versions
The DIY Nano app (for iPhones) and DIY Nano HD (for iPads) allows families to experience and learn about nanoscale science, engineering, and technology at home or on the go! The apps provide free, easy to use, hands-on activities at...
NISE Network Fact Sheets and Brochure for Partners
We've created a selection of useful products to help members of NISE Network promote the network within their own institution or with potential collaborators. The NISE Network Information Sheet, created in collaboration with the Center for Advancement of Informal Science...
Museum & Community Partnerships: Collaboration Guide and additional resources
This guide offers an introduction to collaborations between museums and youth-serving community organizations. While this guide is designed specifically for museums and community organizations, much of the content contained in this document can be applied to all kinds and levels...
Explore Science: Zoom into Nano kit
Nano Mini-Exhibition
Nano is an interactive exhibition that engages family audiences in nanoscale science, engineering, and technology. Hands-on exhibits present the basics of nanoscience and engineering, introduce some real world applications, and explore the societal and ethical implications of this new technology....
whatisnano.org website
The NISE Network has created a website for public audiences featuring links to videos, audio material, podcasts, games, DIY activities, and NanoDays information for the public. The site also features information about the Nano mini-exhibition including audio description files in...
Liquid Body Armor
Visitors will learn how nanotechnology is being used to create new types of protective fabrics. The classic experiment "Oobleck" is used to demonstrate how scientists are using similar techniques to recreate this phenomenon in flexible fabrics.
Nanotechnology and Society Guide
This guide is focused on "three big ideas" that can provide a framework to help museum staff and visitors feel empowered to reflect on the relevance of nanotechnology in their lives through open-ended conversation. The guide considers how new nanotechnologies...
Scientific Image - AFM Image of Polyethylene Plastic (black and white)
Atomic Force Microcope image (black and white) of polyethylene, a common plastic. • SIZE: Scale bar representes 2 µm • IMAGING TOOL: Atomic Force Microscope
Engaging the Public in Nano Key Concepts
"Engaging the Public in Nano" provides an overview of key concepts in nanoscale science, engineering, and technology, as identified by the NISE Network. This document is intended as a resource for educators and others who engage the public in informal...
Flying Cars
Visitors "travel through time" with a host playing several characters: from the Future, 1900, 1945 and 1999. Visitors answer questions in a quiz about other people's predictions of future technology, and then are invited to make their own predictions.
Glossary: Museum and Research Center Terms Related to the NISE Network
Because the NISE Network bridges the cultures of museums and the academic research world, participants from one profession may not always know the lingo of the other. At the same time, a shared vocabulary is essential for educators and researchers...
Online Brown-Bag: Findings from the Professional Impacts Summative Evaluation (Recorded)
Hear the highlights from the NISE Network Professional Impacts Summative Evaluation. This longitudinal study explored how the Network impacted museum and university professionals' sense of community, understanding of nano content, and implementation of nano education. Members of the NISE Net's...
Nano 101 for Staff (Tim Miller Version)
A Powerpoint presentation with script that helps prepare staff and the public to discuss Nanotechnology
Exploring Nano & Society - Flying Cars
"Exploring Nano & Society - Flying Cars" is a hands-on activity in which visitors imagine and build a flying car out of small foam pieces. Conversations around this process lead visitors to explore how technologies and society influence each other...
Creating Nanomaterials
Creating Nanomaterials is an interactive, multimedia component of the Intro to Nanotechnology exhibit package that demonstrates how scientists are using the ability of molecules to self-assemble to create consumer goods with surprising properties. Visitors place and observe "molecules" on an...
Nanotech and Consumer Products
"Nanotech and Consumer Products" is a public presentation that introduces audiences to the growing role of nanotechnology in making consumer products, and encourages them to consider the potential environmental and health risks. During the presentation, visitors are guided through questions...
Zoom into a Blue Morpho Butterfly video
Zoom into the natural nanostructures that manipulate light on a Blue Morpho Butterfly! Starting with a normal digital camera, we zoom into the wing of the Blue Morpho using more powerful microscopes. We see the wing underneath an optical microscope,...
Three Drops 2008 Formative Evaluation
A formative evaluation was conducted on Three Drops, an Immersive Digital Interactive (IDI), that allows visitors to interact with simulations of water at different size scales where different physical forces dominate. This evaluation revisits the exhibit after changes were made...
Scientific Image - Nucleus Illustration
Illustration of a nucleus
Online Brown-Bag: What's Coming in Your 2014 NanoDays Kit (Recorded)
This is a recording of a NISE Network online brown-bag conversation held in 2014; this conversation walks you through all the materials found in the NanoDays 2014 Physical Kit. The discussion provides an overview of the activities, advice for using...
NISE Net Publicity Photos
Here is a selection of NISE Net press photos! Please use these images for marketing NISE Net related events, and in creating NISE Net related materials. These photos are free for use under a Creative Commons Attribution-NonCommercial 3.0 Unported License....
Invisible Sunblock
"Invisible Sunblock" is a hands-on activity exploring how nano-scale particles are used in mineral sunblocks to increase their transparency. Visitors compare nano and non-nano sunblocks to a visual representation of the effect of particle size on visibility.
Regenerating Tissues
Visitors see how nanomaterials are able to form tiny structures called nanoscaffolds that help the body repair damaged muscle, bone, and nerve tissues. In the interactive, an injured nerve is unable to communicate messages. After injecting nanoparticles, visitors can watch...
Who Decides Forum 2000 Formative Evaluation
This study was conducted as a part of the formative evaluation of the NISE Network forum "Nanotechnology: Risks, Benefits, and Who Decides?"


Want it delivered between Apr 29 and May 02? Order within 23 hr 56 mins and choose Express Delivery at checkout.
Mechanical mens wristwatch SNK789K1 with stainless steel case, with diameter 36 mm, white dial and silver stainless steel band.


I know that Serial port in Ac900F can serve to connect one external GPS sincronization device.
but What is the protocol for this sincronization?
Any GPS device with serial port can be used?
What characteristics should have the GPS?


Being a symbol of purity and innocence, pearls are always a popular choice for bridal jewellery. Browse GLAMIRA's pearl engagement rings for an extraordinary proposal.
Pearls and diamonds... There is no other combination that could bring together purity and perfection on a piece of jewellery.
Cherished as one of the unique wonders of nature, pearls are the best gift to show your affection. GLAMIRA offers the best pearl collection including pearl rings, pearl earrings and pearl necklaces with three colour option -white,black and rose. Catch the shiny glimpse of this perfect moon drop and let yourself feel special! Take a walk in the wonderland of pearls and adorn yourself with this symbol of purity and grace! GLAMIRA will be waiting for you there!


text:
package com.basicalgorithms.jiuzhang.chapter04_breadth_first_search;

import com.basicalgorithms.graph.UndirectedGraphNode;

import java.util.*;

/**
 * Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors.
 * How we serialize an undirected graph:
 * Nodes are labeled uniquely.
 * We use # as a separator for each node, and , as a separator for node label and each neighbor of the node.
 * As an example, consider the serialized graph {0,1,2#1,2#2,2}.
 * The graph has a total of three nodes, and therefore contains three parts as separated by #.
 * First node is labeled as 0. Connect node 0 to both nodes 1 and 2.
 * Second node is labeled as 1. Connect node 1 to node 2.
 * Third node is labeled as 2. Connect node 2 to node 2 (itself), thus forming a self-cycle.
 * Visually, the graph looks like the following:
 * _
 * _        1
 * _       / \
 * _      /   \
 * _     0 --- 2
 * _          / \
 * _          \_/
 */

@SuppressWarnings("ALL")
public class CloneGraph {

    public class SolutionEric01 {
        /**
         * @param node: A undirected graph node
         *
         * @return: A undirected graph node
         */
        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
            if (node == null) {
                return null;
            }

            final Set<UndirectedGraphNode> nodes = findAllNodes(node);
            final Map<UndirectedGraphNode, UndirectedGraphNode> cloneMap = new HashMap<>();
            for (final UndirectedGraphNode undirectedGraphNode : nodes) {
                cloneMap.put(undirectedGraphNode, new UndirectedGraphNode(undirectedGraphNode.label));
            }

            copyAllEdges(cloneMap);

            return cloneMap.get(node);
        }

        /**
         * Definition for undirected graph.
         * class UndirectedGraphNode {
         * int label;
         * ArrayList<UndirectedGraphNode> neighbors;
         * UndirectedGraphNode(int x) { label = x; neighbors = new ArrayList<UndirectedGraphNode>(); }
         * };
         */

        private Set<UndirectedGraphNode> findAllNodes(final UndirectedGraphNode node) {
            final Queue<UndirectedGraphNode> queue = new ArrayDeque<>();
            final Set<UndirectedGraphNode> visited = new HashSet<>();

            queue.offer(node);

            while (!queue.isEmpty()) {
                UndirectedGraphNode current = queue.poll();
                visited.add(current);

                for (final UndirectedGraphNode neighbor : current.neighbors) {
                    if (!visited.contains(neighbor)) {
                        queue.offer(neighbor);
                    }
                }
            }

            return visited;
        }

        private void copyAllEdges(final Map<UndirectedGraphNode, UndirectedGraphNode> cloneMap) {
            for (final UndirectedGraphNode key : cloneMap.keySet()) {
                final ArrayList<UndirectedGraphNode> newNeighbors = new ArrayList<>();

                for (final UndirectedGraphNode oldNeighbor : key.neighbors) {
                    newNeighbors.add(cloneMap.get(oldNeighbor));
                }

                cloneMap.get(key).neighbors = newNeighbors;
            }
        }
    }

    public class SolutionEric02 {
        /*
         * @param node: A undirected graph node
         * @return: A undirected graph node
         */
        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
            if (node == null) {
                return null;
            }

            final Set<UndirectedGraphNode> nodes = findAllNodes(node);
            final Map<UndirectedGraphNode, UndirectedGraphNode> nodeOldToNew = createNodeClones(nodes);

            cloneEdges(nodeOldToNew);
            return nodeOldToNew.get(node);
        }

        private void cloneEdges(final Map<UndirectedGraphNode, UndirectedGraphNode> nodeOldToNew) {
            for (final UndirectedGraphNode oldNode : nodeOldToNew.keySet()) {
                for (final UndirectedGraphNode oldNeighbor : oldNode.neighbors) {
                    final UndirectedGraphNode newNode = nodeOldToNew.get(oldNode);
                    newNode.neighbors.add(nodeOldToNew.get(oldNeighbor));
                }
            }
        }

        private Map<UndirectedGraphNode, UndirectedGraphNode> createNodeClones(final Set<UndirectedGraphNode> nodes) {
            final Map<UndirectedGraphNode, UndirectedGraphNode> nodeOldToNew = new HashMap<>(nodes.size());
            for (final UndirectedGraphNode old : nodes) {
                nodeOldToNew.put(old, new UndirectedGraphNode(old.label));
            }

            return nodeOldToNew;
        }

        private Set<UndirectedGraphNode> findAllNodes(final UndirectedGraphNode node) {
            final Set<UndirectedGraphNode> visited = new HashSet<>();
            final Queue<UndirectedGraphNode> queue = new ArrayDeque<>();

            queue.offer(node);
            while (!queue.isEmpty()) {
                final UndirectedGraphNode currentNode = queue.poll();
                visited.add(currentNode);

                for (final UndirectedGraphNode neighbor : currentNode.neighbors) {
                    if (!visited.contains(neighbor)) {
                        queue.offer(neighbor);
                    }
                }
            }

            return visited;
        }
    }

/**
 * 本代码由九章算法编辑提供。版权所有,转发请注明出处。
 * - 九章算法致力于帮助更多中国人找到好的工作,教师团队均来自硅谷和国内的一线大公司在职工程师。
 * - 现有的面试培训课程包括:九章算法班,系统设计班,算法强化班,Java入门与基础算法班,Android 项目实战班,Big Data 项目实战班,
 * - 更多详情请见官方网站:http://www.jiuzhang.com/?source=code
 */

// version 1: 3 steps

    /**
     * Definition for undirected graph.
     * class UndirectedGraphNode {
     * int label;
     * ArrayList<UndirectedGraphNode> neighbors;
     * UndirectedGraphNode(int x) { label = x; neighbors = new ArrayList<UndirectedGraphNode>(); }
     * };
     */
    public class Solution01 {
        /**
         * @param node: A undirected graph node
         *
         * @return: A undirected graph node
         */
        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
            if (node == null) {
                return node;
            }

            // use bfs algorithm to traverse the graph and get all nodes.
            ArrayList<UndirectedGraphNode> nodes = getNodes(node);

            // copy nodes, store the old->new mapping information in a hash map
            HashMap<UndirectedGraphNode, UndirectedGraphNode> mapping = new HashMap<>();
            for (UndirectedGraphNode n : nodes) {
                mapping.put(n, new UndirectedGraphNode(n.label));
            }

            // copy neighbors(edges)
            for (UndirectedGraphNode n : nodes) {
                UndirectedGraphNode newNode = mapping.get(n);
                for (UndirectedGraphNode neighbor : n.neighbors) {
                    UndirectedGraphNode newNeighbor = mapping.get(neighbor);
                    newNode.neighbors.add(newNeighbor);
                }
            }

            return mapping.get(node);
        }

        private ArrayList<UndirectedGraphNode> getNodes(UndirectedGraphNode node) {
            Queue<UndirectedGraphNode> queue = new LinkedList<UndirectedGraphNode>();
            HashSet<UndirectedGraphNode> set = new HashSet<>();

            queue.offer(node);
            set.add(node);
            while (!queue.isEmpty()) {
                UndirectedGraphNode head = queue.poll();
                for (UndirectedGraphNode neighbor : head.neighbors) {
                    if (!set.contains(neighbor)) {
                        set.add(neighbor);
                        queue.offer(neighbor);
                    }
                }
            }

            return new ArrayList<UndirectedGraphNode>(set);
        }
    }

// version 2: two steps

    /**
     * Definition for undirected graph.
     * class UndirectedGraphNode {
     * int label;
     * ArrayList<UndirectedGraphNode> neighbors;
     * UndirectedGraphNode(int x) { label = x; neighbors = new ArrayList<UndirectedGraphNode>(); }
     * };
     */
    public class Solution02 {
        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
            if (node == null) {
                return null;
            }

            ArrayList<UndirectedGraphNode> nodes = new ArrayList<UndirectedGraphNode>();
            HashMap<UndirectedGraphNode, UndirectedGraphNode> map
                    = new HashMap<UndirectedGraphNode, UndirectedGraphNode>();

            // clone nodes
            nodes.add(node);
            map.put(node, new UndirectedGraphNode(node.label));

            int start = 0;
            while (start < nodes.size()) {
                UndirectedGraphNode head = nodes.get(start++);
                for (int i = 0; i < head.neighbors.size(); i++) {
                    UndirectedGraphNode neighbor = head.neighbors.get(i);
                    if (!map.containsKey(neighbor)) {
                        map.put(neighbor, new UndirectedGraphNode(neighbor.label));
                        nodes.add(neighbor);
                    }
                }
            }

            // clone neighbors
            for (int i = 0; i < nodes.size(); i++) {
                UndirectedGraphNode newNode = map.get(nodes.get(i));
                for (int j = 0; j < nodes.get(i).neighbors.size(); j++) {
                    newNode.neighbors.add(map.get(nodes.get(i).neighbors.get(j)));
                }
            }

            return map.get(node);
        }
    }

// version 3: Non-Recursion DFS

    /**
     * Definition for undirected graph.
     * class UndirectedGraphNode {
     * int label;
     * ArrayList<UndirectedGraphNode> neighbors;
     * UndirectedGraphNode(int x) { label = x; neighbors = new ArrayList<UndirectedGraphNode>(); }
     * };
     */
    class StackElement {
        public UndirectedGraphNode node;
        public int neighborIndex;

        public StackElement(UndirectedGraphNode node, int neighborIndex) {
            this.node = node;
            this.neighborIndex = neighborIndex;
        }
    }

    public class Solution03 {
        /**
         * @param node: A undirected graph node
         *
         * @return: A undirected graph node
         */
        public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) {
            if (node == null) {
                return node;
            }

            // use dfs algorithm to traverse the graph and get all nodes.
            ArrayList<UndirectedGraphNode> nodes = getNodes(node);

            // copy nodes, store the old->new mapping information in a hash map
            HashMap<UndirectedGraphNode, UndirectedGraphNode> mapping = new HashMap<>();
            for (UndirectedGraphNode n : nodes) {
                mapping.put(n, new UndirectedGraphNode(n.label));
            }

            // copy neighbors(edges)
            for (UndirectedGraphNode n : nodes) {
                UndirectedGraphNode newNode = mapping.get(n);
                for (UndirectedGraphNode neighbor : n.neighbors) {
                    UndirectedGraphNode newNeighbor = mapping.get(neighbor);
                    newNode.neighbors.add(newNeighbor);
                }
            }

            return mapping.get(node);
        }

        private ArrayList<UndirectedGraphNode> getNodes(UndirectedGraphNode node) {
            Stack<StackElement> stack = new Stack<StackElement>();
            HashSet<UndirectedGraphNode> set = new HashSet<>();
            stack.push(new StackElement(node, -1));
            set.add(node);

            while (!stack.isEmpty()) {
                StackElement current = stack.peek();
                current.neighborIndex++;
                // there is no more neighbor to traverse for the current node
                if (current.neighborIndex == current.node.neighbors.size()) {
                    stack.pop();
                    continue;
                }

                UndirectedGraphNode neighbor = current.node.neighbors.get(
                        current.neighborIndex
                );
                // check if we visited this neighbor before
                if (set.contains(neighbor)) {
                    continue;
                }

                stack.push(new StackElement(neighbor, -1));
                set.add(neighbor);
            }

            return new ArrayList<UndirectedGraphNode>(set);
        }
    }
}


Howdy! Let me tell you about our Maintenance Control Program (MCP). This is the most dynamic part of the industry right now and it's exciting to be on the front end, since Washington recently became the first state in the nation to enforce a code-compliant MCP. The MCP requires that every part of every elevator be inspected, maintained, and tested according to a very detailed set of codes. So, ELTEC has assembled a crackerjack team of our best and brightest mechanics who meet regularly to refine the MCP methods and procedures in order to ensure the highest quality of service and safety.
If you have an elevator that's new or old, big or small, whatever the case, we tailor our MCP to fit your needs. We are on your team! It's your elevator, and we have the best plan on the market to take care of it.


text:
2017 and Before · General News
Gateway Family Services Awarded Social Enterprise Mark
Gateway Family Services
Gateway Family Services has been awarded the Social Enterprise Mark in recognition of the work it does to help people overcome barriers to learning, employment and access to community healthcare.
There are 400 markholders across the UK – and it isn't given lightly. It shows that a company is committed to social or environmental objectives, and can be trusted.
Vicki Fitzgerald, Chief Executive, is delighted with the award. For her, it is one more proof that Gateway's work contributes to eliminating the causes of deprivation.
"Service users arrive here unprepared for the workplace but we enable them to become work-ready and qualified; some even leave their training already employed. We aim to reduce inequality by bridging gaps in public service delivery and working in partnership with the NHS and local authority. Gateway creates specific job roles to address deprivation, such as our Pregnancy Outreach Workers", she says.
The Social Enterprise Mark will give Gateway a competitive edge and it will also be used to promote the social enterprise movement in general. For the company it will be an opportunity to demonstrate that what it does, and its profits help communities in the long term.


text:
Capacity Solar Hydrogen PPA In French Guiana
EDF Turns Offtaker For World's 'Largest' Green Hydrogen-Power Project
HDF Energy is building the CEOG project (artist's impression in the picture) in French Guiana with Meridiam, SARA, and McPhy that's supplying 16 MW electrolyzer capacity, a solar and battery backup storage system. (Source: HDF Energy)
HDF Energy has signed a 25-year PPA with EDF for a green hydrogen power project in French Guiana
The project will have 55 MW solar PV, 16 MW electrolyzer and 128 MWh of green hydrogen storage capacity, along with battery storage for short-term energy storage
It will produce baseload power 24×7 to produce stable and dispatchable power for a cost lower than a diesel project, to power 10,000 households
HDF Energy said similar projects are being replicated in various regions including Mexico, Caribbean Island nations, Southern Africa, Indonesia and Australia
Hydrogen energy specialist from France, HDF Energy has secured a 25-year power purchase agreement (PPA) with compatriot utility EDF for what it calls as the world's 1st multi-MW hydrogen power plant and the largest green hydrogen storage (128 MWh) of intermittent electricity sources, in French Guiana.
HDF Energy believes it is the 1st time that a renewable energy project will supply power to the grid through a capacity-based PPA, which is usually applied for thermal power plants, thereby guaranteeing the availability and stability of electricity produced.
Explaining the importance of this project, HDF Energy said it is designed to supply 100% renewable, stable and dispatchable power to 10,000 households at cost lower than the diesel power plant. The Renewstable Power Plant, as it refers to the project, optimizes and brings together a solar park, a hydrogen long-term energy storage and a battery for short-term energy storage, to produce baseload power 24×7.
The Centrale Electrique de l'Ouest Guyanais (CEOG) project was back in September 2018 was touted to have 55 MW solar PV park with 140 MWh of hydrogen based renewable energy storage capacity, along with battery backup storage (see Investment Firm Acquires Share in PV-Hydrogen Park).
The $200 million project is now under construction by the consortium that also comprises infrastructure fund Meridiam and petroleum company SARA of Rubis Group.
While HDF Energy itself will supply multi-MW hydrogen fuel cells, French electrolyzer producer McPhy will supply 16 MW of its high-power systems. It said this would be the 1st outdoor configuration of its alkaline electrolysis, 'ideal for installation in hard-to-reach geographical areas'. McPhy plans to have it commissioned in 2024.
HDF Energy claims to have identified a pipeline of $3 billion for similar projects in some 20 nations including Mexico, Caribbean Island nations, Southern Africa, Indonesia and Australia.
CEOG French Guiana
HDF Energy
PreviousChina PV News Snippets
NextGermany: 434 MW Solar In August 2021


It will help if I can get an Excel file with the name of the CDS view, some description to explain the reporting function it offers and list of fields available in that CDS view...... How to Create ABAP CDS Views with Input Parameters on SAP HANA and how to input parameter and consume ABAP Core Data Services View on SAP HANA. The new enhanced version of ABAP CDS is delivered with SP 8 of ABAP application server 7.4.
How to Create ABAP CDS Views with Input Parameters on SAP HANA and how to input parameter and consume ABAP Core Data Services View on SAP HANA. The new enhanced version of ABAP CDS is delivered with SP 8 of ABAP application server 7.4. cambridge ib math hl textbook pdf Selects all entries which exists in both tables which meet ON condition. Below is the sample ABAP CDS views in which INNER JOIN is used among 3 tables to get the so_id, so_item_pos, product_id, amount and currency_code.
Hi,I am working on S4 HANA POC. Can someone please explain the following scenarios1. How to use CDS view in HANA views? (Calculation view or Analytical)Can we consume CDS view in HANA view and make report on top of that?2. How to consume CDS view in BW HA java pdf viewer open source An association in CDS view joins different data sources. Defining and using associations is a high-value wrapping of the syntax for joins . A CDS View with association between SPFLI & SCARR table.
useful if you want to use an SQL query to access an SAP HANA view in a way that isn t supported using Open SQL, such as a fuzzy search in an attribute view (see Chapter 10, Sectio n 10.4).
Selects all entries which exists in both tables which meet ON condition. Below is the sample ABAP CDS views in which INNER JOIN is used among 3 tables to get the so_id, so_item_pos, product_id, amount and currency_code.


THIS VEHICLE IS LOCATED AT BIRMINGHAM LUXURY MOTORS *SOUTHSIDE* 3501 4TH AVENUE SOUTH BIRMINGHAM, AL 35222 Our athletic 2017 Honda Accord Sport Sedan is pouring on the charm in White Orchid Pearl! Powered by a 2.4 Liter 4 Cylinder that offers an impressive 189hp while connected to a innovative CVT. Our Accord is highly reliable, comfortable and a pleasure to own and drive as it delivers near 34mpg plus Honda continually sets the benchmark for success. Immediately eye-catching and altogether irresistible, our Accord Sedan Sport exudes classic good looks with modern sophistication with beautiful alloy wheels, LED fog lights, and aggressive grille. The interior of our Sport is filled with comfort and refinement as it has been crafted with your needs and demands in mind. Find your comfort in the 10-way power-adjustable driver's seat as you take note of amenities such as a multi-angle rearview camera, Bluetooth Handsfree Link and Streaming Audio, a 60/40 split fold-down rear seat back, and a leather-wrapped steering wheel. This thoroughly modern machine is going to impress you at every turn! This Accord from Honda is an exceptional blend of performance, efficiency, and amenities, it also enjoys a sterling reputation for safety with anti-lock disc brakes, stability and traction control, active front head restraints, front-seat side airbags and side curtain airbags. This Accord an is a smart choice all-around! Print this page and call us Now... We Know You Will Enjoy Your Test Drive Towards Ownership!
Hello, I would like more information about the 2017 Honda Accord Sedan, stock# 032918.
Hello, I would like to see more pictures of the 2017 Honda Accord Sedan, stock# 032918.


Less than 24 hours after being posted to the DonorsChoose website, our project, Help Our Students Fall in Love with Reading, was fully funded! Thanks to donations from family, friends, and generous strangers, more than 60 brand new, engaging books are on their way to Johnson. These books will be awarded to our Book It Lottery winners throughout the rest of the school year.
The timing couldn't be better, as our first Johnson students just reached their Book It goals and filled out lottery tickets this morning!
Not only was our project fully funded, but we received a surplus of donations that will go towards our next DonorsChoose project to benefit Johnson Elementary School students. I am absolutely floored by the generosity and kindness shown by the Charlottesville community, the DonorsChoose community, and the educational community all over the world.
Keep an eye on the blog to find out about upcoming projects and collaborations with DonorsChoose.
DonorsChoose: Johnson's Book It Program needs your help!


Our monthly subscription box gives you the convenience of having our tasty protein balls in your cupboard all the time - helping you to resist those unhealthy snacks and allowing you to enjoy on-the-go goodness every day.
Our protein balls are the perfect snack for children or adults and are great as a healthy sweet treat at picnics or days out with the family, before or after a workout, or just as a snack in between meals. Get the extra protein that you need into your vegan diet with our delicious plant based protein balls.
Our high protein subscription taster box contains three 45g bags of each of our vegan, plant based flavours - Lemon + Pistachio, Goji + Coconut, Peanut Butter + Jam (NEW) and Raspberry Brownie (NEW).
Sign up to our monthly newsletter + get 10% off your 3 month subscription. Offer ends 31st October 2017.
Thank you! Be sure to confirm your sign up to newsletter on your email now.
Please use buy button below to get your 10% off!


text:
Q: Is there any minimal covering number other than 12 that is primitive abundant? Recall, a collection of congruences with distinct moduli, each greater than 1, such that each integer satisfies at least one of the congruences, is said to be a covering system (or a covering system of distinct congruences). Given a covering system, we will define $m$ to be the LCM of the moduli, and we will by slight abuse of notation refer to $m$ as the LCM of the moduli.
It is well known and an easy exercise that for any covering system, $m$ must be abundant, that is that $\sigma(n)>2n$ where $\sigma(n)$ is the sum of the positive divisors of $n$.
Note that if there exists a covering system $S$ with modulus $m$, then there is a covering system with modulus $km$ by just taking the $S$ throwing in a redundant restriction mod $km$. We can thus talk about minimal covering numbers, where by a minimal covering number we mean a number $m$ such that there is a covering system where  $m$ is the LCM of the system, but where no proper divisor of $m$ is if the LCM of a system.  The sequence of minimal covering numbers is A160559 and begins $12$, $80$, $90$, $210$... .
This sequence is infinite. In particular, for any odd prime $p$, $2^{p-1}p$ will be in this sequence.
A number is said to be a primitive abundant number if $\sigma(n)>2n$ and no proper divisor of $n$ is an abundant number. The motivation for this is very similar to that of the minimal covering number, namely noting that any multiple of an abundant number is abundant. A  minor note of terminology: some authors define a number to be primitive abundant if $\sigma(n) \geq 2n$ and $n$ has no proper divisor satisfying that inequality(which would allow one to include perfect numbers as primitive abundant). We will not be doing so here, although doing so would allow us to delete the "other than 12" from the title question.
The question in the title  has two motivations which both suggest that the answer is "no."
First, the fact that minimal covering numbers must be abundant is in practice a very weak statement. Generally, the smallest abundant divisor of a minimal covering number is much smaller than the  number. For example, 80 is a minimal covering number, and its smallest abundant divisor is 20.
More generally, if $p$ is an odd prime, then $2^ap$ is either a perfect or primitive abundant number where $a=\lfloor \log_2 p \rfloor $. So if $m$ is a minimal covering number of the form $2^{p-1}p$ then $m$'s smallest primitive abundant divisor is of order $\log m$.
Second, there is an open problem of Erdos and Selfridge asking whether there  is any covering system with all moduli odd. This is equivalent to asking whether the minimal covering numbers are always even. Here, the size of such an $m$ must be very large under some reasonable assumptions. For example, $(3)(5)(7)(11)(13)$ is an odd primitive abundant number  but there's a paper  by Song Guo, Zhi-Wei Sun that shows that an odd square free $m$ must have at least 22 distinct prime divisors. So, it seems like in the hypothetical case of odd $m$, in at least the squarefree situation, we'd expect such an $m$ to be large compared to the smallest squarefree primitive odd abundant numbers.
This motivates the title question of whether 12 is the only minimal covering number which is a primitive abundant number.
One thing to note which leads to a related question: One can have minimal covering systems with $\frac{\sigma(m)}{m}$ arbitrarily close to 2, and the subsequence of $2^{p-1}p$ is an example of such. This leads to the second question: Is there some non-trivial improvement of this sort of inequality for minimal covering systems? In particular, can we find a slow growing increasing function $f(x)$ such that if $m$ is a minimal covering then $$\sigma(m) \geq 2m\left(1+\frac{1}{f(m)}\right)$$ and where that same inequality is not satisfied by all sufficiently large primitive abundant numbers? There are inequalities in the Sun and Guo paper that are almost of this form, but there one seems to need a function $f(x)$ which takes in input about the prime factorization of $m$ and so isn't an increasing function. This question may also be relevant.


text:
FIRST ISSUE ON CD - BOOKLET WITH LYRICS _NEW MASTERING -Formed in 1979 by Ottawa-born Ron Chenier, singer/ guitarist, recruited players and began honing their chops doing small clubs in and around the Toronto area. The band quickly graduated to the 'B circuit', touring the eastern-Canadian/ US areas for the next year and a half. The group took their approach to music into the studios and cut their independently released ROUND ONE in the spring of 1979. The band's sound was dominated by guitars and keyboards with no in studio tampering. Produced by the Chenier's brother Norman (Jack) and was recorded on a shoestring budget. Songs "Too Late", "Madness" and "Who Did You Love" showed the band's penchant for writing driving, simple, yet complex songs. Fist returned to the road and toured practically every corner of the eastern half of the continent for the next year. The band was signed to a worldwide deal with A & M in the summer of 1980 and quickly returned to the studio. They emerged from Toronto's Amber Studios that fall and released HOT SPIKES. The band regrouped, and with a new release, FLEET STREET in '81. "Double Or Nothing" again showcased Chenier's talent for writing slick, guitar riffs, while "Thunder In Rock" was easily the year's best tune on the radio waves. With the clever addition of a sax solo, "Thunder In Rock" is probably most synonymous with Fist's music, if any song is at all. However, other killer cuts included "Open The Gates", the title track and "Evil Cold". Backed by the album's success, the group took the show on the road again, this time playing outdoor festivals with the likes of Heart, Motor Head, Krokus, Scorpions and many more. Fleet Street, Canada AKA Thunder In Rock, US/ Europe, are the same album but with different covers for each country. This was Fist's third album, produced and engineered by Steve Vaughn. The album received worldwide airplay in 1981 and sales sustained a constant Top-10 status. This resulted in Fist going out on the first "Monsters of Rock" tour which was comprised of Motorhead, Krokus and Fist across Canada and the US. Returning for their own headlining tours in Canada.
Label: BAD REPUTATION
Fleet Street [With Booklet] [Remastered] (Uk)
Artist: Fist
1. Double or Nothin'
2. Thunder in Rock
3. Leather' N Lace
4. On the Radio
5. It's Late
6. Better Way to Go
7. Evil Cold
8. Fleet Street
9. Open the Gates


text:
2 SMBs Save Time and Money With Azure
10 Nov 2015 by Jessica Hall
Small and Medium Businesses (SMBs) need sophisticated capabilities to keep up with changing customer demands while managing costs — just as enterprises do. SMBs have customers with high expectations, too. Microsoft Azure can help you meet and exceed those expectations with a flexible and familiar platform you can trust.
Here are two examples of how Azure is helping SMBs create innovative solutions, get them out to their customers quickly — and without breaking the bank.
Simplifying the voting process
Democracy Live is a startup in Seattle with a noble mission: to make it easier for people to vote while also reducing the cost of holding elections. The company launched its LiveBallot application in 2010, which provides the ability to vote online for those who wouldn't otherwise make it to the polls — including people with disabilities, those in the military and Americans living abroad.
LiveBallot uses the cloud-computing platform to host and process data. The decision to use this solution was rooted in efficiency. Bryan Finney, president of Democracy Live, says the previous process of transforming voter ballots into a format suitable for tabulation was a manual task that could take days or even weeks. He says the Azure-based application significantly reduces the time and work involved in the overall election process.
Of course, as with any government process, moving things online presents security concerns. But Nan Jackson, director of marketing for Democracy Live, says Microsoft's reputation and the security of Azure have allayed trepidation and gained the trust of election officials.
"Microsoft Azure is synonymous with security, which is extremely important to our clients," she explains. "Democracy Live's LiveBallot solutions, using Microsoft Azure, help elections officials meet ADA [Americans with Disabilities Act] and HAVA [Help America Vote Act] requirements by providing increased accessibility and ensuring privacy for 35 million voters with disabilities in the U.S."
Accelerating time to market
Archive Systems offers a unified document management solution that helps companies use less paper. The product, FileBRIDGE, was built on the Microsoft Azure platform, greatly improving the SMBs' ability to save money and serve the European market.
"The Microsoft Azure platform enables us to accelerate time to market while minimizing our investment," says Jim Farrell, senior vice president of product development at Archive Systems. He says their teams can now move quickly on new projects because of the expertise they have with other Microsoft products. "The Microsoft Azure platform also provides the largest compliance portfolio in the industry — more than 30 international and industry-specific standards."
The company has also saved time and money, as there was no need to invest significant capital in infrastructure in other regions of the world. "No trips to Europe were required," Farrell jokes. In using Azure, Archive Systems is able to support the environment and make configuration changes remotely. "By leveraging Azure, we're able to quickly scale infrastructure to meet demand while still only paying for the infrastructure resources we use," Farrell says.
If your SMB has needs similar to these companies, and you're ready to learn more, talk to a specialist today.