text:
Shuffle it
Coming from the muddy world of javascript, I've always desired cleaner code, not only from myself, but from the community as well. I tried to achieve that by creating a small language that parses to javascript, as so many others have done before me. It's based on Joy, developed by Manfred von Thun over a decade ago, although it seems to have been abandoned. A similar language, Forth, was already developed back in the sixties, and is still actively used in embedded computer systems. Like other "purely functional" languages the core mechanic is the mathematical function. Mathematical functions perform operations on a number of values, and return a new value, not touching anything else in the program. Unlike other functional languages, the functions – or rather, "words" – in Joy (and Forth) have no formal parameters. Consider the following function in javascript:
function add(a,b) {
return a + b;
add(2,2);
Parameters 'a' and 'b' are needed to create the purely mathematical add function (indeed, I just made a common JS operator into a word...). Instead of using parameters, functions in Joy operate on a stack, which is always available to the program. By simply writing values and words in a left-to-right order, the stack is both appended to and consumed. A simple example of adding two integers:
2 2 add
As can be clearly read from this example, two integers are appended to the stack, and lastly the addition function is executed on those two integers on the stack, which are then discarded. After the operation the integer 4 is left on the stack. Had the program continued, that value could have been used for new operations, for example:
2 2 add 3 multiply
Which obviously leaves 12 on the stack.
The advantages of a stack-based programming style for the web is quite evident, as it's pure, concise and presupposes little knowledge of the syntax. Furthermore it doesn't require knowledge on the more complex subject of function composition, as you can simply read the flow of the program. But there's a catch: there are no temporary placeholders other than the stack. So what do you do when you have some value that you need further down the line? As you now know, words consume values on the stack. How do you retain values until you actually use them?
Let's assume that you need to count the number of items in a list, and that value is needed more than once. Counting items in a list is an operation that you'd only want to do once, not only for performance benefits, but because it makes sense. The following program creates a list and counts the items (the list is created just for the example, normally it would have been put on the stack by another operation):
1 2 3 list count
This would leave 3 on the stack. Next, the result is tested for equality, which puts a boolean on the stack. However, this would consume the value (3) that we need further in the program, and so it needs to be duplicated. The first indented line gets executed when the result is true, the second when it's false:
1 2 3 list count dup 2 eq if
4 add
As you may already figured out, dup introduces another kind of operation that is not part of the flow of the program, but is simply there to retain a value that would otherwise be lost forever. These kinds of operations are called stack shuffling. You might even argue that a language like Forth didn't become mainstream because of the lack of temporary placeholders. But, since it hasn't got any, stack shuffling is a dire necessity. It also puts a great burden on the programmer's mind, who has to keep track of what is on the stack at all times. Furthermore, the programmer needs to make choices what to do first and what to retain for later, making code harder to revise.
Stack shuffling has become a true skill in itself, with a number of techniques that make it more endurable, but in the end a person like me can only take up so much stack space in his own mind. In the end it wasn't the program, but the programmer who had a 'stack overflow'. My enthusiasm for stack-based programming eventually died and I went back to the good old functions with parameters, and the good old placeholders for temporary values.
Posted by wshager at 7:39 PM No comments: Links to this post
A web developer's unrest #2
This is a small series of blog posts where I try to find out how to best build UI components for the web. I build on Dojo, but for its upcoming 2.0 release, a decision is yet to be made on the successor of its widget system, Dijit. In this series I compare Dijit with some newer techniques now available for creating UI components, with the ultimate goal to be able to decide upon a long-term strategy myself.
Part 2: State
State is a bit of a neglected fire hazard in UI tools. The danger is that there are so many changes going on in your components that you tend to loose track. This is especially true when you have a single-page application. Dijit doesn't force you to create single-page applications, but when you run many components it makes sense to work that way, especially once you start handling navigation. That may seem like a bad idea, but it does give you full control of the program, its data flow and persistence, DOM rendering, transitions/animations, even styling, but comes with the ultimate price: you, the developer, have to manage state. That is as far removed from traditional web pages as one can get, because the WWW is initially stateless: client state is not retained by the browser.
Back in the day, Javascript libraries used to extend the DOM. Dojo chose instead for decoupling, where isolated pieces of code render and control a portion of the DOM. As a consequence, Dijit is entirely stateful: each instance of a Dijit inherits first from the Stateful class, which ensures it has a "get", "set" and "watch" method, and so its own internal state. Updates of the instance's properties may be reflected in its DOM attachment. Although most changes are shielded from the API, it does mean that when you want to create a custom component, you have to master Dojo's way of managing state. It is perhaps mostly due to this aspect that Dojo is said to have a steep learning curve.
A good reason to introduce state is for example the support of WAI-ARIA for custom components, to make them accessible to people with disabilities. In other areas it's less obvious. For instance, Dijit's layout is managed through a diversity of containers and content panes that can be nested to create desktop-like screens. Any resizing of a container sets off a chain of calculations, each retained in the widgets concerned for optimization. This was introduced to enable a layout system in older browsers, but can and should be avoided nowadays.
How does Polymer deal with state? It is handled firstly by two-way data binding: properties are stored in plain old objects, referred to as the "model". The DOM is hijacked: Javascript is fooled into interacting with the model as if that were the DOM itself. So, when the model changes, the DOM changes, but also vice versa (hence two-way data binding), entirely in sync. What I just called "hijacking" is an alternative way to avoid extending the native DOM, and more sophisticated than keeping pointers. This means there's a bit less state involved, but this doesn't mean that Polymer is entirely stateless: the state is in the model, and managing it can become as opaque as it can become with Dijit.
Finally, while looking at how React.js handles state, the first thing that struck me was that there's actually a property explicitly called "state"! There are also methods that seem to pertain exclusively to handling state. Apparently the React.js developers are coming more from a functional programming paradigm, as in functional languages state is something you have to achieve, rather than it being at the basis, like in javascript. However, at the top of the developer's guide it says: Components are Just State Machines. So much for introducing state where it ought to be, and not throughout the component library, right? Wrong! React explicitly tells us to not use state everywhere, but only where needed:
Most of your components should simply take some data from prop[ertie]s and render it. However, sometimes you need to respond to user input, a server request or the passage of time. For this you use state. Try to keep as many of your components as possible stateless. By doing this you'll isolate the state to its most logical place and minimize redundancy, making it easier to reason about your application.
With the above quote I end the second part of my attempt to find my bearings in UI development in the year 2015.
Posted by wshager at 12:51 AM No comments: Links to this post
A web developer's unrest
Being a long time Dojo Toolkit zealot, I was eager to see what would become of its upcoming 2.0 release. I can't say I'm disappointed, not at this point at least, but I do experience some unrest. This is not only because of the general direction Dojo is headed (TypeScript), but also because of the obvious difficulty the team has in deciding on a UI component solution. To my knowledge it is generally agreed that the current widget facility in Dojo (Dijit) is no longer deemed viable.
I expect that the core Dojo contributors have already made some sort of overview of their options, but I have not. For my own insight I'll attempt to sketch out the current developments in UI techniques, clearly with the ultimate goal to be able to decide upon a long-term strategy myself. Since this will all become very TL;DR I will divide the post into topics. I also promise to make a chart at the end of the series, to show all considerations at a glance. Today I'll start with code reuse, comparing Dijit with some newer techniques now available.
Part 1: code reuse
Dijit is an object-oriented widget library that builds on the core technique of Dojo's class-based approach to code reuse through modularity: the "declare" mechanism. The "declare" function takes as its main parameter a list of classes that are mixed together to form a new class. Inheritance is ordered from left-to-right: each class can call this.inherited(arguments) in any method in order to execute its counterpart in the preceding class. This way a chain of inheritance is formed that is able to reach all the way back up to the first class in the list. This manner of ordering stems from a solution to the problem that arises with multiple inheritance. It is called C3 linearization, and is found in some serious object-oriented languages. Not for the faint of heart, and definitely not something you would expect to find in a web tool.
As far-fetched as C3 linearization may sound, it is not the reason Dijit is on the way out, on the contrary. The initial replacement of Dijit was to be Delite, a project backed by IBM. It takes the same approach to code reuse, but differs from Dijit on other points, as I will discuss later in this series.
A solution for mixing classes together was also discussed for the next version of Javascript, ECMAScript 6. The proposal has been revised many times on this point, and still remains a topic of debate, but as it now stands the inheritance model will follow that of firmly established object-oriented dinosaurs, such as Java and C#. Although ECMAScript 6 doesn't embrace the Dojo solution, Dojo's approach to object-oriented Javascript did play a role behind the scenes. In addition, the solutions Dojo proposed for reusable components didn't stop with multiple inheritance, and the exploration for new patterns continues to this day. I won't go into detail about those here, because that was not the intended topic. However, it is likely that they will persist in Dojo 2.0.
So how do other tools solve the problem of re-usable code? Some more recent players of major import are Polymer and React.js. To start with Polymer, it's a project aimed at enriching markup, and does so by encapsulating it, together with Javascript and CSS, into a single component. Because the focus is on markup, one would expect the possibility for extension to be limited. However, there is some room for code reuse through mixins, which, instead of mixing together classes, does so with instances. This means there's no chain of inheritance, but it's arguable if that was necessary in the first place. Polymer proposes to simply reuse what behavior is in another piece of code, as if it were a container of functionality, and that's a valid way to make use of Javascript's inherent features.
Although Polymer (or rather, web components) doesn't support Dojo's multiple inheritance model, it's very much related to Dijit, and one could argue that it has it's origins in it. The goal of Dijit was also to create a landscape of encapsulated, albeit interdependent, widgets. Although Dijit requires almost half of the stuff in the Dojo tool chain, it does rather well at separating concerns. And although Polymer is presented as the future of the web (because, hey, it's web components) it also needs to download quite a bit of code to get started.
React.js is a radical departure from Dijit, but also from Polymer. It is more concerned with updating the user interface efficiently than with component encapsulation. Perhaps it would be possible to make use of React's fast UI rendering without using its component engine, but it would be quite an undertaking. React's engine is build around an in-memory representation of the document tree: instead of updating the actual document tree that the browser renders, all manipulation is done on the "virtual DOM".
Every time a change occurs due to some outside event, the virtual DOM is reloaded. A batch of changes are compared to the previous snapshot, and the differences are then rendered to the UI. This diffing is what makes React so efficient, but there is some critique on the component side of React. Because the components need to interact with the virtual DOM, all native parts of the component need to be "virtualized", including its markup and styling. Although these are mere technical limitations that at some point will be overcome, the question remains if it is a good idea to work with an in-memory copy of the document tree, and to basically overwrite the default behavior of the browser software, at all times.
As to the re-usability problem, React has chosen to completely abandon the idea of multiple inheritance and mixins, in favor of "higher-order components". put development of multiple inheritance and mixins on hold, since it's not a part of upcoming ECMAScript standards. When googling for React and mixins, I came across an interesting alternative to mixins, proposed by React developer Sebastian Markbåge: higher-order components. All this means is that a container of reusable code is bound to a component. This can be achieved by simply wrapping the component in a function, and calling the function with the container as its argument. The container will remain in the scope of the function, and so accessible to the component. One could argue that this is very much like mixins, with the important difference that the technique is available in plain vanilla Javascript, and doesn't require any boilerplate code for mixins, let alone C3 linearization. If the concept will hold for more complex cases remains to be seen.
This concludes the first part of my attempt to find my bearings in UI development in the year 2015.
Update 06/22/2015: the assumption that React would move away entirely from mixins seems to be incorrect. The resource I used was authored by a React contributor, and not (yet) part of official documentation. Source: https://medium.com/@dan_abramov/mixins-are-dead-long-live-higher-order-components-94a0d2f9e750
JQuery critique (dis)continued
Some time ago I posted a not so nice attack on jQuery, which I removed. Before that I posted a critique of jQuery that I myself find constructive and informative, but was nonetheless a bit random and incomplete. Moreover, it was also a shameless plug for a new technique I created myself: a stack-based, concatenative language that parses to Javascript in the browser. However, I have stopped working on it, as I think that stack-based languages are hard because of the mental bookkeeping you have to do on the stack. Sure, that is a perfect brain trainer, and there are ways to make the exercise less cumbersome, but I don't expect a mere fraction of jQuery users will ever warm up to such a niche technique. To cut it short, this introduction serves as an apology to both the reader and the user of jQuery, for whom it has created huge opportunities. But now to end my critique of the bling chain once and for all.
First of all, I'm no user of jQuery and never have been. The reason for my crusade against it has been the isolation I experienced in relation to the community of fellow web developers that created content based solely on jQuery. It would have been beneficial to my work (and perhaps that of others) if a more open technique would have been embraced. I've never found a community that completely fitted into my personal view, but the overall enthusiasm the past years for jQuery has put me off again and again. I know that at the moment the world of web development is going through a major shift, and my critique has become less relevant. However, I would like to put it out there, to try and prevent developers from making the same mistake in upcoming solutions.
JQuery is a catchall. You can just throw anything into $() and you don't have to care what comes out at the other end of the chain. You use .get() to evaluate the result, which can be anything, from a DOM node to an event handler. I suppose this is simply caused by organic growth of the library: first it was just a uniform way to query and transform DOM, but as the library grew, so did the types of data that were processed in this style. The uniformity obviously served a purpose back when you had so many browser incompatibilities, but it was never a good programming practice to begin with, as type systems have mattered since the dawn of computation. Actually, proper typing and other standards have probably been slow to develop in Javascript because of the popularity of jQuery. I think a lot of people underestimate the damage it has done, because it lacks any formalization, mainly regarding but not limited to the following:
what the input is that $ operates on
what types are allowed in that input
what the types are of the throughput
what the semantics are that operate on the throughput
how to consistently extend those semantics
In short, jQuery lacks what constitutes a proper programming language, while it does insist on a uniformity that diverts from its "host language", Javascript. One might say jQuery is just a pattern, and one that will get the job done quickly, but this pattern comes at a price: it is not compliant with any ECMA standard and cannot be transparently ported to one. Moreover, due to the lack of formalization, it could not and never will become a de facto standard.
Anecdote: I once came across a widget where an XMLHttpRequestUpload instance was thrown into $() just so bind() could be called. Imagine doing that with document.querySelectorAll... The point here is that typing doesn't necessarily has to be enforced, but using a tool that doesn't even adhere to best practices in this regard should not have been allowed to become this successful. It shows what little formal knowledge its large user-base has, and I don't say this to insult anyone. To conclude, I found a video on the internetz from 2012, where a designer makes some valid points about jQuery. Though not from a formal background, the speaker instinctively finds some flaws that I need not repeat here, but in my opinion the community should have taken note of back then.
https://youtu.be/3D1WeSCSkPQ


text:
Tag: Sisterly crossword clue
1206-21 NY Times Crossword 6 Dec 21, Monday
Constructed by: Emily Rourke
Today's Reveal Answer You've Got Mail
Themed answers each start with something found in YOUR MAIL:
55A 1998 Hanks/Ryan rom-com … or a hint to the starts of 20-, 34- and 41-Across : YOU'VE GOT MAIL
20A Early addendum to the Constitution : BILL OF RIGHTS
34A Gutenberg invention : LETTERPRESS
41A Sauna plus massage at a spa, perhaps : PACKAGE DEAL
Bill's time: 6m 08s
1 Thick rugs : SHAGS
Shag carpet is one with a deep pile, one with a "shaggy" appearance.
10 Pack (down) : TAMP
To tamp is to pack down tightly by tapping. "Tamp" was originally used specifically to describe the action of packing down sand or dirt around an explosive prior to detonation.
14 No-no : TABOO
The word "taboo" was introduced into English by Captain Cook in his book "A Voyage to the Pacific Ocean". Cook described "tabu" (likely imitative of a Tongan word that he had heard) as something that was both consecrated and forbidden.
15 Actress Moore of "Ghost" : DEMI
Demi Moore was born Demetria Guynes and took the name Demi Moore when she married her first husband, Freddy Moore. Moore's second husband was Bruce Willis. She changed her name to Demi Guynes Kutcher a few years after marrying her third husband, Ashton Kutcher. However, Kutcher and Moore split in 2013.
The fabulous film "Ghost" was the highest-grossing movie at the box office in 1990, bringing in over $500 million, despite only costing $21 million to make. Stars of the film are Patrick Swayze, Demi Moore and Whoopi Goldberg. You might want to check out the stage musical adaptation "Ghost The Musical", which debuted in 2011 and is touring the UK and US.
16 ___ 51 (U.F.O. landing site? … hmm) : AREA
The famed Area 51 is a remote base in the USAF Nevada Test and Training Range. There's no question that Area 51 is an unusual base in that frontline operational units are not deployed there. It seems that it is used for developing and testing new and classified weapons facilities for the US Military and other US agencies like the CIA. The government did not even acknowledge that Area 51 existed until 1995, and this official position fueled a theory that the base is home to UFOs that landed on Earth.
18 Rule by a small group : OLIGARCHY
An oligarchy is a form of government in which power rests with the few, perhaps with royalty or with the wealthy. The term derives from the Greek "oligos" meaning "few".
20 Early addendum to the Constitution : BILL OF RIGHTS
The Constitution of the United States was adopted on September 17, 1787. There have been 27 amendments to the constitution, the first ten of which are collectively called the Bill of Rights. In essence the Bill of Rights limits the power of the Federal Government and protects the rights of individuals. For example, the First Amendment states:
22 Radio host Glass : IRA
Ira Glass is a well-respected presenter on American Public Radio who is perhaps best known for his show "This American Life". I was interested to learn that one of my favorite composers, Philip Glass, is Ira's first cousin.
23 Doves' home : COTE
The Old English word "cote" was used for a small house. Our modern word "cottage" comes from "cote". We now use "cote" to describe a small shelter on a farm for sheep or birds.
31 "I've got it!" : EUREKA!
"Eureka" translates from Greek as "I have found it". The word is usually associated with Archimedes, uttered as he stepped into his bath one day. His discovery was that the volume of water that was displaced was equal to that of the object (presumably his foot) that had been submerged. He used this fact to determine the volume of a crown, something he needed in order to determine if it was made of pure gold or was a forgery.
34 Gutenberg invention : LETTERPRESS
Letterpress is the original printing press technique, invented by Johannes Gutenberg in the mid-1400s. The basis of such printing is the use of type (letters) in relief, raised from some surface so that the letters alone make contact with the paper being printed.
37 Coup d'___ : ETAT
A coup d'état (often just "coup") is the sudden overthrow of a government, and comes from the French for "stroke of state". The Swiss-German word "putsch" is sometimes used instead of "coup", with "Putsch" translating literally as "sudden blow". We also use the abbreviated "coup" to mean "sudden, brilliant and successful act".
40 NSFW stuff : SMUT
"Smut" means "dirt, smudge" and more recently "pornographic material". The term comes from the Yiddish "schmutz", which is a slang word used in English for dirt, as in "dirt on one's face".
The abbreviation "NSFW" stands for "not safe/suitable for work". It's Internet slang used to describe online content that is best not viewed at work.
46 "… ___ he drove out of sight …" : ERE
Here are the closing lines to the Christmas poem "A Visit from St. Nicholas".
He sprang to his sleigh, to his team gave a whistle,
And away they all flew like the down of a thistle.
But I heard him exclaim, ere he drove out of sight—
"Happy Christmas to all, and to all a good night!"
54 Spartans' sch. : MSU
Michigan State University's sports teams used to be called the Aggies, as the school was founded as the State Agricultural College of Michigan. The team name was changed to the Spartans in 1925, reflecting the school's shift in focus beyond agriculture-centered education. The school mascot Sparty hit the scene in 1989.
55 1998 Hanks/Ryan rom-com … or a hint to the starts of 20-, 34- and 41-Across : YOU'VE GOT MAIL
"You've Got Mail" is a 1998 romantic comedy film starring Tom Hanks and Meg Ryan, and directed by Nora Ephron. The film is an adaptation of the Miklos Laszlo play "Parfumerie". The storyline of "Parfumerie" was also used for the movies "The Shop Around the Corner" (from 1940 starring James Stewart and Margaret Sullivan) and "In the Good Old Summertime" (from 1949 starring Van Johnson and Judy Garland).
64 Someone sought by mil. police : AWOL
MPs (military police officers) often track down personnel who go AWOL (absent without leave).
65 Semihard Dutch cheese : EDAM
Edam cheese takes its name from the Dutch town of Edam in North Holland. The cheese is famous for its coating of red paraffin wax, a layer of protection that helps Edam travel well and prevents spoiling. You might occasionally come across an Edam cheese that is coated in black wax. The black color indicates that the underlying cheese has been aged for a minimum of 17 weeks.
69 Tire pattern : TREAD
One way to test the depth of tread on a tire is the Penny Test. Insert a penny into the tire's tread, with Lincoln's head upside down. If you can see all of the president's head, then it's time to replace that tire (tread depth is less than 2/32 inch).
2 Mata ___ (W.W. I spy) : HARI
"Mata Hari" was the stage name used by Margaretha Geertruida Zelle, born in the Netherlands in 1876. After an unsuccessful and somewhat tragic marriage, Zella moved to Paris in 1903 where she struggled to make a living. By 1905 she was working as an exotic dancer and using the name Mata Hari. She was a successful courtesan, notably moving in various circles of high-ranking military officers. She apparently worked as a double agent, both for the French and the Germans. When Mata Hari was accused by the French of passing information to the enemy, she was tried, found guilty and executed by firing squad at the height of WW1, in 1917.
3 Brother betrayed in the Bible : ABEL
In the story of Cain and Abel in the Book of Genesis, Cain murders his brother Abel. Subsequently, God asks Cain, "Where is Abel thy brother?" Cain replies, "I do not know. Am I my brother's keeper?"
6 Febreze target : ODOR
The odor-eliminating product we know today as Febreze was developed in England in the early nineties. Febreze is now produced by Procter & Gamble.
7 Ancient artifact : RELIC
A relic is something that has survived from the past, reminding us of that past.
8 "Adios, ___!" : AMIGO
The term "adiós" is Spanish for "goodbye". "Adiós" comes from the phrase "a Dios vos acomiendo" meaning "I commend you to God".
27 Frozen summer treat : ICE POP
The term "ice pop" has largely been supplanted in the US by "popsicle", as the Popsicle brand of ice pop became so popular. We still use "ice pop" in Ireland, and in the UK the same thing is called an "ice lolly", and in Australia it's an "ice block".
28 Floating on water : NATANT
Something described as natant is floating or swimming. The term "natant" comes from the Latin "natare" meaning "to swim".
30 Ocular affliction : STYE
32 $200 Monopoly properties: Abbr. : RRS
The four railroad (RR) properties in the Monopoly board game are:
Reading Railroad
B&O Railroad
Short Line
36 Snake ___ (dice roll) : EYES
"Snake eyes" is a slang term describing a roll of two dice in which one pip turns up on each die.
38 Boxing ruling, for short : TKO
Technical knockout (TKO)
44 Peas, to some classroom pranksters : AMMO
The word "munitions" describes materials and equipment used in war. The term derives from the Latin "munitionem" meaning "fortification, defensive wall". Back in the 17th century, French soldiers referred to such materials as "la munition", a Middle French term. This was misheard as "l'ammunition", and as a result we ended up importing the word "ammunition" (often shortened to "ammo"), a term that we now use mainly to describe the material fired from a weapon.
53 Java without the jolt : DECAF
The first successful process for removing caffeine from coffee involved steaming the beans in salt water, and then extracting the caffeine using benzene (a potent carcinogen) as a solvent. Coffee processed this way was sold as Sanka here in the US. There are other processes used these days, and let's hope they are safer …
Back in 1850, the name "java" was given to a type of coffee grown on the island of Java, and the more general usage of the term spread from then.
56 Pearls and peridots : GEMS
Pearls form in oysters because of a reaction that is similar to an immune system response in higher animals. The pearl is formed as the oysters lay down successive layers of calcium carbonate around some microscopic foreign body that has penetrated the shell.
Olivine is a relatively common mineral, but is rarely found with purity that is sufficient for use as a gemstone. When the olivine is pure enough to be used as a gem, it is called "peridot". Peridot is always olive green in color, with its color intensity a function of how much iron is in the stone.
60 What tapping a maple yields : SAP
About 75% of the world's maple syrup comes from the province of Quebec. The US's biggest producer is the state of Vermont, which produces 5-6% of the world's supply.
62 Dr. No, to James Bond : FOE
"Dr. No" may have been the first film in the wildly successful James Bond franchise, but it was the sixth novel in the series of books penned by Ian Fleming. Fleming was inspired to write the story after reading the Fu Manchu tales by Sax Rohmer. If you've read the Rohmer books or seen the films, you'll recognize the similarities between the characters Dr. Julius No and Fu Manchu. By the way, the author Ian Fleming tells us that Julius No attended medical school in Milwaukee.
6 Like some exams and medicines : ORAL
17 Toward the back : AREAR
24 Stag's mate : DOE
27 Crying … or laughing hysterically : IN TEARS
33 Train unit : CAR
39 "Woo-hoo!" : YAY!
41 Sauna plus massage at a spa, perhaps : PACKAGE DEAL
47 Traveling, as a band : ON TOUR
48 Slowly burn : SMOLDER
50 N, E, W and S, on a compass: Abbr. : PTS
51 Follower of open or pigeon : -TOED
60 Welcoming environment for everyone : SAFE SPACE
63 Dwelling : ABODE
66 What some couples do with their wedding vows : RENEW
67 Outside of an orange : PEEL
68 Almanacs and atlases, for short : REFS
1 Wild guess : STAB
4 Heavily padded hockey player : GOALIE
5 Sisterly : SORORAL
9 Something waved at concerts prior to the age of cellphones : LIGHTER
10 Covers with black goo : TARS
11 Section of a circumference : ARC
12 "I'm not impressed" : MEH
13 Equal ___ for equal work : PAY
19 Avidly enjoyed : ATE UP
21 Taxi charge : FARE
24 Adjudged : DEEMED
25 "Fine, works for me" : OK, SURE
26 Occasion for an egg roll : EASTER
29 Land parcels : TRACTS
35 Little bit : TAD
42 Dealership inventory : AUTOS
43 Large-mouthed food fish : GROUPER
45 Writing in script, nowadays : LOST ART
49 Wood for building : LUMBER
52 Give the slip : EVADE
55 Holler : YELL
57 First-class : A-ONE
58 Notion : IDEA
59 Raunchy : LEWD
61 Dazzle : AWE
Posted on December 6, 2021 December 5, 2021 Categories Emily RourkeTags Floating on water crossword clue, Gutenberg invention crossword clue, NSFW stuff crossword clue, Rule by a small group crossword clue, Sisterly crossword clue12 Comments on 1206-21 NY Times Crossword 6 Dec 21, Monday

redpajama_set_name: RedPajamaCommonCrawl


Mastering the Cenvat Credit Rules !!!
The Next Batch of 'Mastering The Cenvat Credit Rules' will be announced soon.
Course Duration: 6 Hours of E-learning.
Please reserve your seat in Advance. For details contact our Course Coordinator.
Cenvat credit on inputs/input services used in exempted goods/services.
The coaching shall be provided by Eminent faculties having in-depth knowledge and insight into the field of Indirect Taxation.
Founder, CMD, Easy Service Tax Online.com Pvt. Ltd.
Deepak Kumar is an IRS Officer of 1978 batch and retired recently as Chief Commissioner from Vadodara Zone. He possesses 35 years of experience in the field of Customs, Central Excise and Service Tax. He has deep technical knowledge and high degree of competence. He has worked in the Organization as Under Secretary in CBEC and as well as held various key positions in different departments such as Air Cargo and Airport Delhi, Directorate of Revenue Intelligence (DRI), Mumbai Custom House and Directorate of Service Tax (DGST) etc. He has unique distinction of being Commissioner Central Excise (Appeals) for 7 years where more than 5500 reasoned and judicious orders were passed.
Bhupendra Pal Singh joined Customs & Central Excise Department as an IRS Officer in the year 1979. He retired recently as Commissioner (Appeals) Central Excise & Service Tax, Mumbai-I. He possesses 35 years of experience in the field of Customs, Central Excise and Service Tax. He is also registered with Bar Council of Maharashtra & Goa. He has held various key positions in different departments such as Central Excise, Customs, Narcotics, etc. He has also worked as Additional Commissioner of the Customs (Export/DBK) under Export Promotion Commissionerate. He is having tremendous command over the subject of Central Excise, Customs and Service Tax.
Mr. Sujay Kantawala is renowned lawyer. He has been practicing as a Lawyer in Mumbai High Court since more than 2 decades. He has successfully handled all sorts of cases including Central Excise, Customs, Service Tax, FEMA, Constitutional matters etc.
Mr. Rutvij S Modi is a qualified Chartered Accountant. From the beginning of his career, he has worked exclusively in Indirect Taxation. He is pursuing his CS Final also. The hunger and thirst for knowledge has made him to understand subject very well and made him a emerging Expert in the field of Service Tax.
Shri D.B. Bhalerao is a retired Superintendent of Central Excise, holding rich experience in the matters of Central Excise, Customs, Service Tax and N.D.P.S. Act. He spent 36 precious years of his life serving in various sections of the department and has closely dealt with the working pattern of the department on different sensitive issues relating to classification, valuation, Adjudication, leviability of duty/tax on different commodities/ services, refunds and demands. He is well conversant with departmental approach to different aspect of adjudication relating to disputes, which are sensitive to the industry on the matters having bearing on advantageous situation to the industry. His rich experience in the preventive / adjudication sections of the department has developed within him immense judicious, proportionate and un-biased view point on any disputed area in the subject matter.
A retired Superintendent of Central Excise, havingvast experience on the subject of Central Excise, Customs, Service Tax and N.D.P.S, etc. He spent 38 and ½ yearsof precious years of his life serving in various formations of the department and has closely dealt with the working pattern of the department on different sensitive issues relating to classification, valuation, Adjudication, livability of duty/tax on different commodities/ services, refunds and demands etc. He is well conversant withlaw and procedure and departmental approach to different disputes, which are sensitive to the industry. His experience in the preventive / adjudication/Audit formation of the department has developed in him animmensejudicious, proportionate and un-biased view point on disputed areas on any subject matter.
Mr Amar Nath Mishra cleared Civil Services Exam in the year 1988 and joined Indian Trade Service under the Ministry of Commerce and Industry, Govt. of India. He has worked in various capacities in the field offices of DGFT i.e. Kanpur, Varanasi, Kolkata, Mumbai, Ahemedabad, Rajkot, Surat and Vadodara. He has also worked as designated Authority for Pass Book Scheme for two years in Kolkata Customs. He has delivered lectures, addressed trade meets, made presentation and trained members of trade and industry on several occasions. He has worked with DGFT in the areas of HRD, Vigilance, Budget & Accounts, Infrastructure, Enforcement, Adjudication, Litigation, Audit, RTI, Implementation of Foreign Trade Policy & Chaired meetings of several Committees and has also participated as a Member in SLEPC (State Level Export Promotion Committee) Gujarat, REIC (Regional Economic Intelligence Committee) Gujarat, UAC (Unit Approval Committee) Gujarat, for 100% EOU & SEZ. He took VRS from the Central Govt. in Sep.2013 in order to achieve his goal to work for his own. Presently, he is registered as an "Advocate", with Bar Council of Maharashtra & Goa".
He Has Vast Experience of More Than 35 Years With The DGFT. He Is An Expert In The Field of Import – Export; Deemed Exports, S.E.Z, ITSEZ, 100 % EOUs, Advance Licences EPCG, ETC.


text:
package com.intellij.usages.rules;

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.project.Project;
import com.intellij.usages.UsageView;
import com.intellij.usages.UsageViewSettings;
import javax.annotation.Nonnull;

/**
 * @author max
 */
public interface UsageGroupingRuleProvider {
  ExtensionPointName<UsageGroupingRuleProvider> EP_NAME = ExtensionPointName.create("com.intellij.usageGroupingRuleProvider");

  @Nonnull
  UsageGroupingRule[] getActiveRules(@Nonnull Project project);

  @Nonnull
  default UsageGroupingRule[] getActiveRules(@Nonnull Project project, @Nonnull UsageViewSettings usageViewSettings) {
    return getActiveRules(project);
  }

  @Nonnull
  AnAction[] createGroupingActions(@Nonnull UsageView view);
}

redpajama_set_name: RedPajamaGithub


text:
At Least 51 Die In Lightning Strikes In Bihar And Jharkhand
In Jharkhand, six persons died in Jamtara district while two each were killed in Ramgarh, Pakur and Dumka districts, the police said adding that four others were injured (Photo: STR/AFP/Getty Images).
AT least 51 people were killed and nine others injured in lightning strikes in Bihar and Jharkhand, police said on Wednesday (24).
Altogether 39 people have died across a dozen districts of Bihar, while 12 others lost their lives in four districts of Jharkhand.
The deaths were reported since Tuesday (23) night.
In Bihar, Jamui accounted for the highest number of eight deaths followed by Aurangabad (seven), Bhagalpur, Banka and East Champaran (four each), Rohtas (three), Nawada, Nalanda and Katihar (two each) and Munger, Arwal and Gaya (one each), the state disaster management department said.
Three persons have suffered injuries on being struck by lightning in Bhagalpur, while the number of wounded was one each in Banka and Jamui districts, the department added.
Ex-gratia will be paid to the next of the kin of each deceased, in keeping with the state government's policy, while proper treatment will be ensured for the injured, official sources said.
In Jharkhand, six persons died in Jamtara district while two each were killed in Ramgarh, Pakur and Dumka districts, the police said adding that four others were injured.
Five persons of Jamtara were killed and one person was injured. All of them were returning after taking a bath at a nearby pond when it started raining. They stood under a road bridge when lightning struck them.
In Ramgarh district, two persons were killed and as many injured when lightning struck them at Chikor village. They were watching a cricket match standing under a tree when the incident happened, police said.
Rahul Gandhi lashes out at Modi government budget: 'No vision, no plan, no intent… PM…
Adani loses Asia's richest crown as stock rout deepens to $86b
Biden believed to have invited PM Modi for state visit to US
3 common mistakes to avoid while eating fruits as per Ayurveda expert
Speak out to bring offenders to justice, says London paramedic who was groped…
P Chidambaram, who presented India's 'dream budget' in 1997, blasts Modi govt's 2023…
Top Indian-American politician Nikki Haley plans to launch 2024 US presidential bid on…
Narendra Modi govt presents last full-fledged budget before 2024 polls: Here are some…


Ponta Delgada is the administrative capital of the Azores, a chain of islands located west of Portugal. Located on Sao Miguel Island, the city of Ponta Delgada is distant from any other major nations, but still retains effective transportation for getting around and off of the islands.
Getting around while on the island itself can be done by riding on any one of the city's major bus routes. There is a route from Ponta Delgada to Ribeira Grande and many buses that make the trip per day. Other bus routes run to Gorreana and Porto Fomoso, a region of the country that is famous for its tea factory.
While bus lines connect Ponta Delgada with the rest of the island, it also has an effective transit system for getting around within the city. There are three minibus lines, the A, B, and C lines, that operate inside the town on working days. These buses run from 07:30 a.m. to 7:30 p.m. and depart every 15 minutes. Tickets are affordable, running only 50 euro cents and purchasable for a discount when you buy a set of 10.
Those hoping to return to the airport will want to take Line A to the airport terminal. There is also a shuttle bus that links the airport to the downtown area. This bus departs from the airport about 20 minutes after the arrival of an airplane and is available from the first to the last flight.
Besides SATA and TAP airlines that link mainland Portugal to the Azores, there are also low-cost airlines Easyjet and Ryanair to consider. The latter also links Ponta Delgada to London's Stansted Airport on Saturdays. SATA also has direct flights from Ponta Delgada to the U.S. and Canada.
Boats also make the journey to Ponta Delgada and use it as a port of call and a stop during the journey to Europe. Cruise ships regularly pass through before continuing on to France and Spain. Boats also connect the Azores themselves. There is a boat all year round that can transport passengers to other parts of the Azores for about 35 euros round-trip.
Editor's note: The information contained on this page was compiled using real traveler reviews about transporation in Ponta Delgada.


She's The Mom: FERN-C kidz- Our Kids' Daily Immunity Buddy.
FERN-C kidz- Our Kids' Daily Immunity Buddy.
Every parent is well aware of the feeling of wanting to protect our family at all costs. We want them to be happy, healthy and full of life, and achieving that can sometimes seem like something of an impossible mission. But isn't it a wonder how we, parents manage to pull it off?
Life can get pretty busy and complicated at times, especially to working parents just like my husband and I. We can't be physically there 24/7 for our kids but we would never ever take 3 things for granted; education, time, and most of all their health.
These 3 things go hand in hand together. When kids are healthy, they are happy and they can perform well in school. And as a mom, I would like to maximize the quality time we spend together and minimize the stress of having to deal with sick kids. So, it is my goal to instill healthy habits to my family. Our children's behavior and lifestyle are learned from us. And these should be the legacies we're happy to pass down to them.
I have been explaining to my children the importance of being healthy. In the house, I have been an advocate of having an active lifestyle by consistently exercising. I am happy that I have influenced my husband to exercise too at least thrice a week if not daily. I've also participated in some fun runs. At an early age, our children already know how exercising can help them become healthy and fit. They even join us during some of our sessions. We try our best to limit their screen time and get them to play physically, even it is just a simple running, going to the playground and swimming with life vests on since they still don't know how to swim on their own. Jaear and I are actually discussing some sports they can engage into. The kids though have been expressing their interests as well. Tristan likes taekwondo so is Athena who also likes ballet, Brianna, on the other hand, likes gymnastics.
Apart from an active lifestyle, a healthy diet is of equal importance. They know what is healthy and unhealthy food though I admit there are cheat days so we coined them as sometimes food. Among the 3 of them, Brianna loves veggies the most.
On top of what we get from our diet, it is recommended that we still let our kids take Vitamin C supplements to help boost their immunity and protect them from sickness and diseases.
And, when it comes to Vitamin C supplements, I strongly encourage moms na "Silipin ang C- we should always check the quality of the Vitamin C that we give our kids". As for me, I only give my kids FERN- C kidz.
FERN-C kidz is made with the same Sodium Ascorbate found in the FERN-C the Number 1 Sodium Ascorbate Vitamin C which is safe for children to take on a daily basis.
Each bottle of FERN-C kidz is marked with the Quali-C seal, which certifies it of quality and effectivity. This ensures every mom out there that this Vitamin C supplement is safe, secure and efficient.
FERN-C kidz also contains Zinc for added protection.
It has a yummy orange flavor that kids love!
With FERN-C kidz, I am confident that I am addressing the top 3 priorities when it comes to our kids' and that is by providing them the protection they needed even in times when their dad and I aren't around. Fern-C kidz helps me prioritize our kids' health, to help them enjoy their education and the quality time we spend together as a family.
So Mommies, always remember "Silipin ang C" and choose your kids' daily immunity buddy wisely!
All Things Hair - All Out Summer Sale 2018!


An interactive exhibit, the event of a thread, by visual artist Ann Hamilton, connects people's hearts, minds and memories through light, sound and movement propelled by visitors of all ages enjoying the large swings that anchor this exhibit. The swings are attached to a maze of wires above that connect to one very large volume of flowing white fabric moving up and down and back and forth, billowing like a sail in the wind dependent on the movement of the people on the swings. Artists quietly speaking random phrases into microphones with their words broadcast through radios hidden inside brown paper bags meant to be picked up or placed on the floor for your listening pleasure while you swing or just stand and watch or lay on the floor taking it all in.
The exhibit is open to the public at the Park Avenue Armory in NYC through January 6, 2013.


Tony Crocker wrote: But yes, the Dolomites should be on Rob and Nikki's short list, especially since Rob is fluent in one of the local languages.
We'll see, Nikki and I just had a baby, so it may be a while before we take a destination ski trip, particularly one overseas.
rfarren wrote: We'll see, Nikki and I just had a baby, so it may be a while before we take a destination ski trip, particularly one overseas.
We brought our ten-month-old son with us to the Arlberg. Nice in theory, less so in practice.
Convenience, price and quality of day care, just another addition to ski trip planning! I remember those days from the 1980's and 1990's. It generally worked OK for us, but sure it's extra logistics and at least the equivalent of another lift ticket. Most of it was weekends at Mammoth for us. But there were 3 destination trips when Adam was 12-15 months old. The last of those was the infamous Jackson spring break when we had to relocate since the snow there was so bad. We had to find and reserve daycare in SLC for the days we skied Alta and Snowbird.
rfarren wrote: How did that work out?
The skiing itself was great; bringing our son along wasn't the lovely family experience we'd hoped for -- dealing with babysitters, he had serious asthma issues/a trip to the ER/follow-up with a doctor, a frantic wife. Should've never let myself be talked into it.
There were only two health issues that I recall.
One of those 1 year old trips was to Vail. We took a day trip to Copper Mt. and Adam was a little fussy and uncomfortable probably with the 9,600 altitude there.
The Christmas Adam was 2 we spent a week at the Alta Peruvian Lodge. He got an ear infection, so we had to go to the doctor at Snowbird and get antibiotics. We had to keep him out of the Peruvian's pool for the rest of that trip.
We skied a day at Brian Head on the way to Alta. That was the time Adam complained that the 4 year olds could ski so why couldn't he? During his 3 year old season Adam was generally out for half a day skiing either with us or in Mammoth's Funland program.
Yeah, seems sort of a waste to go someplace like that with an infant, let alone a young kid. Maybe when they're teenagers we can do Europe, but as kids I think out west will be as far as we go... I just don't want to ruin my kid's ski life by spoiling them with western conditions. Great skiers learn on ice, and that's where my daughter will learn.
The first choice is obviously to leave an infant or small child at home with grandparents or other trusted family. But if push comes to shove, it's better to take the kid with you than not have a destination ski vacation.
As far as logistics are concerned for easterners going west vs. the Alps, I'll defer to James on that.
For taking a kid skiing at a big/diverse mountain either west or in the Alps, that to me is a function of ski interest and skills just as for an adult. Adam was certainly at that level at age 7 when he skied some of Crested Butte's North Face and most of Telluride. For that matter, perhaps half of Vail was within his reach at age 5, and he progressed well with two days of excellent lessons and skiing with us the rest of that week.
1) The kid's interest, not something you can control. I had one kid very driven to ski and one not so much.
2) Accessibility for a large number of short sessions per season, as most very young kids don't have the strength or attention span to put in full days. JSpin in both Montana and Vermont had that easy accessibility. NYC is not the worst location in this regard, but it's definitely a challenging one. The New Jersey contingent of our Iron Blosam group lives 20 minutes from Mountain Creek. I rarely hear much positive about Mountain Creek as a ski area, but it has been effective in getting those kids making ski progress at an early age.
rfarren wrote: seems sort of a waste to go someplace like that with an infant, let alone a young kid.
Tony Crocker wrote: if push comes to shove, it's better to take the kid with you than not have a destination ski vacation.
What Tony says ^^ was our logic and for the record, we skied every day bell to bell, which was fantastic -- see pix in the resulting article/for the second straight year at Lech, I hit paydirt with conditions. It was the non-skiing part dealing with our sick son (in an unmistakable harbinger of coming attractions for us ) that made it a very mixed bag enjoyment-wise. I'm not saying that other people shouldn't bring their baby along on a destination trip; i.e. your mileage may vary.
Looks like we should split this thread.
Obviously having a child get sick is the worst case scenario. Overall we were quite lucky in that regard considering we had at least 7 destination trips with a kid exclusively in the daycare stage plus 2-3 Mammoth weekends per season over those same years.
You roll the dice when traveling with little ones..Plan for the worse and hope for the best..
I have visited Dr's in Fla and in Geneva..
Also age doesn't matter, I had a 16yr old vomit all across France..
Just got home from 3 days in Mammoth with a almost 2 yr old and almost 4 yr old. First, it's shocking how much lessons cost. 3hrs in the morning was $200+/day for the 3 yr old plus the babysitter for the 1 yr old. It was fun but exhausting and very expensive. My 3 yr old loved the skiing and spent the afternoon with me and loved it. He did cry and not do well at ski school though.
All that said, I would never think of doing a long destination trip with a toddler/infant. You miss a lot of skiing, miss out on other fun activities, and spend more money. Until they're at least 5 I would think you'd be better finding care at home and going without. Local/short trips with a 3+ yr old makes sense since you can get them on the slopes.
jasoncapecod wrote: You roll the dice when traveling with little ones..Plan for the worse and hope for the best..
Yea, it seems like my daughter, who is now 21, was sick on almost every vacation we ever took, including ski trips. I spent many "vacation" hours looking for drugstores to buy her medicine. LOL.
socal wrote: Just got home from 3 days in Mammoth with a almost 2 yr old and almost 4 yr old. First, it's shocking how much lessons cost. 3hrs in the morning was $200+/day for the 3 yr old plus the babysitter for the 1 yr old. It was fun but exhausting and very expensive. My 3 yr old loved the skiing and spent the afternoon with me and loved it. He did cry and not do well at ski school though.
I do concur with the above.. Pregnant women are not allowed to go to certain places even as early as a month in the pregnancy.
with the weather change. it might end up being a costly trip full of worries.


Nucleotide sugars serve as sugar donors for the synthesis of various glycones. The biological and chemical properties of glycones can be altered depending which sugar is attached. Bacteria synthesize unusual nucleotide sugars. A novel nucleotide sugar can be synthesized in Escherichia coli by introducing nucleotide biosynthetic genes from other microorganisms into E. coli. The engineered E. coli strains can be used as a platform for the synthesis of novel glycones.
Four genes, Pdeg (UDP-N-acetylglucosamine C4,6-dehydratase), Preq (UDP-4-reductase), UDP-GlcNAc 6-DH (UDP-N-acetylglucosamine 6-dehydrogenase), and UXNAcS (UDP-N-acetylxylosamine synthase), were employed to synthesize UDP-quinovosamine, UDP-N-acetylglucosaminuronic acid, and UDP-N-acetylxylosamine in E. coli. We engineered an E. coli nucleotide sugar biosynthetic pathway to increase the pool of substrate for the target nucleotide sugars. Uridine diphosphate dependent glycosyltransferase (UGT) was also selected and introduced into E. coli. Using engineered E. coli, high levels of three novel flavonoid glycosides were obtained; 158.3 mg/L quercetin 3-O-(N-acetyl)quinovosamine, 172.5 mg/L luteolin 7-O-(N-acetyl)glucosaminuronic acid, and 160.8 mg/L quercetin 3-O-(N-acetyl)xylosamine.
We reconstructed an E. coli nucleotide pathway for the synthesis of UDP-quinovosamine, UDP-N-acetylglucosaminuronic acid and UDP-N-acetylxylosamine in an E. coli galU (UDP-glucose 1-phosphate uridylyltransferase) or pgm (phosphoglucomutase) deletion mutant. Using engineered E. coli strains harboring a specific UGT, three novel flavonoids glycones were synthesized. The E. coli strains used in this study can be used for the synthesis of diverse glycones.
Attachment of diverse sugar molecules to secondary metabolites such as antibiotics and phytochemicals is of interest because the biological activities of glycones are often modulated by sugar molecules [1–4]. Flavonoids, a major group of phytochemicals, are synthesized using the phenylpropanoid pathway . Most flavonoids exit as glycones. Attachment of sugars to flavonoids is mediated by nucleotide (usually uridine diphosphate or thymidine diphosphate) sugar- dependent glycosyltransferases (GT); GTs use nucleotide sugars as sugar donors and various molecules including flavonoids as sugar-acceptors . The diversity of sugars found in flavonoids is limited because plants contain only UDP-glucose, UDP-glucuronic acid, UDP-rhamnose, UDP-xylose, and UDP-arabinose . UDP-glucose is a substrate for the synthesis of other UDP-sugars in plants [8, 9]. It is converted to UDP-glucuronic acid, UDP-xylose, and UDP-arabinose by the action of UDP-glucose dehydrogenase (UGD), UDP-xylose synthase (UXS), and UDP-xylose epimerase (UXE), respectively. The pathway from UDP-glucuronic acid to UDP-arabinose is present in plants but is absent in bacteria. In plants and bacteria, nucleotide-rhamnose exists in different forms. In plants, UDP-rhamnose is synthesized from UDP-glucose by one multifunctional enzyme (rhamnose synthase, RHM) whereas in bacteria, TDP-rhamnose is synthesized from TDP-glucose in three steps by three different enzymes .
Bacteria synthesize unique nucleotide sugars that are not found in plants. Bacteria have a nucleotide pathway starting from glucosamine 1-phosphate. Glucosamine 1-phosphate is a precursor to UDP-N-acetylglucosamine (UDP-GlcNAc), which is eventually used in peptidoglycan biosynthesis . The pathway toward UDP-GlcNAc is well defined in most bacteria. In some bacteria, UDP-GlcNAc is converted to other UDP-N-acetyl sugars. Bacillus cereus ATCC 14579 contains two genes (Pdeg and Preq) for the biosynthesis of UDP-quinovosamine from UDP-GlcNAc; Pdeg encodes an enzyme (UDP-N-acetylglucosamine C4,6-dehydratase) that converts UDP-GlcNAc to UDP-4-keto-4,6-d-deoxy-GlcNAc (UDP-2-acetamido-2,6-dideoxy-α-d-xylo-4-hexulose) and Preq encodes a UDP-4-reductase that converts UDP-4-keto-4,6-d-deoxy-GlcNAc to UDP-N-acetylquinovosamine (Fig. 1) . B. cereus NVH 391-98 also synthesizes a unique nucleotide sugar from UDP-GlcNAc. This species synthesizes UDP-N-acetylxylosamine via UDP-N-acetylglucosaminuronic acid from UDP-GlcNAc (Fig. 1) , which pathway is very similar to the pathway from UDP-glucose to UDP-xylose in plants . With the completion of genome projects on diverse microorganisms, genes for the synthesis of these nucleotide sugars have been annotated but the functional characterization of only a few of them has been carried out [13–16]. If these genes could be adapted to function in Escherichia coli, novel nucleotide sugars and hence novel glycones could be synthesized in E. coli.
Synthetic and semi-synthetic approaches to diverse glycones have more disadvantages than advantages, because these methods can produce complex mixtures and has a limited ability to confer regioselectivity or stereoselectivity to glycones . Recently, glycosylation using biocatalysts such as uridine diphosphate dependent glycosyltransferase (UGT) has been used to produce diverse glycones [18, 19]. By engineering nucleotide pathways in E. coli, it is feasible to synthesize novel glycones. Our group has previously used flavonoids as sugar acceptor to create novel flavonoid glycones . Here, we reported on the synthesis of three additional novel flavonoid glycones using an engineered E. coli strain.
For the synthesis of UDP-quinovosamine, genomic DNA from B. cereus ATCC 14579 was isolated and used as a template for polymerase chain reaction (PCR). Both Pdeg and Preq (GenBank AE016877.1) were cloned using 5′-CGGCATATGTTAAATAAAATAATTTTAATT-3′ (the NdeI site is underlined) as the forward primer and 5′-CATCTCGAGTCATCGCAAAAACCCTCCTTT-3′ as the reverse primer (the XhoI site is underlined). The resulting PCR product was digested with NdeI/XhoI and subcloned into the corresponding sites of pACYCDuet, pCDFDuet, and pETDuet. The resulting constructs were named pA-DHR, pC-DHR, and pE-DHR, respectively (Table 1). The AtUGT78D2 gene, which was cloned previously , was subcloned into the EcoRI/NotI sites of pACYCDuet, pCDFDuet, and pETDuet, all of which contained UDP-GlcNAcD at the NdeI/XhoI sites. The constructs were named pA-DHR-D2, pC-DHR-D2, or pE-DHR-D2, respectively (Table 1).
UDP-N-acetylglucosamine 6-dehydrogenase (UDP-GlcNAc 6-DH, GenBank GU784842) and UDP-N-acetylxylosamine synthase (UXNAcS, GenBank accession number GU784843) from B. cereus NVH 391–98 were synthesized after codon optimization for E. coli (Bioneer, Korea; The codon optimized sequences of two genes are available in Additional file 1). UDP-GlcNAc 6-DH was subcloned into the EcoRI/NotI sites of pACYCDuet, pCDFDuet, and pETDuet. The corresponding constructs were named pA-6-DH, pC-6-DH, and pE-6-DH, respectively (Table 1). UXNAcS was subcloned into the NdeI/XhoI site of pA-6-DH, pC-6-DH, or pE-6-DH and the resulting constructs were named pA-6-DH-UXNAcS, pC-6-DH-UXNAcS, and pE-6-DH-UXNAcS, respectively.
Previously cloned AmUGT10 from Antirrhinum majus (GenBank accession number AB362988)  was subcloned into the NdeI/XhoI sites of pA-6-DH, pC-6-DH, and pE-6-DH. The resulting constructs were named pA-6-DH-AmUGT, pC-6-DH-AmUGT, and pE-6-DH-AmUGT, respectively.
Comparative modeling software PRIME incorporated into the Schrödinger molecular modeling software suite was used to generate a 3D structure of the AtUGT78D2. The crystallographic structure of the flavonoid 3-O-glucosyltransferase (VvGT, PDB 2C1X)  was used as a template (sequence similarity = 56 %). The optimal model was selected based on bond angle stereochemistry using PROCHECK. After refinement of the loop structures, the model was subjected to energy minimization and molecular dynamics simulations (MD) in order to obtain a stable, low-energy conformation. Energy minimization was performed using a conjugate gradient minimization (0.05 convergence criteria), the OPLS-AA force field, and the GB/SA continuum water model. MD simulations were performed by pre-equilibration for 100 ps and simulation for 1 ns at 300 K with a 1-fs time step and SHAKE applied to all bonds to hydrogen. 3D structures of UPD-2-acetamido-2,6-dideoxy-β-d-glucose (UDP-N-acetylquinovosamine) and UDP-2-acetamido-2-deoxy-β-d-xylose (UDP-N-acetylxylosamine) were prepared by modification of UDP-2-deoxy-2-fluoro-α-d-glucose obtained from the crystal structure of 2C1Z (VvGT flavonoid 3-O-glucosyltransferase) . The modeled UDP sugars were then merged into the AtUGT78D2 structure to provide AtUGT78D2 complexed with UDP-N-acetylquinovosamine and UDP-N-acetylxylosamine, respectively. With the modeled structure, docking of quercetin was carried out using the GLIDE program incorporated into the Schrödinger molecular modeling software suite (http://www.schrodinger.com). The default setting of the extreme precision mode of GLIDE was employed for the docking, and up to 10 poses were saved for analysis. All of the saved poses were similar and therefore, the highest scored pose was selected for binding mode analysis.
An overnight culture of E. coli transformant was inoculated into LB (Luria–Bertani) medium containing the appropriate antibiotics and grown at 37 °C until it reached an OD600 of 0.8. IPTG (isopropyl β-D-1-thiogalactopyranoside) was added at a final concentration of 1 mM and the culture was incubated at 18 °C for 24 h with shaking at 180 rpm. Cells were harvested by centrifugation and resuspended in M9 medium containing 2 % glucose and antibiotics. At this time, the cell concentration was adjusted to 2.0 at OD600. The substrate was added to the reaction medium at a final concentration of 100 μM and the mixture was incubated at 30 °C for 20 h. The reaction was carried out in 2 mL medium in a test tube (14 mm × 145 mm). The supernatant was boiled for 3 min, centrifuged at 15,000g for 15 min, and then analyzed using high performance liquid chromatography (HPLC) . To monitor the production of each compound, reaction was performed in a 250 mL flask containing 50 mL reaction mixture.
The structures of reaction products were determined using nuclear NMR . The reaction product was purified as described in An et al. . Quercetin 3-O-(N-acetyl) quinovosamine: 1H NMR (400 MHz, DMSO-d 6 ) δ ppm 7.67 (d, J = 2.2 Hz, 1H, H-2′), 7.62 (dd, J = 8.5, 2.2 Hz, 1H, H-6′), 6.86 (d, J = 8.5 Hz, 1H, H-5′), 6.40 (d, J = 2.1 Hz, H-8), 6.20 (d, J = 2.1 Hz, 1H, H-6), 5.35 (d, J = 8.5 Hz, 1H, H-1″), 3.96 (dd, J = 10.2, 8.5 Hz, 1H, H-2″), 3.43 (dd, J = 10.2, 8.7 Hz, 1H, H-3″), 3.22 (dq, J = 9.2, 6.1 Hz, 1H, H-5″), 3.05 (t, J = 9.2 Hz, 1H, H-4″), 2.06 (s, 3H, H-8″), 1.11 (d, J = 6.1 Hz, 3H); 13C NMR (100 MHz, DMSO-d 6 ) δ ppm 179.4 (C-4), 174.5 (C-7″), 166.1 (C-7), 163.2 (C-5), 159.0 (C-9), 158.5 (C-2), 149.9 (C-4′), 146.0 (C-3′), 135.3 (C-3), 123.4 (C-6′), 123.3 (C-1′), 117.5 (C-2′), 116.2 (C-5′), 105.9 (C-10), 101.6 (C-1″), 100.0 (C-6), 94.8 (C-8), 77.4 (C-4″), 76.4 (C-3″), 73.9 (C-5″), 58.4 (C-2″), 23.3 (C-8″), 18.0 (C-6″).
Quercetin-3-O-(N-acetyl)xylosamine. 1H NMR (400 MHz, DMSO-d6): δ 12.67 (s, 1H), 8.03 (d, J = 8.7 Hz, 1H), 7.65 (dd, J = 8.4, 2.1 Hz, 1H), 7.59 (d, J = 2.1 Hz, 1H), 6.85 (d, J = 8.5 Hz, 1H), 6.42 (d, J = 1.9 Hz, 1H), 6.31 (d, J = 1.9 Hz, 1H), 5.47 (d, J = 7.8 Hz, 1H), 3.77–3.85 (m, 1H), 3.69 (dd, J = 11.7, 4.1 Hz, 1H), 3.27-3.51 (m, 2H), 2.94–2.99 (m, 1H), 1.89 (s, 3H); 13C NMR (100 MHz, DMSO-d6): δ 178.6, 170.7, 165.4, 162.4, 157.4, 157.1, 149.9, 146.1, 134.2, 123.1 122.0, 117.1, 116.7, 105.0, 104.8, 101.1, 94.7, 74.7, 71.2, 67.2, 56.3, 24.5.
Bacillus cereus ATCC 14579 has a nucleotide biosynthetic pathway to synthesize UDP-N-acetylquinovosamine from UDP-N-acetyl-d-glucosamine by Pdeg and Preq  (Fig. 1a). Introduction of two genes (Pdeg and Preq) for the biosynthesis of UDP-N-acetylquinovosamine into E. coli could lead to the synthesis of a new nucleotide sugar that does not naturally exist in E. coli, and the resulting nucleotide-sugar could be a sugar donor for synthesis of a novel flavonoid glycoside (Fig. 1b). In order to synthesize flavonoid N-acetylquinovosamine in E. coli, we needed to find a UGT that conjugates a flavonoid and UDP-N-acetylquinovosamine. We conducted molecular docking because the nucleotide-sugar synthesized by UDP-(N-acetyl)quinovosamine was not commercially available. The UDP-(N-acetyl)quinovosamine was fitted into the active site of AtUGT78D2. The side chain of Asp380 formed a hydrogen bond with the 3-hydroxy group of glucose, and the nitrogen in the backbone of Trp359 forms a hydrogen bond with the 4-hydroxy group of glucose. The methyl group of the acetamido of UDP-N-acetylquinovosamine interacted hydrophobically with Phe238, Gln381, and Met288. The methyl group at carbon 5 interacted hydrophobically with the backbone of THr145 and the side chain of Ala146. Therefore, UDP-N-acetylquinovosamine binds to AtUGT78D2 (Fig. 2a). For this reason, AtUGT78D2 was used as glycosyltransferase for the synthesis of flavonoid N-acetylquinovosamine.
In order to make a novel flavonoid glycoside, Pdeg and Preq from B. cereus along with a flavonoid glycosyltransferase, AtUGT78D2, were introduced into E. coli. The resulting strain (QS-1) was used for the biotransformation of quercetin. HPLC analysis of the reaction product showed two new peaks (Fig. 3). P1 exhibited the same retention time as quercetin 3-O-(N-acetyl)glucosamine while P2 had a different retention time with a molecular mass of 489.1 Da which was the expected molecular mass of quercetin 3-O-(N-acetyl)quinovosamine. The molecular structure of the reaction product was analyzed using NMR and determined to be quercetin 3-O-(N-acetyl)quinovosamine.
The biotransformation of quercetin using strain QS-1 produced two products, quercetin 3-O-N-acetylglucosamine and quercetin 3-O-(N-acetyl)quinovosamine in a ratio of 54–46 (Fig. 4). The higher production of quercetin 3-O-(N-acetyl)glucosamine compared quercetin 3-O-(N-acetyl)quinovosamine was because AtUGT78D2 showed higher affinity to UDP-N-acetylglucosamine . In order to increase the production of quercetin 3-O-(N-acetyl)quinovosamine over quercetin 3-O-(N-acetyl)glucosamine, we decided to increase the pool of UDP-N-acetylglucosamine. We used two E. coli mutant strains, BgalU and Bpgm. The galU (glucose-1-phosphate uridylyltransferase) gene, which is directly involved in the formation of UDP-glucose, was deleted in E. coli BL21(DE3). The pgm (phosphoglucomutase) mutant (Bpgm) has a higher level of UDP-N-acetylglucosamine . pC-DHR-D2 was transformed into BgalU and Bpgm. BL21(DE3) was used as a control. The production of quercetin 3-O-(N-acetyl)quinovosamine was highest in BgalU (QS-3; 26.7 mg/L) (Fig. 4). Bpgm produced a comparable amount of quercetin 3-O-(N-acetyl)quinovosamine (QS-2; 24.6 mg/L). In addition, the ratio of quercetin 3-O-(N-acetyl)glucosamine and quercetin 3-O-(N-acetyl)quinovosamine was approximately 33–67 in both strains. Our previous study on production of quercetin 3-O-(N-acetyl)glucosamine showed that BgalU was the most productive strain and that its production of minor product such as quercetin 3-O-glucose was lower than that of BL21 (DE3) or Bpgm . We also observed the production of quercetin 3-O-glucose in QS-2. Therefore, we used QS-3 for further study.
Next, we increased the conversion of UDP-N-acetylglucosamine to UDP-N-acetylquinovosamine by introducing extra copies of Pdeg and Preq into the strain QS-4. As expected, the QS-4 strain (BgalU harboring pC-DHR-D2 and pE-DHR) produced approximately 33.5 mg/L of quercetin 3-O-(N-acetyl)quinovosamine (Fig. 4). Also, the ratio of quercetin 3-O-(N-acetyl)glucosamine and quercetin 3-O-(N-acetyl)quinovosamine in this strain was 70–30, indicating that the production of byproduct was reduced in this strain.
The production of quercetin 3-O-(N-acetyl)quinovosamine and quercetin-3-O-(N-acetyl)glucosamine was monitored for 48 h. Quercetin was added periodically to the medium to a final concentration of 600 μM. The production of both compounds continued to increase until 36 h, at which point approximately 158.3 mg/L (323.7 μM) of quercetin-3-O-(N-acetyl)quinovosamine and 112.3 mg/L (222.4 μM) of quercetin-3-O-(N-acetyl)glucosamine had been produced.
We adopted UDP-N-acetylglucosamine dehydrogenase (UDP-GlcNAc 6-DH) from B. cereus NVH 391-98 to synthesize UDP-N-acetylglucosaminuronic acid in E. coli. UDP-GlcNAc 6-DH converts UDP-N-acetylglucosamine into UDP-N-acetylglucosaminuronic acid . AmUGT10, which uses UDP-glucuronic acid as a sugar donor and transfers glucuronic acid onto the 7-hydroxy group of luteolin, was employed as a glycosyltransferase. We observed that AtUGT78D2, which used UDP-glucose as a sugar donor, could also use UDP-N-acetylglucosamine even though the catalytic efficiency of UDP-N-acetylglucosamine, was lower than that of UDP-glucose . Thus, we assumed that AmUGT10 could use UDP-N-acetylglucosaminuronic acid as a sugar donor because of the structural similarity of UDP-glucuronic acid and UDP-N-acetylglucosaminuronic acid. Both AmUGT10 and UDP-GlcNAc 6-DH were subcloned into E. coli expression vector pCDFDuet and the resulting construct pC-6DH-AmUGT was transformed into E. coli BL21 (DE3). Analysis of the biotransformation product of luteolin in the resulting transformant (LNAGA-1 in Table 1) showed a new peak with a molecular mass of 462 Da (data not shown), which did not match with the predicted molecular mass of luteolin O-N-acetylglucosaminuronic acid (503 kDa). It was assumed that the availability of UDP-glucuronic acid in E. coli was likely to be higher than that of UDP-N-acetylglucosaminuronic acid. In order to increase the substrate of UDP-GlcNAc 6-DH, we used two mutant strains, B-gal and B-pgm. These two mutant strains were show to be effective for the synthesis of quercetin 3-O-(N-acetyl)glucosamine and quercetin 3-O-(N-acetyl)quinovosamine . pC-6DH-AmUGT was transformed into B-galU and B-pgm. The resulting transformans (LNAGA-2 and LNAGA-3 in Table 1) were used for the biotransformation of luteolin. As shown in Fig. 5a, a new peak appeared in the culture filtrate of both transformans and its retention time was slight different from that of luteolin 7-O-glucuronic acid. The molecular mass of the product was 503 Da (Fig. 5c). In addition, the structure of the product was determined using NMR (see "Methods" section) and the structure was determined to be luteolin 7-O-(N-acetyl)glucosaminuronic acid. LNAGA-3 produced approximately twofold more luteolin 7-O-(N-acetyl)glucosaminuronic acid than LNAGA-2 (46.0 vs. 23. 9 mg/L), indicating that pgm mutant was more effective than galU mutant for the production of luteolin 7-O-(N-acetyl)glucosaminuronic acid.
Next, we optimized the production of luteolin 7-O-(N-acetyl)glucosaminuronic acid using LNAGA-3. First, the effect of cell concentration was examined. Cell concentration was adjusted from 1 to 25 at OD600. The production of luteolin 7-O-(N-acetyl)glucosaminuronic acid continued to increase until OD600 = 22 (final titer 65 mg/L), after which it decreased. Using LNAGA-3 at a concentration of OD600 = 22, the production of luteolin 7-O-(N-acetyl)glucosaminuronic acid was monitored for 48 h. Due to the low solubility of luteolin, 100 μM of luteolin (approximately 28.6 mg/L) was added periodically (at 0, 3, 6, 9 and 12 h, for a total of 500 μM of luteolin). The production of luteolin 7-O-(N-acetyl)glucosaminuronic acid continued to increase for 48 h. At this time, approximately 172.5 mg/L (approximately 344 μM) luteolin 7-O-(N-acetyl)glucosaminuronic acid was produced.
UDP-N-acetylxylosamine is synthesized from UDP-N-acetylglucosaminuronic acid by UDP-N-acetylxylosamine synthase (UXNAcS; Fig. 1). The UXNAcS gene was synthesized based on its published sequence . In order to synthesize UDP-N-acetylxylosamine in E. coli, UXNAcS was subcloned into E. coli expression vectors along with UGlcNAcDH. The UGT was selected based on molecular docking. AtUGT78D2 appeared likely to use UDP-N-acetylxylosamine. The 3- and 4-hydroxy groups of N-acetylxylosamine interacted with the side chain of Asp380 and backbone NH group of Trp359 (Fig. 2b). The methyl group of 2-acetamido group in N-acetylxylosamine was fitted into a hydrophobic pocket formed by Phe378, Gln381, and Met288 (Fig. 2b).
In order to synthesize quercetin 3-O-(N-acetyl)xylosamine, three genes, UGlcNAcDH, UXNAcS, and AtUGT78D2, were transformed into E. coli BL21 (DE3). The transformant (Q-NX-1) was used for the biotransformation of quercetin and the biotransformation product was analyzed using HPLC. Three new peaks appeared. The results of a previous study  indicated that P1 and P2 in Fig. 6 were likely to be quercetin 3-O-glucoside, and quercetin 3-O-(N-acetyl)glucosamine, respectively based on comparison of their retention times with those of authentic quercetin 3-O-glucoside, and quercetin 3-O-(N-acetyl)glucosamine (data not shown). AtUGTT78D2 showed affinity for UDP-glucose and UDP-N-acetylglucosamine . P3 was not observed previously and its molecular mass was 505.1 Da, which matched the predicted molecular mass of quercetin 3-O-(N-acetyl)xylosamine. This molecular structure was confirmed by NMR.
Although quercetin 3-O-(N-acetyl)xylosamine was synthesized in E. coli, more quercetin 3-O-glucoside was produced in the strain Q-NX-1. We used different E. coli mutants such as BgalU and Bpgm along with different E. coli expression vectors to increase the production of quercetin 3-O-(N-acetyl)xylosamine. The strain Bpgm was more effective than the wild type or BgalU. In addition, the higher copy number of expression vector pCDFDuet was better than the lower copy number vector pACYCDuet (Fig. 6). Therefore, the best strain for the synthesis of quercetin 3-O-(N-acetyl)xylosamine was QNX-4; that is, Bpgm harboring pC-6-DH-UXNAcS and pG-D2 (final titer 22.1 mg/L). QNX-4 produced about 2.7-fold more quercetin 3-O-N-acetylxylosamine than did QNX-1 (8.1 mg/L). Cell concentration was optimized. The concentration of Bpgm harboring pC-6-DH-UXNAcS and pG-D2 was adjusted from 1–10 and quercetin (100 μM) was added at 0, 1.5, 4.5 and 6 h. The mixture was incubated for 8 h at 30 °C. The production of quercetin 3-O-N-acetylxylosamine continued to increase until OD600 = 8. At higher cell concentrations, production decreased. Using strain QNX-4 with an initial cell concentration of 8 at OD600, 160.8 mg/L (318.4 μM) of quercetin 3-O-(N-acetyl)xylosamine was synthesized in 8 h from 185.6 mg/L (400 μM) quercetin.
We synthesized three novel flavonoid glycosides, quercetin 3-O-(N-acetyl) quinovosamine, luteolin O-(N-acetyl)glucosaminuronic acid, and quercetin 3-O-(N-acetyl)xylosamine. These flavonoid glycones have not, to our knowledge, been synthesized previously by any means using the strains developed in this study, diverse novel flavonoid glycosides could be synthesized.
Nucleotide sugar biosynthesis starts from glucose 1-phosphate. UDP-glucose and TDP-glucose are two central nucleotide sugars. For the synthesis of nucleotide amino sugars in E. coli, conversion of glucose 1-phosphate to glucose 6-phosphate by phosphoglucose mutase (pgm) is a key step (Fig. 1). Deletion of galU, which converts glucose 1-phosphate into UDP-glucose and thereby increases the pool of glucose 1-phosphate, resulted in increased biosynthesis of flavonoid amino sugars. Deleting the pgm gene also increased the production of flavonoid amino sugars. Synthesis of luteolin 7-O-(N-acetyl)glucosaminuronic acid and quercetin 3-O-(N-acetyl)xylosamine was more effective in the pgm mutant than in the galU mutant. However, high levels of quercetin 3-O-(N-acetyl)quinovosamine were produced in the galU mutant. The choice of the mutant affects the production of byproduct(s). The galU mutant produced more quercetin 3-O-(N-acetyl)glucosamine than the pgm mutant when quercetin 3-O-(N-acetyl)xylosamine was synthesized. The pgm mutant synthesized quercetin 3-O-glucose as well as quercetin 3-O-(N-acetyl)glucosamine as a byproduct during quercetin 3-O-(N-acetyl)quinovosamine synthesis. Therefore, we chose the mutant that produced less byproduct and more target compound.
The initial experiment of quercetin 3-O-(N-acetyl)quinovosamine synthesis showed that more of the byproduct quercetin 3-O-(N-acetyl)glucosamine was produced than quercetin 3-O-(N-acetyl)quinovosamine. We found that there were two possible ways to reduce the production of quercetin 3-O-(N-acetyl)quinovosamine. The first one was to increase the pool of UDP-N-acetylglucosamine. The other was to increase the conversion rate of UDP-N-acetylglucosamine to UDP-N-acetylquinovosamine. We used an E. coli strain that was engineered to increase the supply of UDP-N-acetylglucosamine and it turned out that more quercetin 3-O-(N-acetyl)quinovosamine was produced than quercetin 3-O-(N-acetyl)glucosamine. The UDP-N-acetylglucosamine could be a substrate of both AtUGT78D2 for the synthesis of quercetin 3-O-(N-acetyl)quinovosamine and Pdeg for the synthesis of UDP-(N-acetyl)quinovosamine. It was likely that conversion of UDP-N-acetylglucosamine into UDP-(N-acetyl)quinovosamine by Pdeg and Preq was faster than that of UDP-N-acetylglucosamine into quercetin 3-O-(N-acetyl)glucosamine. Increase in the conversion of UDP-N-acetylglucosamine into UDP-N-acetylquinovosamine also contributed to increase the final yield of the quercetin 3-O-(N-acetyl)quinovosamine and to decrease the production of quercetin 3-O-(N-acetyl)glucosamine.
The AtUGT78D2 used in this study was promiscuous for its sugar donor, which led to the production of byproducts. For example, in the synthesis of quercetin 3-O-(N-acetyl)xylosamine, two byproducts, quercetin 3-O-glucose and quercetin 3-O-(N-acetyl)glucosamine were synthesized. This was because the endogenous amounts of UDP-glucose and UDP-(N-acetyl)glucosamine were higher than that of UDP-(N-acetyl)xylosamine. By manipulating the nucleotide pathway, more quercetin 3-O-(N-acetyl)xylosamine was synthesized than quercetin 3-O-glucose and quercetin 3-O-(N-acetyl)glucosamine. The endogenous concentration of the sugar donor was a critical factor in the final yield of target molecule.
Quercetin 3-O-glucoside was not detected during quercetin 3-O-(N-acetyl)quinovosamine biosynthesis (Fig. 3) while its production was observed during the synthesis of quercetin 3-O-(N-acetyl)xylosamine (Fig. 6). The genes for UDP-(N-acetyl)quinovosamine were different from that for UDP-(N-acetyl)xylosamine. The catalytic parameters of each protein encoded by each gene would be different, which results in the different conversion rate of UDP-(N-acetyl)glucosamine. Therefore, the availability of a nucleotide sugar for each flavonoid glycosides was different, which might lead to this observation. The another possible explanation is that AtUGT78D2 might have much better catalytic efficiency for UDP-(N-acetyl)quinovosamine than either UDP-glucose or UDP-(N-acetyl)xylosamine and the catalytic efficiency of AtUGT7D2 was better for UDP-glucose than UDP-(N-acetyl)xylosamine. Due to it, quercetin 3-O-glucose was not found during quercetin 3-O-(N-acetyl)quinovosamine biosynthesis but observed during quercetin 3-O-(N-acetyl)xylosamine biosynthesis.
Nucleotide sugars are used to synthesize diverse glycones. Many nucleotide sugars have been identified and the corresponding genes have been cloned. However, application of these nucleotide sugars to the synthesis of glycones is an emerging field. We reconstructed the E. coli nucleotide pathway for the synthesis of UDP-quinovosamine, UDP-N-acetylglucosaminuronic acid and UDP-N-acetylxylosamine and synthesized three novel flavonoid glycones. E. coli mutants (deleted in galU or pgm) were used and the novel nucleotide biosynthetic genes were introduced. Using this approach, 158.3 mg/L quercetin 3-O-(N-acetyl)quinovosamine, 172.5 mg/L luteolin 7-O-(N-acetyl)glucosaminuronic acid, and 160.8 mg/L quercetin 3-O-(N-acetyl)xylosamine were synthesized.
JHA designed experiments. ARC, SJL, BGK and JHA performed experiments and analyzed data. ARC, SJL and JHA wrote the paper. All authors read and approved the final manuscript.
We thank Professor Jonathan Walton, Michigan State University, for editing the manuscript.
All data generated during this study are included in this published article.
This manuscript does not contain any individual persons data.
This manuscript dose not report data collected from humans or animals.
This work was supported by a grant from the Next-Generation BioGreen 21 Program (PJ01114801), Rural Development Administration, and Priority Research Centers Program through the National Research Foundation of Korea funded by the Ministry of Education, Science and Technology (2009-0093824).
12934_2016_582_MOESM1_ESM.docx Additional file 1. Codon optimized nucleotide sequences of UDP-GlcNAc 6-DH and UXNAcS.


An effective job search generally requires a heavy dose of interaction with other people, particularly in networking and interviewing situations. For extroverts, this process is often stimulating; the energy these individuals get from communicating with others often helps to carry them through their job search. For introverts, however, fighting against a natural preference for quiet self-reflection can seem like an uphill battle. As an introvert myself, I empathize with students who feel anxiety about the amount of interpersonal interaction required in the job search.
If you are an introvert who finds yourself in this situation, the following resources might be helpful to prepare and guide you through the job search and beyond.
Love this blog post- thanks for these useful resources for us introverts. I am including this in the SOC spot newsletter.
It's tough to think about work during winter break, but according to Career Center peer advisors, winter break is the ideal time to focus on how you want to present yourself to future employers, whether you're looking for internships, part-time jobs, or full-time opportunities after graduation.
Career Center peer advisors, who are available for drop-in advising every day during the semester, aren't taking their winter break lying down. Read on for their tips on how to stay motivated during the holiday season, from how to research jobs to the importance of keeping in touch with your favorite professors.
Lead Peer Advisor Eric Fleddermann, KSB/SIS/BA'13, has held two internships and four part-time jobs during his time at AU. Peer Advisor Robbie Gramer, SIS/BA'13, has held six internships and four part-time jobs during his time at AU, and Peer Advisor Quinn Smeaton has held five internships and two part-time jobs during her time at AU.
Recently, a young friend of mine, Mary, walked into a second interview for a job she coveted. She immediately noticed a photo of the interviewer's wife—who happened to be her old boss from her summer internship. This would seem a great opportunity for ice-breaking conversation, but to make matters complicated, Mary had a full-time job offer pending from the wife.
She was in a quandary; should she acknowledge that she knew the spouse, and how, or let this ice-breaking opportunity go?


text:
Q: Rails change boolean value with checkbox and jquery ajax I am new to rails and trying to change the value of a boolean via a checkbox and using jquery ajax:
<%- @tasks.each do |task| %>
  <div class="task-wrapper">
    <%= check_box_tag 'completed', task.id , task.completed, :class => "task-check" %>
    <%= content_tag :span, task.task %>
    <%= content_tag :span, task.deadline %>
  </div>
<% end %>

and the javascript:
$(".task-check").bind('change', function(){
  if (this.checked){
    var bool = this.checked ? 1 : 0;
    $.ajax({
      url: '/todos/toggle',
      type: 'POST',
      data: '{"task_id":"'+ this.value +'", "bool":"'+ bool +'"}'
    });
  }
  else {
    alert("no");
  }
});

then the controller:
def toggle(task_id, bool)
  @task = Todo.find_by_id(task_id)

  if @task != nil?
    @task.update_attributes(:completed => bool)
  else
    set_flash "Error, please try again"
  end
end

finally the routes:
resources :todos do
  member do
    post 'toggle'
  end
end

also tried collection but gives the same error.

when ever i try it i get a 404 error on the action.
what is the problem?
thanks

A: As of Rails 4, there's a way to do this without needing any additional JS or CSS:
<%= check_box_tag 'completed', task.id, task.completed,
      data: {
        remote: true,
        url: url_for(action: :toggle, id: task.id),
        method: "POST"
      } %>

It turns out that adding remote: true to an input causes jquery-ujs to make it ajax-y in all the nice ways. Thoughtbot's "A Tour of Rails jQuery UJS" briefly touches this (and many other good things available); the "Unobtrusive scripting support for jQuery" page in the jQuery UJS wiki does a thorough job on this as well.

A: Try the following (leaving everything else as is):
the javascript:
$(".task-check").bind('change', function(){
  if (this.checked){
    $.ajax({
      url: '/todos/'+this.value+'/toggle',
      type: 'POST',
      data: {"completed": this.checked}
    });
  }
  else {
     alert("no");
  }
});

the controller:
def toggle
  @task = Todo.find(params[:id])

  if @task.update_attributes(:completed => params[:completed])
    # ... update successful
  else
    # ... update failed
  end
end

Take a look at bundle exec rake routes to show you the paths that rails generates. In the case of your post 'toggle' which is a member you get a path like /todos/:id/toggle, hence the updated url in the ajax.
In the controller the :id from the path ends up in params[:id]. The data from the ajax request also ends up in the params hash, hence params[:completed].

redpajama_set_name: RedPajamaStackExchange


Since its founding over 40 years ago, the JMC has played a major role in developing Israeli musical talent throughout the land, regardless of where our students live, or what their financial means are. Our main task is to help develop each of our students to their highest potential, together with their teachers, in ways that their schools are not geared to do. We provide chamber music opportunities by bringing students together, getting the best coaches from Israel and beyond, and we involve them in orchestral playing, where they play under conductors that have a special rapport with young people.
One of the first people to teach here was the great cellist, conductor and composer, Pablo Casals. I had the privilege to work with Casals privately in Puerto Rico, and it proved one of the most treasured moments of my musical life. I can imagine how our students must have felt to have had the opportunity to work with Casals - it is something they will never forget. A young student, in addition to being nurtured by his teachers, will find special inspiration and excitement in working with somebody on that level. I find it necessary to provide this for all our Israeli students.
Music is of course a complex subject - it's not just about pretty tunes, pleasing harmonies, and restful moods. On the contrary, it can be an entry into the deepest recesses of our souls, with all the great philosophical, emotional and spiritual questions that man can ask. What is truly essential however is to understand the language - to be aware of the laws and the theories that underpin this language, so that musical speech can be meaningful, and intelligible. Overall, I want to encourage musicians to be more complete - so they do not have to rely only on their instincts, or on what their teachers tell them (though both are important). They have to use their own knowledge to create interpretations that have an innate authenticity.
Our dreams are that our students will achieve the highest standard of musicianship now, and in the future. The talent is certainly there, and with your support we can become partners in one of Israel's most worthy cultural endavours.


Asema, Joseph, Terve were native doctors and diabolic people who came to test the power of God in the ministry of the missionaries at Agbatse . But they were arrested by the power of God individually in different crusades. Today they have become believers enjoying their new life in Christ. But Asema had a ship wreck in his faith which made him to draw back due to pressure from the mermaid world and lack of missionary presence to help him become established.
Pray that God will have mercy and bring Asema back to the faith especially now that a missionary now is residing and ministering in the Land. Pray that all of them who have come to Christ will not draw back but grow unto maturity.
2018-(AMAMINI NDI OLUGHU): Pray that God will draw more souls to Himself!


text:
Away at camp
Gilford volleyball coach Joan Forge runs her 'Pass, Set, Spike' camp for the 14th year
by Jeff Lajoie
The 'Pass, Set, Crush' volleyball camp completes its 14th season at Geneva Point Center Thursday. Jeff Lajoie. (click for larger version)
MOULTONBORO – It's been nine years since Kat Labrie first arrived at the Pass, Set, Crush Volleyball Camp. Nearly a decade later, Labrie still heads to Geneva Point Center every summer to take part in the camp, as the Misericordia University junior and Plymouth Regional High School alum is now a counselor at the popular youth overnight camp run by Gilford High School volleyball coach Joan Forge.
"It's so much fun coming here as a counselor, the girls really look up to you and it's fun to teach them the sport," said Labrie, who is a hitter on the Misericordia volleyball team. "As a camper, you're so naïve and you come to play and just have fun and it's a great thing. It's just one of those experiences that I think everyone really enjoys and looks forward to every year."
Founded in 1998, 'Pass, Set, Crush' is offered to girls entering the seventh through ninth grades. But the camp, held at the 200-acre Geneva Point Center on Lake Winnipesaukee, is much more than your typical volleyball experience. The daily schedule features activities ranging from kick boxing to yoga, with swimming and canoe trips also part of the fun.
"There are a lot of different things for us to do up here," said camper Theresa Soldan, 14, of Bedford, Mass. "I've been coming here for three years and last year I brought my whole team from back home with me. The counselors are amazing and it's just a great experience."
While days start at 6:30 a.m. with a polar bear swim and fun run, the campers craft their volleyball skills during morning and afternoon skill sessions. Broken up by experience and skill levels on three different courts, Forge and her team of counselors touch on a variety of different issues while incorporating plenty of games throughout.
"I really like the tough volleyball sessions followed by a swim," said Kaila Martin, 14, of Sandwich. "My mom's been coaching here for a long time so I've been coming here since I was like five years old."
While the camp is popular with local players, Forge also attracts campers from all over the country. 10-year old Mackenzie Nunes attended the first of two sessions all the way from The Woodlands, Texas.
"I spend summers with my grandma up here in New Hampshire so I've been anxious to come to the camp for a few years," said Nunes, daughter of former Moultonboro Academy volleyball player Robin Burrows. "Just getting to meet a lot of different people has been awesome."
Gilford's Maddie Harris took part in Forge's day camp when she was in elementary school. As a soon-to-be eighth grader at Gilford Middle School, Harris says she gets a lot out of the overnight experience.
"I used to be a soccer player and then I started playing volleyball and kind of realized I liked volleyball more," she said. "The drills and the scrimmaging we do here is really good, I learn a lot by coming here."
Moultonboro resident Danielle Harrington, 13, may live close by, but she still enjoys her time at Geneva Point.
"I live like five minutes away but it feels like a different place just with everything that we get to do here," she said.
The camp features quite a few repeat customers, and players often see how much they improve over the years as they make their way up from Court 3 to Court 1. As a counselor, Labrie has followed a similar path.
"When I first started as a counselor, I worked with the younger kids and then I worked my way up," she said. "I know what they're going through so that's helpful. It was my first away camp so that was tough but you gotta make that move at some point. It's four hours of volleyball a day so it's nice that we're able to break it up and offer a lot of different activities. It's almost always really hot out so the girls get tired, without fail. They love to be able to go to the beach."
While Forge tries to make the camp affordable for everyone, she does offer one scholarship each summer in memory of Jenni Harmon. Harmon, who was a camper in the summers of 2000 and 2001, died tragically in an automobile accident in 2006. The scholarship "will be awarded annually to a girl entering the seventh through ninth grade who, without financial assistance, would be unable to attend camp."
One unique aspect of the camp is that Forge keeps parents and family in the loop each night as to what's happening, as she takes and posts over 100 photos from that particular day on the camp's Web site.
"We don't allow cell phones during the camp so this way, the parents can keep an eye on their girls and see what they're doing for themselves," Forge said.
The camp's second and final session of the summer came to a close today, although information on next summer's venture is available online at www.passsetcrush.com.
Additional terrain, lodging in proposed plan for Gunstock
SantaLand brings out families for holiday fun


text:
Expansion Slot
What Does Expansion Slot Mean?
Techopedia Explains Expansion Slot
An expansion slot is a socket on the motherboard that is used to insert an expansion card (or circuit board), which provides additional features to a computer such as video, sound, advanced graphics, Ethernet or memory.
The expansion card has an edge connector that fits precisely into the expansion slot as well as a row of contacts that is designed to establish an electrical connection between the motherboard and the electronics on the card, which are mostly integrated circuits. Depending on the form factor of the case and motherboard, a computer system generally can have anywhere from one to seven expansion slots. With a backplane system, up to 19 expansion cards can be installed.
Expansion cards can provide various functions including:
TV and radio tuning
Host adapting such as redundant array of independent disks or small computer system interface
Solid-state drive
Power-on self-test
Advanced multirate codec
Basic input/output system (BIOS)
Expansion read-only memory (ROM)
Older expansion cards also included memory expansion cards, clock/calendar cards, hard disk cards, compatibility cards for hardware emulation, and disk controller cards. The Altair 8800 was the first slot-type expansion card bus added to a microcomputer. It was developed in 1974-1975 by IBM Corp.
The expansion slot opening is generally located on the back of a PC and provides an electrical connection to the motherboard for an expansion card. Screws are then used to attach the card to the slot for added security.
Accelerated Graphics Port
Expansion Bus
Read-Only Memory
Small Computer System Interface
Audio Modem Riser
Blank-Off Plate