Partez à la découverte d'un site sauvage, naturel et protégé, d'une richesse ornithologique extraordinaire. Itinéraire parfait pour l'amateur d'oiseau, la balade en famille, ou le joggeur (parcours trail).
In your car, drive along the tracks of the Battle of Abbeville.
Step by step you will understand the heavy atmosphere of the city on 20th May 1940.
Probablement LA meilleure micro-balade de la côte!!!
This tour will let you discover the fauna and flora of the city together with the Somme's riverside.
A walk in the marshes, near the fish ponds, home to a fauna and flora characteristic of this particular environment.
A rural walk around a windmill which has regained its appearance and history just before sinking into oblivion.
A walk on the tracks of trains which used to cross the countryside to leave the Ponthieu for more than a century.
This walk offers history, splendid views over the Somme Valley and over the surrounding countryside (7.6 km).
This walk will let you discover past activities such as retting, towpath and you may fall in love with the magic and enchanting spirit of the Blue Springs ("Sources Bleues").
While leaving this town filled with marshes and ponds, you will see that the countryside is charming, verdant and wooded.
Une super balade 100% nature, phoques et patrimoine. Modulable en distances et pour toutes les cadences!


text:
Emergency communications must be out of harm's way
The only way to guarantee that first responders have working communications after a disaster is to establish a path-diverse back-up network based on satellite technology.
By Tony Bardo
On the Breezy Point Peninsula in Queens, N.Y., there aren't many houses that were spared by Superstorm Sandy. What with the wind and the flooding and a six-alarm fire that consumed 111 homes, there are few that made it through unscathed. But even in these few, more than 100 days after the storm has passed, you won't hear a dial-tone. The storm took out the telephone lines, just as it took out the power and disrupted plumbing and septic systems. According to Habitat for Humanity's Jim Killoran, who is still on the ground helping people rebuild, there are areas in New York City that may never see wireline telephone service again.
Hurricane Sandy was unpredictable because it was a disaster; but what happens in a disaster is not unpredictable. Power is cut. Communications are severed. And emergency responders must operate in a new and unfamiliar environment. In the immediate aftermath of a disaster, communications are essential to locate areas of crises, coordinate the response, and manage resources. The United States government understands this, which is why it is constructing a nationwide public-safety broadband network through the First Responders Network Authority, or FirstNet.
Every disaster threatens communications networks. Whether its hurricanes, floods, or earthquakes—or non-natural events—all ground infrastructure such as power lines, cellular base stations, fiber-optic cables and telephone lines are vulnerable to severe damage. First responders prepare for these disruptions by establishing back-up communications networks. Rather than contracting only with one provider, the agency also might contract with a second. But unless the back-up employs a true alternate-path technology, i.e., one that does not rely on terrestrial links (whether fixed or wireless), then both are still susceptible to disruptions on the ground.
The only way to guarantee that first responders have working communications after a disaster is to establish a path-diverse back-up network based on satellite technology. To do this, the government must integrate a fixed satellite service component into FirstNet. Satellite communication is not vulnerable to terrestrial disasters since the communications hub is either onboard the satellite itself (at approximately 24,000 miles above ground in geostationary orbit), or distant from the disaster in a well-protected facility.
Today's satellite broadband technology has reached performance- and cost-competitiveness with mainstream DSL services, and is routinely combined with wireless mobility applications for many enterprises, such as for Wi-Fi security. It offers the capability of transmitting the same high-speed data and information—including video—that first responders have come to expect from modern broadband connections, and its reliability has broken through the "overcast barrier" that plagued many home satellite dishes in the past. Today, satellite is the communications standard for critical missions in hostile environments, from the battlefields of Afghanistan to the foot-soldiers patrolling the border—and now, the neighborhoods of Breezy Point.
The nation depends on its first responders, but it's up to us to arm them with the tools they need to get their jobs done. Our first responders cannot do what they do best—save lives—without the vital communications networks needed to make it happen. The government created the FirstNet program to address the challenge of emergency communications. Now, it's critical to ensure that this network is out of harm's way.
Tony Bardo is assistant vice president for government solutions at Hughes.
Tags: Disaster Response Regulation Commentary Policy Public Safety Public-Safety Broadband/FirstNet State & Local Government View From The Top Commentary

redpajama_set_name: RedPajamaCommonCrawl


text:
Kings outduel Lakers, pull away in 3-OT thriller
2:07 AM ET
LOS ANGELES — De'Aaron Fox scored 34 points, Buddy Hield had 13 of his 25 after regulation and the Sacramento Kings beat the Los Angeles Lakers 141-137 in triple overtime Friday night.
In a game that saw 19 ties and 23 lead changes, the Lakers led 126-124 a minute into the third overtime when the Kings went on an 11-2 run to go up by seven with 1:54 remaining. Marvin Bagley III had five points during the spurt, including a three-point play to give Sacramento the lead.
Carmelo Anthony hit a 3-pointer with 9.4 seconds remaining to get the Lakers within a basket, but Hield sank a pair of free throws on the ensuing possession to put it away.
Tyrese Haliburton had 19 points for the Kings, who had seven players in double figures. They are 2-1 under interim coach Alvin Gentry.
The Lakers, who are 10-11 after dropping five of their past seven, had four players with at least 20 points with the first time this season. LeBron James led the way with 30 points, Russell Westbrook added 29, Anthony Davis 23 and Malik Monk 20.
The Lakers scored the first six points of the first overtime and were up 110-103 before the Kings scored seven straight, including Hield's 3-pointer to tie it with 28 seconds remaining. Davis had a driving layup with 9.0 seconds remaining but Sacramento forced a second OT on Hield's 18-foot jumper.
The largest lead anyone had in the second overtime was three points. James made a driving layup with 24 seconds remaining to tie it at 124. Sacramento had the final possession, but couldn't get a shot off.
HOW WE GOT TO OVERTIME
Monk scored 11 points during a 24-8 second-half run that saw the Lakers turn a three-point deficit with 4 minutes to go in the third quarter into an 86-73 advantage with 10:02 remaining.
The Kings would counter through with a 22-5 rally, including eight points from Alex Len, to seize a 98-93 advantage with 2:26 to go. Los Angeles, though, scored seven of the last nine points of regulation to send it to overtime.
After a layup by James gave the Lakers a 100-98 advantage, Fox tied it with a layup with 21 seconds to go. The Lakers had the final shot, but James missed a 3-pointer at the buzzer to send it to overtime.
Kings: It was Fox's second game this season with at least 30 points. He scored 37 on Nov. 10 at San Antonio. … Terence Davis had 13 points before fouling out in overtime. … Harrison Barnes (right foot sprain) and Richaun Holmes (right eye contusion) were out of the lineup.
Lakers: Anthony (16 points) was 6 of 13 from the field after going 7 of 27 the past two games. … This was Monk's third game with at least 20 points since joining Los Angeles during the offseason. … Davis reached 800 career steals when he stripped the ball from Fox during the first overtime.
Kings: Travel to Memphis Sunday.
Lakers: Host Detroit Sunday.
This article was originally published by Espn.com. Read the original article here.
Astronomers Discover Potato-Shaped Planet 1,500 Light-Years Away From Earth
Sir Keir Starmer says Boris Johnson's party apology is 'worthless'
Former MI5 agent: how we foiled terror attacks almost daily
Quick Charge Podcast: January 13, 2022


text:
The Role of Executors in Mariage Properties Sharing Based on Islamic Law
Syuaib Syuaib Islamic Family Law Department, Postgraduate, Institut Agama Islam Negeri Palu
M. Taufan B. Islamic Family Law Department, Postgraduate, Institut Agama Islam Negeri Palu
Ermawati Ermawati Islamic Family Law Department, Postgraduate, Institut Agama Islam Negeri Palu
Keywords: Marriage properties, executors, properties sharing, religious court
This study discusses the duties and functions of court bailiff in the settlement of marriage properties or gono gini in the religion court. This study used qualitative method which the data were collected through direct observation and interviews with the religious court staff and judges. The findings show that the tasks and roles of the bailiff at the religious court in solving the marriage properties. They play an important role in carrying out the execution of the marriage properties ot gono gini ssets. In the process of confiscation of the marriage properties, the confiscator is an important component in the final stage of the settlement of a case. The steps or stages of the process of carrying out the confiscation of the bailiffs are waiting for the verdict issued by the head of the judges in the settlement of marriage properties. Importance prospects of thought to the question of duty and fun g of the bailiff to the people as possible with their special studies were made of the court to the public.


My learning about Mesoamerican art, iconography, hieroglyphic inscriptions and monumental architecture started when I was at Palenque, at age 16, in 1961, while a junior at high school. I arrived, by myself, as a backpacker.
I then spent decades visiting Mayan ballcourts, but also courts at sites around Oaxaca, El Tajin (Veracruz) and of course the murals of Teotihuacan. But my heart and soul have always been attracted by the Maya, though I am well aware of the Olmec (visited Olmec museum exhibits when still a backpacker in the 1960's; that is half a century ago). But most of my writing is on the Classic Maya ballgame iconography.
The sculpture of Bilboa and nearby archaeological sites of Cotzumalhuapa attracted my interest already in the 1970's. The Bilbao, Cotzumalhuapa sculpture is a cultural mixture of concepts from the Teotihuacans, El Tajin, and many other cultures. Yet the sites are all in Guatemala: but along the trans-Guatemala long distance trade routes. It is probably the centuries of contact with Mexican cultures to the north and Central American cultures to the south that led to the cosmopolitan Bilbao style.
If I remember correctly, I actually made two trips to the nice museum in West Berlin where eight ballplayer stelae of Bilbao, Cotzumalhuapa, Guatemala are exhibited.
I brought an entire studio: tripods, lighting, Hasselblad, Leica, and Nikon cameras.
These were the days of film! But with literally the best scanning technology (CREO Scitex) Cami has done an impressive job of putting these images into digital format.
We continue working to scan the dozen monographs by Dr Nicholas Hellmuth on ballgame iconography of the Maya and also Cotzumalhuapa. As soon as funding is available we will dedicate these informative reports to the benefactor and make the documentation available to the world.
These reports represent two decades of photography around the world plus lots of research on the ballgames of Teotihuacan, Mixtec, Zapotec, Classic Veracruz (El Tajin), Xochicalco, Aztec, and the Maya of Tabasco, Chiapas, Yucatan, Quintana Roo, Campeche, Belize, Guatemala, Honduras, and El Salvador.
Nicholas himself has even played the game, twice: once in the ballcourt of Copan (for a TV documentary of Brevard Community College) and once in a ballcourt in western Mexico (for an international TV documentary).
The primary worldwide focus on the Mayan ballgames is on the human sacrifice. Yes, many game balls feature severed heads. Yes, it would not surprise me if severed heads were used as game balls (wrapped in rubber): notice this is not a statement of fact, it is an observation of potential discovery, or not, in the future).
Yes, many ballgames were potentially to parade a political opponent, play a game with him; have him conveniently lose (probably because he was handicapped physically or with drugs). But there were many other regional varieties of ballgames. It is especially noticeable that some ballplayers wear outfits similar to those worn by deer hunters.
These are only a sample of hunting scenes in Classic Mayan art on polychrome, vases, bowls, and plates. There are many other scenes, incised, and mold-impressed on vases and bowls. But the above four introductions to the iconography of Lowland Maya deer hunting scenes are a start.
Of course there are also bird hunting scenes, since it was bird hunting, with blow guns, which is most often described in the Popol Vuh.
There are many more ballplayer scenes on Maya vases, bowls, and occasionally plates than on carved stone monuments.
There are dozens of ballplayers as figurines, both of Jaina and other styles. Lots of these are modern forgeries, but many are authentic.
Ballgame paraphernalia: yokes, hachas, palmas, handstones, etc.
So I have spent a lot of time documenting that although yokes are common, that the Maya (and players in other cultural areas) also had lots of outfits that did not utilize yokes.
Once you realize that most Classic Lowland Maya ballplayers used wood, cloth, and other materials, it is equally important to not abandon the yokes: even on the Copan Maya ballcourt scenes, about half the players do wear yokes.
So let's take a good look at the yokes themselves.
We had permissions from INAH and the museum directors of the impressive museums in Mexico City and Veracruz. So, with all the camera equipment, we did lots of high-resolution photography of ballgame sculptures in addition to those from just El Tajin.
This publication features ballplayer decapitation stelae of Aparicio, Vega de Alatorre, Veracruz, Mexico.
It helps attract people to visit museums if the material is nicely presented on the Internet. Visitors help local people with jobs as guides, guards, etc. Thus, as soon as a donation comes our way to cover the cost of scanning the text and finding the photos from three decades ago to also scan, we will be making all these ballgame publications free to students, professors, and the interested lay public to assist all the countries where ballcourts are in the archaeological parks and ballgame artifacts are in the museums.
I lived in Graz, Austria for over eight years. Graz was the home of ADEVA, an elite book publisher which published most of the major Maya, Aztec, and Mixtec codices.
ADEVA also published my PhD dissertation on the surface of the underwaterworld iconography (waterbirds, waterlilies, deities and symbols of water and caves): MONSTER und MENSCHEN in der Maya-Kunst.
The Spanish experienced the ballgame being played in front of them.
So these descriptions are very helpful, albeit these are not the Mayan games and not the Teotihuacan games either.
Tour guides in Mexico tend to use the word Pok a Tok when talking about the ballgame. But since there are 21 Mayan languages in Guatemala, several more Mayan languages in Mexico, and dozens of non-Mayan languages (including Xinca still today in Guatemala), I tend to use the basic words rubber ballgame.
What would be helpful would be a tabulated chart of all the words in prehispanic languages for the ballgame.
To scan each 1990's publication, and to hand-correct the scanning software mistakes, takes about two months for each book.
Then we try to find the original photographs (taken in the 1970's and 1980's and 1990's). This is a challenge to find negatives from those years.
Then these negatives have to be scanned. This takes about 2 months per book (mostly to find the actual negatives).
Then a graphic designer puts fresh new digital images onto the pages which were originally xerox-copied.
The original photos were taken with Leica and Hasselblad.
If you are able to donate, we can put your name, your company name, or your foundation name as the sponsor (of one book, or the whole series).
Contact FrontDesk " at " FLAAR dot org. Donations are tax exempt in USA. FLAAR Mesoamerica is a non-profit in Guatemala; FLAAR is tax exempt research and educational institute in USA.


MORO Project 4 - Projects by K.E.C.
In this assignment, the robot would be placed in a "warehouse" and had to circumnavigate the rooms within, generating a binary map of "wall" or "free space" which was continuously updated to a wireless host. The point of this search was to locate any "fires" represented by a bright light bulb. The biggest challenge of this arena was a 20 degree incline which the robot must be able to climb in order to explore the upper level room. A secondary goal of this project of which the point was not made entirely clear until the final assignment was the ability to pick up (or at least move) a can. Two new robots were created to accomplish these goals, each more capable than the previous.
Path Plan - Decide where to go based on past and current sensor data.
Map Creation - Generate a binary map of the explored arena.
Wireless Communication - Update the map with a host.
Find a Fire - A very bright light bulb somewhere in the arena.
Climb a 20 Degree Incline - All rooms must be explored.
Of course, each of these goals requires several other abilities such as monitoring distance traveled in a movement, but most of this is taken care of in programming.
The previous robot would not be capable of completing all of the tasks of this assignment, so a new one was constructed. The first objective was to build a robot capable of climbing the ramp. Although it is very possible to calculate the exact amount of power needed to climb the ramp given the incline and robot weight, we did not have the necessary specifications of the motors in use, so we relied on a "guess and test" creation method. A robot was designed with a large gear ratio and a front claw to grab objects, but when trying to ascend the ramp, it would simply spin out or flip over backwards due to the XBC weight on at the rear.
This basic robot was disassembled and rebuilt with a new goal of moving the XBC to more the center of the robot instead of the rear. Moving the weight forward would provide for more drive wheel traction, but too much forward weight would result in a potential front flip problem when an object was picked up by the claw or when descending the ramp. Various arrangements were tested on the ramp until a final design proved effective. This version of the robot had many new features unseen in previous incarnations including rear omni-wheels, a forward gripper, and three drive wheels per side to aide in support and balance. It was more then capable of climbing the ramp and grabbing an object, or doing both at the same time!
Many sensors were added to this robot to help it complete it tasks. In the back, to spring loaded whisker switches were used to allow alignment along a wall. Each side contained two infrared distance sensors for wall following, and break beam sensor were in place to count wheel rotations for moving accuracy down to a centimeter. Two shielded light sensors were placed on the front of the robot to track changes in light as well as another IR distance sensor. The MCU camera was also attached to a servo motor on the front which allowed for camera panning. It would be used in an attempt to locate the "fire" as well as a colored can to be moved. As seen in the above picture, a shield was placed around the camera to block out any unwanted distractions within its peripheral vision.
A simple "left turn rule" was used for navigation. In this setup, the robot will drive straight as long as something is to its left. When an opening is detected, it will turn left until forced to make another decision. The only time a right turn is made is when a wall is seen to the left and in front of the robot. By using this rule, our robot was able to navigate the entire arena within the ten minute time limit. The two IR sensors on the side were used to keep a fairly consistent distance from the wall at all times. The robot would also occasionally stop and pan the camera, looking for any fire. When the light bulb representing the fire was discovered, the robot left is current path to investigate and record the exact location of the fire in the warehouse before returning to its initial trajectory.
A basic map of the warehouse was also created with 1s representing wall and 0s representing free space. This map was updated wirelessly to a host and was also used to ensure no back tracking took place. Eventually, the robot came to the incline and successfully climbed it, exploring the upper room. The descent was just as smooth, and the final rooms of the warehouse were explored before the robot exited the arena. After the arena had been navigated, the secondary test was initiated. A green can was placed in front of the robot, and after detecting the can with the camera, rotating until it was centered, and calculating the distance to it, the can was grasped by the front gripper and moved to an arbitrary location.
As it would turn out, this was our most successful assignment given the overall difficulty of it compared to previous projects. Although the robot did contain many sensors which were not actually used, this was primarily due to the fact that we didn't know how well the robot would preform to our initial strategy, and so we planned ahead with other various options in case of failure.
In all reality, our initial over planning was an important step to take in most any design. Robots are very likely to fail, especially when they have not been adequately tested. It would be best if there were many points of failure and active back up plans which would trigger in a certain circumstance. In our case, we just didn't want to have to redesign the robot to add a new sensor or two. Most all of the abilities created in this project as well as those previously used would be crucial in completing the final project.
Although the robot would not know what it was driving into, we were given a map ahead of time just to ensure there would be no unnecessary surprises.
Our first attempt at a new, more capable robot.
The omni-wheels are capable of moving side to side as well as normal rotation due to the row of smaller wheels imbedded around the edge. These provide for much better navigation than castors.
The forward gripper is ready to grab something.
Although a lot of sensors are placed on this robot, not all of them are used.
These "ET" sensors would become a staple in our design, but a quick flash of light without the proper code to deal with it would render them useless.
Having multiple wheels put together (like a dually truck) does not create more traction as one might think because the weight placed on the axle has not increased. Having extra wheels does provide more stability for the weight present while keeping the axle from bending under pressure. Also, it just looks kind of cool!


With the right combination of equipment, tools, and accessories, cooking becomes easier and faster. Whether you are cooking for a large family or for two, the right tools and accessories help you create the perfect meal. Nowadays people have extremely busy lives and spend less time in the kitchen. They require kitchen accessories that save time as well as make cooking faster and easier. Advance in technology has come in handy to meet the needs of people and provide an array of kitchen accessories that make cooking fun and easier and save space.
Below are eight important kitchen accessories that you can't live without.
You cannot live without kitchen appliances such as blenders, mixers, graters, and toasters because they make kitchen life easier for you. You can use a blender to make smoothies, mix drinks, soups, and sauces quickly and easily. Apart from shredding cheese, you can use a grater to zest citrus fruits and shred vegetables such as potatoes. You can consider the space-saving toaster that can be attached to the wall and thus saving you space. You can purchase kitchen appliances on www.bazaargadgets.com/se and enjoy massive discounts.
These important accessories are often overlooked in the kitchen. It is important to protect your hands in the kitchen to avoid injuries and accidents. The two most common injuries in the kitchen are burns and cuts. Take caution when using your knife; a sharp knife will prevent you from cutting yourself or injure you when handled inappropriately. Burns are prominent in the kitchen especially when pulling food from the oven and handling hot cookware. Ensure you protect your hands using an oven mitt when getting food from the oven. Use a kitchen towel to protect your hands when handling a hot pan.
Almost every dish requires some cutting and chopping making a cutting board an essential accessory in the kitchen. There are numerous types of cutting boards in the market made for cutting meat, vegetables, fruits, etc. You can buy several cutting boards to save time washing a cutting board every time you want to cut something different. It is advisable to buy two cutting boards, one for raw proteins and the other for cooked food to avoid cross-contamination while cooking. Cutting boards come in different colors and shapes to add an aspect of fun and life in the kitchen. While plastic cutting boards are inexpensive and available, wooden ones are more sanitary. Purchase a cutting board that is dishwasher safe and durable.
You cannot live without knives in the kitchen because they have an array of uses. They help in chopping, slicing, and dicing. In addition, knives mince fresh garlic and herbs as well as cut meat. Knives should be sharp and high quality to perform their functions properly. You can opt for a chef knife that is versatile and you can chop, slice, cut, and mince without changing tools. When slicing small items such as garlic cloves, you can use a paring knife instead of a chef's knife.
Imagine preparing food in a dim lit kitchen at night. You strain to see your ingredients and other tools in the kitchen, which may cause injury. Poor lighting in the kitchen is frustrating and causes eyesight problems. Adding under cabinet lights to your kitchen brightens the countertops and gives you a good sight when preparing and cooking food. You don't have to bend over to see what you are preparing. Intense bending not only causes eyesight disorders but also strains your back.
If you have a busy lifestyle and you still want to enjoy a home cooked meal, a slow cooker is a must-have. With this accessory, you can cook soups, stews, and casseroles virtually. Nowadays people are very busy taking care of work-related and personal issues and cooking has become a luxury. A programmable slow cooker is a useful accessory in the modern lifestyle because you put all the ingredients in the cooking pot and let it do the cooking; the outcome will be a perfect meal. You can prepare all the ingredients you need for your dinner in the morning before leaving for work put them in the slow cooker, go to work and in the evening, you will get a hot and ready meal. Purchase a slow cooker that is the right size for your family.
Whether you want to measure a teaspoon of sugar or a tablespoon of salt, measuring tools come in handy. If you are following a recipe and you do not have measuring equipment, how will you ensure you are putting enough of ingredient X and Y? Therefore, measuring cups and spoons are vital when following any recipe. A food scale can be used be used to complement measuring cups and spoons. You can use a food scale to measure baking ingredients and meal portions.
Wine and can openers are often overlooked and you only notice you need them when you are in need. At times, we desire canned food or prefer it because it is time and energy saving. Only a few things are more frustrating than reaching for a can of pumpkin, beans, or coconut milk only to realize you do not have a means to open it. A wine opener can save a date and save you the embarrassment of inviting friends for some drinks only to find you do not have an opener. There's no need to stock up wine in the house without a wine opener.
Like any good workplace, a kitchen needs tools, equipment, and accessories. Long gone are the days when you only required sharpened rocks, sticks and fire to prepare a meal. Today, you need so much more and technology has led to the invention of numerous cooking tools and accessories to enhance the cooking experience. To make your kitchen an enjoyable place to work, ensure you endow it with vital kitchen accessories. In addition, make sure your kitchen is clean to create a favorable place to make meals.


text:
A presente lista corresponde aos veteranos da Primeira Guerra Mundial (1914-1918) que faleceram em 2009 e 2010.

Veteranos da Primeira Guerra Mundial reconhecidos oficialmente (6)

Veterano não reconhecido oficialmente

Veteranos da era contemporânea à Primeira Guerra Mundial
Aqui, estão listados veteranos de outros conflitos ou guerras civis contemporâneos à Primeira Grande Guerra, reconhecidos por seus respectivos países.

Guerra civil finlandesa (1918)

Revolta Paulista de 1924 (Tenentismo) e Revolução de 1930 no Brasil

Ver também
 Veteranos da Primeira Guerra Mundial ainda vivos

Referências
AFP (13/01/2009) - "Morre um dos últimos combatentes britânicos da 1ª Guerra Mundial"

Veteranos Primeira Guerra

redpajama_set_name: RedPajamaWikipedia


text:
Shulamith Firestone: Xenofeminist Before Her Time?
Victoria Margree
Untitled, Salvador Dali
Shulamith Firestone's The Dialectic of Sex proved immediately controversial upon its publication in 1970. Its main thesis is that the origins of women's oppression lie in biology: in the fact that it is women and not men who gestate and give birth to children. If Firestone's analysis was stark, then her solution was revolutionary: since it is biology that is the problem, then biology must be changed through technological intervention. This would begin with contraception and abortion, but would ultimately end with the complete removal of the reproductive process from women's bodies. The Dialectic of Sex imagines a post-revolutionary world in which human society has been transformed through the appropriation of technology for progressive goals. With reproduction taking place through artificial wombs, the nuclear family will have been disbanded and children will instead be raised – and enjoy unprecedented freedoms – in "households" of seven to ten adults with whom they need not have any genetic relationship. Automation will have rendered alienated labor obsolete, freeing people to pursue activities of their own choosing. Anatomical differences between the sexes will have ceased to be significant. And women, children and men will have been freed from the tyranny of an oppression that is rooted in biology.
While it is considered one of the founding texts of U.S. radical feminism, Firestone's manifesto in fact always existed in a vexed relationship with that movement. Likely reasons for this include Firestone's pro-technology stance and her staunch opposition to feminist celebrations of nature, which she criticized particularly in relation to the movement for natural childbirth, seeing this as "only one more part of the reactionary hippie-Rousseauean Return-to-Nature" mentality.1 With its affirmation of the utopian possibilities of technology and its vision of a vastly transformed future, Firestone's book was also easy for non-progressives to dismiss as preposterous and out-of-touch. It didn't help that Firestone withdrew from the scene of feminist politics in the same year that the book came out. As a result, The Dialectic of Sex was in a sense, orphaned, cast out upon the world to fend for itself without the guardianship of an author who would defend it against misunderstandings and correct or revise its arguments as feminist theory evolved over the years. It became all too easy for the book to be dismissed in subsequent decades as a far-fetched, utopian hangover of swinging 1960s radicalism, and to be remembered among the texts of second-wave feminism only as the "mad one about artificial wombs."
But what if Firestone was simply too far ahead of her time? With the recent emergence of xenofeminism as a feminism that affirms the potential of technology to open up a radical future, we have a new feminist theoretical framework that shares many of the coordinates of Firestone's work. While The Xenofeminist Manifesto, first published online in 2015 by the Laboria Cuboniks collective makes no reference to The Dialectic of Sex, founding member Helen Hester's recent book Xenofeminism is explicit in its acknowledgment of Firestone's influence.2 Hester's iteration of xenofeminism develops three key themes from the collective's original manifesto – technomaterialism, anti-naturalism, and gender abolitionism – and draws upon The Dialectic of Sex in relation to each.3 Xenofeminism's affirmation of the alien, in the sense of the non-natural and non-familial, would surely have been welcomed by Firestone, whose embrace of technology had always been motivated by her profound anti-naturalism and her desire to disrupt the biological family.
Firestone had famously argued that women's oppression was, in a particular sense, natural since it was rooted in reproductive biology. Her core thesis was that throughout most of human history, before the advent of reliable methods of contraception and abortion, women had been at the "continual mercy of their biology." The post-pubescent female could expect to spend perhaps 30 years of her life (should she live so long) pregnant, giving birth, or nursing small children, as well as suffering the female ills associated with her reproductive system. Firestone held that these facts, together with the protracted period of helplessness of human infants and their consequent need for care and supervision, entailed a severe curtailment of women's capacity to take part in the productive labor that produced food, resources, and wealth. Children's dependence upon women made women dependent upon men for the necessities of life, and from this division of labor – which sprung from "natural reproductive difference[s]" – emerged a system of domination. Men, Firestone believed, sought to fortify the power granted them through women's dependence, and then also extended that domination wherever possible to other men, leading to the incessant formation of further divisions of humanity into unequal classes, castes, or races. It was in this sense, then, that for Firestone the oppression of women was natural: it was rooted in a reproductive biology that, for millennia, had not been within the power of human beings to control.
In analyzing gender inequality as natural, Firestone had always been offering an explanation, not a justification. Citing both Karl Marx and Simone de Beauvoir as influences, Firestone insisted that "the 'natural' is not necessarily a 'human' value." "Human society," she wrote, "is an antiphysis – in a sense it is against nature; it does not passively submit to the presence of nature but rather takes over the control of nature on its own behalf." She thus makes the perfectly sensible point that human beings do not, for example, passively submit to dying of exposure during the winter months on account of rain and snow being natural and therefore good, or at least unchangeable, but instead use technologies such as tools to build shelters and make clothes. Nature may have a certain explanatory power in showing how certain phenomena may arise, Firestone thinks, but it does not thereby establish those phenomena as being outside the scope of corrective human action.4
The key issue for Firestone was that in the late twentieth century, technology had developed to a point where it was possible to intervene into the natural conditions that inclined human societies towards forms of domination. She thus saw the new reproductive technologies that were on the horizon such as test-tube fertilization, together with existing technologies of contraception and abortion, as giving women historically unprecedented levels of reproductive autonomy, allowing them to choose whether, when, and how to become pregnant. She envisaged a future in which ectogenesis would extend possibilities of parenting beyond the biological family to adults of various ages and sexual orientations, while the choice of a non-reproductive lifestyle would also be valued and respected. Further, she saw cybernation as offering to emancipate people from alienated labor, enabling the development of a socialist society in which all human beings would be free to pursue work of intrinsic value according to their particular interests and abilities.
In 1970, with the birth of the first "test-tube baby" still eight years away, Firestone could be criticized for the supposed fancifulness of her predictions about technologies that seemed the stuff of science fiction. Now in 2018, with many of these technologies having become commonplace, and the suggestion that even artificial wombs may be on the horizon, objections are more likely to be leveled at her belief in their progressive implications. There are indeed good reasons to be skeptical about the in vitro fertilization and egg-freezing industries as the horrors of international commercial surrogacy have shown that reproductive technologies can be used to entrench rather than alleviate forms of domination. To frame these as objections to Firestone overall would be unfair, however. Despite her reputation in some quarters as a naïve champion of technology, she had in fact always recognized that under the existing conditions of patriarchal corporate capitalism, such technologies would be used to further entrench oppression. But she refused to accept that science and technology were inherently masculine or patriarchal endeavors, instead insisting that the misuse of technology in, for example, the creation of the atomic bomb, was a consequence of science and technology being shaped within a male-dominated culture. Her manifesto was a call for a revolutionary activity that would seize technologies of both production and reproduction from these forces and put them into service in the project of emancipating women, children, and ultimately also men (whom Firestone viewed as being psychologically deformed by the requirement to embody patriarchal norms). Her interest in the unrealized liberatory potential of technology proceeded from her trenchant anti-naturalism, her insistence that what is supposedly natural should not place limits on our imaginings of a better, fairer, form of society, or our attempts to bring such a society into existence.
And thus we return to Xenofeminism, which closes its own manifesto with the deeply Firestonian exhortation, "If nature is unjust, let's change nature!" I am not trying to suggest that Xenofeminism is simply repackaging Firestone's ideas. Far from it. Xenofeminism offers an exciting and fresh reorientation of radical politics that confronts specifically twenty-first century problems while drawing upon the lessons learned from both the successes and failures of second-wave feminism. Hester's discussion of the hacking or repurposing of existing technologies such as 3D printing, hormone-growing, or medical diagnostic tests, for example, is far more rich and detailed than was Firestone's call for the seizing of technologies, which lacked a clear praxis. Just as importantly, Hester's emphasis upon intersectionality allows her to avoid many of the problems within Firestone's text, particularly in her discussions of the historical entanglement of reproductive technologies in abuses against Black women (never properly acknowledged by Firestone), and the possible implications of Firestone's ideas for trans people. More generally, xenofeminism's advocacy of gender-abolitionism, while having significant points in common with Firestone's vision of a post-gender society, in fact brings a welcome attention to plurality ("Let a hundred sexes bloom!") where Firestone's emphasis on androgyny can look like a somewhat worrying attempt to eliminate gender differences entirely.
I am suggesting, however, that the emergence of xenofeminism shows that it is high time for a critical return to Firestone's text. This is, in fact, what I have attempted to do in my own recent book, Neglected or Misunderstood: The Radical Feminism of Shulamith Firestone where I argue for The Dialectic of Sex as an often deeply problematic text which nonetheless provides vital coordinates for addressing issues of reproductive justice today.
We are witnessing a global frontal assault on reproductive freedoms: on the ability of "impregnatable subjects"5 to access health advice, contraception, and abortion, and to undergo pregnancy free from a culture of surveillance and suspicion. At the same time, many global inequalities worsen, exacerbated by the effects of environmental damage, particularly in the Global South. The ability to choose whether to participate in biological reproduction, and if this is what is chosen, to do so in social conditions that provide autonomy and dignity for parents and children alike seems increasingly under threat. Firestone's manifesto of 1970 and Laboria Cuboniks' manifesto of 2015 together identify key precepts for a collective politics that does not accept this as the inevitable face of the future: that material/economic transformation is needed; that solidarities beyond those of the genetic family must be sought; that gender dimorphism damages everyone; that science, technology, and rationality must be embraced by a progressive politics; and that nature must not be allowed to function as the justification of any form of domination.
1. Shulamith Firestone, The Dialectic of Sex (London and New York: Verso, 2015), p. 181. Subsequent references are to this edition.
2. See Peter Heft's review of Hester's book in The Mantle (July 23, 2018). 9http://www.mantlethought.org/philosophy/genderhacking-alien-future-helen...)
3. Helen Hester, Xenofeminism (Cambridge and Medford, MA: Polity Press, 2018), p. 3.
4. Editor's note: For those interested in the meta-ethics behind this position, I would suggest G.E. Moore's discussion of the naturalistic fallacy (Principia Ethica §12) or Hume's discussion of the is/ought distinction.
5. See Hester, p. 18. Hester uses this formulation in order to recognize – which Firestone does not – the inadequacy of the term 'woman' for designating all people who can become pregnant.
On Phenomenology, Merleau-Ponty, and Good, Hard, Sweaty Sex
Against The Totalitarian Language of History
Battling the Noontide Demon in the Age of Lockdown


text:
INTRO, coaching:

You were left with fewer tools than we intended;
To borrow an excellent metapor from Ben:
as you climbed up on ladder, not many low rungs to start with.

Most of you filled in with tenacity: kudos!
In future, I'll try to avoid more cases where your're left without rungs to climb on.
But the lesson applies: tenacity is the most important ingredient.

Another view:
you're all doing science.
Imagine the 19th century physicists who were just discovering ethe rules of electricity, putting together crude Victorian devices.

You too are operating in a space of half-understanding:
what matters isn't so much that someone on the internet actually does understand it all, and you just need to find and interpret their explanations.
More important is that you have crude Victorian tools and and means to experiment:

you have a console and a scratchpad and console.log, and with just those you can experiment to find out the hidden laws of JS.
Don't think of it as effort wasted, an inefficient path to understanding, when people with the answer could get you there faster.
The skill of learning to experiement, learning to operate with half-understanding, is more important than any particular fact about JS.

Programmers at every level spend most of their time on the edges of their own understanding, messing around with a few toeholds into inscrutable new tools.
Getting comfortable in that mode is a worthwhile investment.

HW1 thoughts:

---

REVIEW

Ternary conditional ops

FUNCTIONS:

Example: plus(x,y) {
	return x,y;
}

Defintion vs Call

Inputs: Arguments are copied into parameters, used as local variables
Local variables shadow globals

Output: Return value specifies replacement in calling context
Exits immediately
Without return, or return w/o value --> undefined

Example of calling context:
(1+plus(x,y));
(1+Math.sqrt(4))

----

DEFENSIVE PROGRAMMING, SAFEGUARDS, ASSERTIONS

----

OBJECTS [t+00]

All the examples of data values we've seen have been (apparently) **primitives**, except for arrays, which we've assumed to contain primitives.
But arrays themselves are the tip of an iceberg: data elements which are _compound values_ with independent parts.
In JS, all such compound structure are classified as **objects**.
An object is just a _set_ or _group_ of values: a big box containing a bunch of little boxes. **[Draw obj box]**
These inner boxes are called **properties** or **members**; they're similar to variables but not exactly the same.
Like variables, properties have both a _name_ (the label on the box) and a _value_ (what's in the box).
A property name is often called a **key**.

EX: [Draw big box: {noise:'quack', feet:2, canSwim:true, canWalk:true, canFly:true}]

So a property is a pair: a key and a value, and a object is just a set of key-value pairs.
Within a particular object, keys are always unique, although the values may repeat.

We can also think of an object as a **dictionary**: its keys are words, and each word has a value, its "definition".
Even if all the values are blank or undefined values, the object is still a bag of words.

[Delay:
I say "bag" (or "set") instead of "list" or "box" because the properties inside aren't inherently ordered.
Don't assume they're alphabetized by key, or sorted in the order of their addition to be bag.
They're just _in_ the set, or not.

And there's a special operator to test this: **\_ in \_**.
** _key_ in _object_ ** returns true whenever the object includes a property named _key_.]

INCREMENTAL CREATION [t+05]

To build an object incrementally, first create empty object then add properties:
```
var duck = new Object(); //empty object
duck.noise = 'quack';
duck.feet = 2;
duck.canSwim = true;
duck.canWalk = true;
duck.canFly = true;
typeof duck;
```

Notice: duck itself is a variable, declared with var.
Its properties aren't variables, but they are compartments to store values, and they are identified partly through their collective name, 'duck'.  They should remind you of array elements.

**[Diagram: big box with exterior label _duck_, interior properties...]**

SHORTHAND [t+07]

You may also see two "slang" forms of empty-object creation:
`duck = new Object;`
`duck = Object();`
Both of these have same result, but for now always practice using the full form: `new Object()`

LITERAL NOTATION [t+08]

Objects also have a special notation which creates an object and its constituent properties all at once:
`var duck = {}` for an empty object, or
`var duck = {noise:'quack', feet:2, canSwim:true,...}`
That's called **object literal notation**, because it enumerates each property.
It's somewhat a misnomer because the values may be expressions rather than literal values:
`duck = {noise:'qu'+'ack', feet:(1+1), canSwim:canFloat && canPaddle}`

Also called **JSON**, a format sometimes used to describe structured data outside JS programs.

Notice that quotes around the keys are optional, but required when the values are strings!  Why? [Ans: b/c expressions are allowed as values, so variables may appear-- must preserve difference between x (which holds a value) and 'x']

And once you have an object created by either method, you can always incrementally add new properties:
```
duck = {feet:2, canSwim:2};
duck.noise = 'quack';
duck.canFly = true;
```

NESTED OBJECTS

Often, object property values are primitives, but like variables, may also contain other objects.  In this case, have **nested** objects.
```
var nest = {mama:{noise:'quack',feet:2,canSwim:true}}
// equivalent to:
var duck = {noise:'quack',feet:2,canSwim:true};
var nest = {mama:duck};
//equivalent to:
var duck = new Object();
duck.noise='quack';
//etc...
var nest = new Object();
nest.mama = duck;
```
**[Diagram: nested big boxes, inmost properties]**

MEMBER ACCESS [t+15]

Object members/properties act like variable in that they can be set to values or used as values in expressions.  But they always have to be named through their object in one of two ways...

**dot notation: obj.key**
The dot/period symbol, in any context besides a decimal in a number, is an operator: **\_.\_** (binary infix)
Its inputs are the object and the property name/key, and the output is the property value:
```
var duck ={noise:'quack', feet:2};
duck.noise //'quack'
duck.feet //2
duck.feet = 1;
duck.feet++; //two funnelled operators!
```

**index notation: obj[keyExpr]**
A related operator is the **member operator** or **index operator**: **\_[\_]** (binary mixed-fix)
```
duck['noise'] //'quack'
duck['feet'] //2
duck['feet']=3;
duck['feet']--;  //two funneled operators!
```
Pronounced "duck sub noise" (as in subscript) or "duck index noise".
(You've already seen this notation in arrays, and arrays and objects are very similar in ways we'll shortly explore.)

There is one critical difference between these two operators:
**dot** is always followed by a literal key name, unquoted, but
**[member]** may substitute expressions.  Therefore, if you use the literal key name, it must be quoted: duck['feet'].
Could also say: `duck['f'+'e'+'e'+'t']`, or `var x = 'feet'; obj[x];`  But `obj.x` always means `obj['x']`.

This illustrates that key names are really just strings, and they can be **any** string.  But if your string is weird, have to use [] to access the member:
`obj[' '] = 'space'`
`obj[''] = 'empty str'
`obj['"'] = 'quote mark'`
Weird property names can be very confusing, so only do it with good reason.  But it's a valid consequence of the rule: object is bag of **strings**.

CHAINING [t+20]
If objects are nested, both membership operators can be **chained**:
`nest.mama.noise;`
`nest['mama']['noise'];`
Don't confuse latter with:
`nest[mama['noise']]`// DIAGRAM as operators, discuss...
[Note: chain operations are NOT ASSOCIATIVE: a.b.c always means (a.b).c, never  a.(b.c)

Or mix them together:
`nest['mama'].feet`

You can interpret it as stacking two operator funnels: output of one is input of next. **[Diagram]**

CREATING and DELETING PROPERTIES [t+25]

Unlike variables, object properties aren't declared before using; they're created whenever they're set for first time.
If they're read without creating, no error but have value _undefined_;

Also unlike variables, properties can be **deleted**:
`delete obj.one`
`obj`
`delete obj['two']`
`obj`

**delete** is a unary operator: takes one object-prefixed property name, has side-effect of deleting it.  Actually has a return value (usually true), but ignore it for now; pretend only side-effect.

EXERCISE [t+30]
1) Make an object represeting yourself: give that object 3 properties and assign it to a variable.
2) Make similar objects for each other person at your table, but use a different notation to create them.
3) Make an object for the entire table, with a property holding each person and named after that person.
4) Reference one of your properties using a chained name starting with the table, rather than a variable for the person.

DETERMINING PROPERTIES [t+35]
How can we tell whether an object has a certain property/key?  It's not enough to check for _undefined_, since there may be keys in the set with an undefined value.

There's a special (binary) operator for the purpose: _KEY in OBJ_, returning _true_ if string KEY is a property name in OBJ
`var duck = {noise:'quack', feet:2}
'noise' in obj //true
'quack' in obj //false

But that requires proposing a particular key.  If you want to find out all the keys present, there's a special kind of loop: _for...in..._
**for (VAR in OBJ)...**

VAR is a variable which is automatically set to each key in OBJ, one per loop cycle.
For example:
```
var duck={noise:'quack',feet:2};
for (var key in duck) {
	console.log('key='+key+' val='+duck[key]);
}
```

Don't confuse _for (\_in \_)_ with _for (\_ ;\_ ;\_ )_; they're different idioms with different templates and different roles, and you can't use either in place of the other.

AUTOMATIC PROPERTIES [t+40]

Certain kinds of objects have some properties which are created automatically.  Automatic properties are hidden (technically: non-enumerable) and are not included in the keys listed by _for...in_.  However, they will return _true_ for _in_.

In recognition of their differences, I'll usually draw _automatic properties_ in an "attic" on top of the main object.
![Diagram](auto-props.svg?raw=true)

METHODS (briefly)
Some object properties may be functions!  In that case, they're called **methods** of the object they belong to.
For example:
`Math.floor(1.1)`
`console.log('boo')`

PURPOSE of OBJECTS [t+50]
Until we write more complex code, it may be hard to understand the purpose of objects.  We've seen at least 3 distinct uses:
1.  An object can represent a real-world object/entity which has distinct parts and features and measurements.  Object groups together those data as different aspects of single thing:
`var person={name:'Kermit',color:'green',occupation:'frog',height:60}`
Or built-in: `screen`
Equally important: groups data with object-specific methods which act on that data

2. An object can be a toolbox (namespace?), grouping and isolating a set of related tools:
Math is object which doesn't repreresent a thing; instead its a collection of methods:
Math.floor(), Math.random(), Math.sqrt(), Math.log()
Why do we need to isolate these fns instead of having them global?
Consider conflict between Math.log() and console.log(): two very different meanings of word 'log'.  Which one gets to use the word globally?  Neither; each gets its own context by belonging to diffent toolbox objects.

3. Collection/Index: Object can be a set of names which don't represent thing together, but keep track of a set of things:
var everyone = {Dan:1, Ben,1:, Clarissa:1...  }
(OR substitute objects for individuals...)

====

PROPERTIES vs VARIABLES [t+55]

Differences:

1. Containment: variables live in a scope; params live in an object.
* vars are used w/o prefix; params must be prefixed with owner object
* vars will look outward to other scopes if not found; params won't

2. Declaration: vars must be declared before use
* vars are created only when declared; params are created when set
* non-existent vars return error when used; non-existent params return _undefined_

3. Deletion: vars cannot be (manually) destroyed; params can

4. Names: vars have name restrictions; params can be named any string

---

(break)

===

REFERENCES and SHARED OBJECTS

```
var myCar = {wheels:4, color:blue, mileage:100000}
var yourCar = myCar;
myCar.mileage+=1000;
yourCar.mileage
```

[Draw on intuitions of Names..]  In everyday world, we name things: "My Pen", "The Black Pen", "The last pen I used";
[Aliases...]

To see why this object is shared, we first have to understand **references**.  A reference is JS is a _pointer_ or a _citation_.  It is literally a number in memory, stored in a variable like a number primitive, but interpreted to be the address of _another place in memory_.  But we can think of it as an _arrow_ pointing from a variable to an object.  That is, the arrow _is the value_ in a little box, which points to a big box.  Sometimes we'll call the big box the **referent**.
**[Diagram]**
When we make an object with
`new Object()` or `{...}`, we make the big box.  Then when we assign it to a variable, like
`x={...}`, we just put an arrow in the variable (little box) pointing to the object (big box).

Copying a variable _of any type_ does exactly the same thing: it copies the value in one little box into another.  If that value is a reference, the destination variable gets a duplicate reference, pointing to the same, original big box. **[Diagram]**
Therefore myCar is the same object as yourCar.  This is how all objects are copied: by reference.

NULL vs {}
Finally we can understand the meaning of our last mysterious primitive value: **null**.
Null is an invalid arrow to nowhere.  It is understood to be a reference, like NaN is understood to be a number.
`typeof null` is object.  Draw it as a dot or 'X' in the reference (little) box. **[Diagram]**

And notice that _null_ is not the same as {}, an empty object.  **[Diagram empty obj]**  A variable holding an empty object has a valid reference to a big box, though it's empty.  An there can be an unlimited number of distinct empty objects, which are not equal!
But null is a single universal value, a non-arrow, always equal to other nulls.

And remember: null is falsish but an empty object (i.e. a valid reference) is trueish.

IMPLICATIONS of REFERENCES

1. COMPARISON: Object equality means identity:
the equality and identity operators compare the values in two little boxes; they don't follow references.
Comparing objects doesn't compare the big boxes; it doesnt tell you whether they resemble each other, have the same properties.
It only tells you whether two references point to the same object.
`myCar == yourCar` and `myCar === yourCar`
[Only one case where object == and === differ: wrapper objects compared to corresponding primitives.  Discuss later!]

If you want to actually compare the contents of big boxes, in pure JS you have to do the work manually.  There are some supplemental libraries which will help with the job, but it's actually a hard theoretical problem.  [If an object is a huge tree of sub-objects, where do you stop and say close enough?]

2. CLONING: Similarly, if you want to duplicate/clone an object, there is no universal solution b/c problem is hard for deep trees.

3. When you pass an argument as a parameter into a function, you are really just passing a reference.
```
function paint(car,newcolor) {
	car.color= = newcolor;
}
paint(myCar,"red");
**[Diagram]**

If you modify the object inside the function, you are modifying the original.  The variable you use to access it is a local variable, but you are making a change to a shared structure.  So functions can have side effects even when they don't use global variables.
This example function doesn't have a return value, and doesn't need it to do work: it's relying on the side-effect of changing the _referent_

4.  Nested objects aren't actually nested!  No big box lives inside another big box; they're all side-by-side in memory.  But properties which are references connect them and give the appearance of nesting **[Diagram outer.inner]**   Even when you apparently nest objects in literal notation, you are merely linking them.

5. It is possible (and sometimes ideal) to have circular linking:
```
var ernie={}, bert={};
ernie.bff = bert; bert.bff = ernie;
```
Neither object is inside the other; able to say:
`bert.bff.bff.bff.bff.bff.bff`...

6.  No object has an intrinsic name.  Objects may have many names, all equally authentic, or no names at all!
**[Diagram...]**
`var a={key:'value'}, b=a;` has exactly the same result as
`var b={key:'value'}, a=b;`  An alias to an object is not a second-class reference, it's just the same as the first original reference.
And furthermore: the referent (big box) doesn't contain the names, and has no idea how many there might be.

How can object have no name?  It can't in the long term, but it can briefly:
`{a:1,b:2,c:3};` is a valid statement which makes, then abandons, an object which is never named.
It may persist even longer if fed into an expression...
But eventually, like any expression, it's thrown away unless saved to a variable or property.
(And under very particular circumstance it may live beyond that, but we'll see those cases much later.)

7. Deleting a reference doesn't affect the referent, which may have other names.
```
var outer = {inner:{core:1}};
var alias = outer.inner;
delete outer.inner;
alias //still there
```

OBJECT LIFETIMES, GARBAGE COLLECTION

So how do you actually destroy an object?  You can't, but you never need to.
Deleting references and resetting variables is sufficient to detach an object from your program, and you can pretend it doesn't exist anymore.
The only reason to worry about it would be to ensure that the memory it consumes is recycled.  But JS has a wonderful mechanism which takes care of that for you: **garbage collection**.  It works like this:
an object persists as long as there are any names you might use to refer to it.  But when the last remaining name/link to it is gone, the object is automatically destroyed and its memory freed.

[Trade-offs: the more frequent GC happens, the faster memory gets recycled.  But that clean-up takes processor time and slows your program.  So its a hard problem to find ideal recycle rate.  But the programmers implementing JS are the ones who have to deal with it, not you.  For you, a magic Garbage Fairy just comes in the night and takes the unwanted things away.]

BIG PICTURE: OBJECT NETWORK

Let's look again at the difference between properties and variables, but step back to get the big picture:
properties and variables constitute two different networks of data...

The set of all objects (big boxes) are one network.  Properties within objects may be primitives, whose values live completely inside their little boxes nested in the big ones.  Or properties may be references, which links objects together.  Let's call this the object network.
It has the form of a **graph**, a central concept in computer science.  A graph is just a set of **nodes** connected by **arcs** or **links**.
We call it **directed** if at least some of the links are one-way.  In JS, all references are one-way (though any may be reciprocated), so the object network is a directed graph:
 **nodes** are objects and **links** are reference properties (each one-way).  Once you have reference to a node, you can traverse links in the graph by chaining properties...
```
var x={a:{a1:{},a2:{}},b:{b1:{},b2:{}}};
var y=x.b.b2;
y.c = x;//circular ref
```
[Diagram "object_graph": objs/props in color #1, var refs in color #2]

But to get to any node as a starting point, you have to start with a variable, _which is outside that graph_.  Variables don't live in objects, they live in scopes, which form a different kind of graph (we'll explore its structure more later).  Every variable which is not a primitive is an object reference, a link _into the object graph_.

So in any chain, all the terms are reference, but the first term is always a variable, and all the others after are properties!
And if any part of the object graph is cut off, can't be reached by starting with any variable, then it's garbage.

Notice that every object here has as many names as you care to chain together, always starting with _x_ or _y_
`x.b.b2.c.a === y.c
y.c === x`

(Break!)
==== Part 2

PSEUDO-ARRAYS [t+0]

Suppose we make this object:
```
var obj = {};
obj[0] = 'a';
obj[1] = 'b';
...
obj[25]= 'z';
obj.length = 26;
```
That should look familiar!  It is (seemingly) an array: has a length and elements indexed by number!
Or are they?
What would happen in a language rife with autoconversion if you gave a number to an operator which expects a string?
We would see an ordinary bag-of-words object which appears to be something special, with elements indexed by number!
I.e. we (seem to) get arrays from just objects plus autoconversion.

This can be called a **pseudo-array**, but it's nothing more than an object with some keys which are numeric strings.
Proof:
`var obj['0.0']='aa';
var obj[0]//'a'!  String keys, not numbers

[Draw: semi-segregated box]

REAL ARRAYS [t+10]
But despite appearances, there is more than that to a Real Array.  Two critical differences in behavior:

1.  Real arrays get an automatic _length_ property, and
*  _length_ automatically grows to L as the highest index is increased to L-1
*  elements are added or deleted to match as _length_ changes

2.  Arrays have extra automatic properties, namely methods (we'll see shortly)

[Draw: fully segregated box + length]

ARRAY CREATION
Literal version:
`var arr = []` //empty array; contrast with empty object {}
`var arr = ['a','b','c'...]`// list only values, since keys 0..N are implicit
Contrast with
`var obj = {0:'a',1:'b',2:'c'...}`//must list keys and values

'new' syntax:
`var arr = new Array();` //empty array
`var arr = new Array('a','b','c','d','e'...)` initialize with arguments!
`var arr = new Array(1,2,3,4...)` //numeric values
`var arr = new Array('2')` //single string value
BUT NOT:
`var arr = new Array(2)`  //single number != [2] but [undefined,undefined]
Treats single numeric argument as length, not value

When an Array is created this way, instead of ordinary object way (new Object... or {...})
JS knows its Array.   The console also knows to display it differently:
['a','b','c']
instead of
{0:'a',1:'b',2:'c'}

But notice its type:
`typeof arr; // "object"`  Still an object!

ARRAYS ARE OBJECTS

*Everything* that was true about an Object is true about an Array:
* can add strings as custom property names at any time just by setting them;
* can delete any property, _even numeric ones_
* non-numeric members referenced by either [] or . operator, chaining
* copied by reference
* last until GC'd
* etc.

Arrays are a special type of Object, the first of several which we'll see.
Objects, unlike Primitives, can have sub-types.
_typeof_ won't differentiate sub-types; it's only for differentiating primary types (primitives vs objects)
There are other tools for that, including a function:
`Array.isArray(obj)`//false for pseudo-array
`Array.isArray(arr)`//true for true Array

ARRAY METHODS

Earlier we said some properties of objects may be functions.  Arrays come with some automatic member-functions, or **methods**.
Methods are called by referencing them as members (by either . or [] operator), then applying the call operator:

`arr.push('z')`
`arr['push'](z)`//clunky but equivalent

What does push function do?  Takes one or more arguments and appends each to end of array, returning new length.
Note that it leaves a change behind, a side-effect.  (Therefore called "mutating" function)

Related:
`arr.pop()`  Takes no arguments, strips away last array element (and decrements length), and returns element.
Again: mutator, changing original.

Related:
`arr.concat(arr2)` returns new array combining both.  DOES NOT change arr itself, unlike push and pop.
Push and pop have side-effects, like (x+=1); concat does not, like (x+1)

I guarantee that sometimes you will forget this and write a statement like _arr.concat(stuff)_ and wonder why nothing is happening.
You mean: _arr = arr.concat(stuff)_, just like you mean _(x=x+1)_.

ARRAY <--> STRING METHODS

ARR.join(delim) converts an array to a string by gluing its elements together with DELIMS.  It's especially convenient for punctuating lists with commas after every item except the last:
`arr.join(',')+'.';`

STR.join...

BUTbutbut... now can a string have a method, since it's a primitive?
Answer...

WRAPPER OBJECTS
There's a special category of object which is usually made invisibly, automatically: the **wrapper* object.  They correspond to primitives (usually strings or numbers), but wrap those primitive in an object, which can then have methods and other properties.
For example:
???

Strings pretend to be objects:
string.split(delim)
string.slice(from[,to])
string.substr(from[,len])

Strings pretend to be arrays:
string[0]
string.length
(BUT NOT: string.join)

Don't be decieved; they're always atomic primitives

PURPOSE OF METHODS

Why would you ever have a method?  Why attach a function to an object, instead of just declaring it?

Distinguish 2 reasons:

1) Method is a "personal action": intended to operate on owner object or its parts
EX: Array.push()

2) Method is part of "family of actions", stored together but intended to operate on _other object_, usually parameters
EX: Math.sqrt()

Both could use _this_ keyword:
type 1 uses it instead of parameter to target its action;
type 2 (maybe) uses it as a relative reference to one of its teammates, or shared resource:
EX:
```
var exchange = {
  rate: 0.72,
  toDollars: function(euros) {return euros/this.rate},
  toEuros:  function(dollars) {return dollars*this.rate},
  convert: function(string) {
	if (string[0]==='$') return this.toEuros(string.slice(1));
	if (string[0]==='E') return this.toDollars(string.slice(1));
	return toDollars(string);}
}
```

Exchange.rate is a resource common to both related functions
Without _this_, must use global name _exchange_; but that violates encapsulation!

ALTERNATIVE:
var circleTool = {
  PI: 3.14159,
  diameter: function(radius) {
		return 2*radius;
	},
  circumference: function(radius) {
		return this.diameter(radius)*this.PI;
	}
}

PATTERN: Toolbox!

WRITING METHODS (delay...)

We'll spend a lot more time on functions and methods, but for now one new idea:
Since methods are functions which "belong to" an object, they often use a special keyword _this_
to refer to the object which owns them.

Let's write one Array method as an example.
First we'll write it as an ordinary function:
```
function evens(arr) {
  var result=[];
  for (var i=1; i<arr.length; i++) {
	result.push(arr[i]);
  }
	return result;
}
//Test:
var alpha= ['a','b','c','d','e','f','g','h','i'];
evens(alpha);
```

Now change it into method:
alpha.evens = function() {
  var result=[];
  for (var i=1; i<this.length; i++) {
    result.push(this[i]);
  }
  return result;
}
//Test:
alpha.evens();
```

redpajama_set_name: RedPajamaGithub


Caught in a cosmic dance, our nearest neighbor galaxies, the Magellanic Clouds, are cartwheeling and circling each other as they fall toward our galaxy, the Milky Way. The gravitational interaction between the Clouds sparks cosmic fireworks—bursts of star formation as new clusters of stars flame on. How many and what kind of star clusters have been born this way over the history of the Clouds? A new project, the Local Group Cluster Search, invites citizen scientists to help find out!
Close enough to see with the naked eye when viewed from the southern hemisphere, the Magellanic Clouds have interacted in multiple close encounters over the past 2 billion years. During the encounters, gravitational forces push and pull on gas in the Clouds, sparking the formation of many new star clusters—"families" of hundreds to millions of stars—each formed from a single cloud of gas and dust.
These clusters are useful to astronomers because they can be age-dated with great precision and used to reconstruct a historical record of star formation. By counting the number of clusters as a function of age, astronomers can back out the birthrate of clusters and chart the interaction history of the Clouds.
A new citizen science project, the Local Group Cluster Search, aims to do just that by coupling new, high-quality images of the Magellanic Clouds with a proven technique to find star clusters.
The Local Group Cluster Search uses images from a new survey, the "Survey of the Magellanic Stellar History" (or SMASH for short).
In contrast to the earliest studies of star clusters in the Magellanic Clouds, which used images captured on glass photographic plates, SMASH was carried out using the Dark Energy Camera (DECam), a 570-megapixel digital camera on the Blanco 4-m telescope at National Science Foundation's (NSF) Cerro Tololo Inter-American Observatory in Chile. Using DECam, astronomers obtained images that not only cover the full extent of the two galaxies but also are more sensitive to faint stars than any previous wide-field optical survey of the Clouds.
Explaining the challenge of surveying the Clouds, David Nidever, an astronomer at the National Optical Astronomy Observatory and Montana State University who leads the SMASH survey, said, "The Large and Small Magellanic Clouds are huge on the sky, covering more than 100 square degrees—an area larger than 500 full Moons!" While it would take tens of thousands of tiled images from the Hubble Space Telescope's largest camera to image the full sky area of the Clouds, DECam surveyed the main bodies of both Clouds with its immense field of view in fewer than 50 images.
Human Eye Still the Best!
Hosted by the Zooniverse online citizen science platform, the Local Group Cluster Search asks volunteers to examine small portions of the SMASH images and identify star clusters by eye. Citizen science searches are a great way to catalog clusters, even in today's age of machine learning and artificial intelligence, because the human brain is highly skilled at pattern recognition.
Cliff Johnson, a postdoctoral fellow at Northwestern University who leads the citizen science project, said, "While computer-based methods continue to improve, the varying backgrounds and appearance of star clusters in images of nearby galaxies make cluster identification difficult to automate. Algorithmic cluster searches have trouble eliminating false detections due to chance groupings of stars, while human-classified catalogs provide a reliable sample of clusters down to very faint brightness levels."
Volunteer-led star cluster identification has a proven track record of success. In the earlier "Andromeda Project," citizen scientists identified 2,753 star clusters in the Andromeda galaxy. The results revealed that cluster formation varies with galactic environment. Through the Local Group Cluster Search, citizen scientists also recently completed a study of the Triangulum galaxy, identifying thousands of star clusters.
With cluster censuses of Andromeda and Triangulum complete, the search now turns to the Magellanic Clouds, the only nearby galaxies yet to be searched by citizen scientists. What will the search reveal about the interaction history of our closest neighbors? Stay tuned!
Join the search by visiting the project website at clustersearch.org .


text:
romans 3:1 2 kjv
The condition seems to worsen as the clutch heats up, and we'd like to see a little more resilience in the clutch to more cleanly disengage in these situations. I have huge box of all the stuff i took off, i bet at least 20 # worth. We weigh all test bikes and on our scale, the bike is 277 without fuel. With its awaited arrival comes a lot of expectations. 2020 CRF450L OVERVIEW - Honda Ride anywhere. A few have bought RL's and reviews are a mixed bag. While its roots certainly sprout from the updated CRF race machines, the modifications done to the platform for dual-sport use make it worlds apart from most Hondas you'll see racing on the weekend. I'm 230#; the sag on the front was good but I replaced the rear spring with a heavier one from RaceTech to get the sag right in the back with minimal added preload. Details are scarce for now but Honda's Japanese-language press release indicates both bikes will receive revised bodywork and new Red/White/Blue paint schemes to start. It doesn't really feel like a converted off-road woods weapon with blinkers. This Point-to-Point GPS-led route starts and ends in Ridgecrest, CA, and offers two separate routes for adventure bikes and smaller... Few have come close to achieving what Helge Pedersen has achieved during his ... New Mexico, known for its lofty mountains, sprawling caverns, white sand desert... For nearly three decades, Wolfman Luggage has been a player in the motorcycle s... Honda Gives Sneak Peek of Updated 2021 CRF250L & CRF250 Rally, A Custom BMW R1150GS With Dakar Rally Flair, KTM Unveils Updated 690 Enduro R for 2021, First Ride: 8 Things to Know About the Honda CRF250L Rally, Honda Issues Recall on CRF250L and CRF250L Rally Models. So, there are additional weight considerations on this test bike than a true stock machine, but most people will be swapping tires and installing rim locks. A street-legal dirtbike that offers the refinement of a Honda, along with light weight, superior handling, and plenty of power. The speedometer/computer on the CRF450L is worthy of praise. That's what we're trying to find out. Every time I start looking at a steep, stepped hill climb I start wishing the CRF was easier to handle when it got really sticky, half way up the hill. the weight is noticeable between the CRF and 500 EXC for most riders. Im curious to hear about any differences on this bike vs the previous 450L. *[Note 11/23/2018: In the light of transparency and providing the most complete information possible, we'd like to remind readers the published weight of the 2019 Honda CRF450L is with Dunlop 606 Tires and both rim locks installed as mentioned. It seems to carry its weight lower. The Honda CRF450L model is a Cross / motocross bike manufactured by Honda . There are a few dual-sport must-dos in my world that just have to happen. For most of this test, we fitted on Dunlop 606 DOT-approved tires. But what is it really best at? But that's not uncommon in all off-road settings, including stock race models. Plus at the end of the day, I still have a Honda Engine and reliability. It's a bit on/off because it is. But the frame is race-like and the bike likes to steer with the rear tire, so it's not a commuter, either. We use cookies and browser activity to improve your experience and personalize both the content and advertising you see. Discussions. I don't notice a difference in weight between the two bikes. It's a motorcycle that's taking the dual-sport scene by storm, a huge critical success by seemingly everyone who's scored a ride on one. That tank of fuel is a tick over two gallons. Another change for the 2021 CRF250L worth noting is a new headlight assembly. Rating. For comparison, the performance-focused Honda CRF450L is 291 pounds and the Yamaha WR250R is 295 pounds.
Doctor Who Listen Rhyme, Stage 1 Baby Food 4 Month Old, Singer Quantum 9960, Are County Roads Public, How To Pack A Spring Mattress, Dusky Birch Sawfly Uk, Apogee Mic Cable, Double Chocolate Muffins, Sca Deadline Uk, Mint Drying Out, Governing Body For Veterinary Practices, Maple Hill Chocolate Milk, Civil Engineering Courses Scotland, Garden Plans For Front Of House, Quaker Oats Quick 1 Minute Calories, Guitar Refret Cost Uk, Puffy Vs Puffy Lux, New Wine In Old Wineskins Got Questions, One Body, One Spirit Song, What Is Palm Kernel Oil Used For, How To Write A Rebuttal, White Cheddar Popcorn Healthy, Sociological Perspective On Poverty, Building Maintenance Mcq, Thailicious Lower East Side, Tyler Perry Meet The Browns Play 123movies, World Coins Identification,


text:
Alexander "Alex" Ken Hermansson, (born 22 January 1992) is a Swedish YouTube and television presenter. Hermansson was a member of the extremesports and entertainment group Rackartygarna.

During the summer of 2014 he was the presenter of the children's summer show Sommarlov along with Malin Olsson and Rijal Mbamba which was broadcast on SVT.

After that appearance he has worked as a regular presenter for shows on Barnkanalen.
In 2014, he participated in Talang 2014 along with Rackartygarna and placed second behind Jon Henrik Fjällgren.
During early 2015, Hermansson participated as a celebrity dancer in Let's Dance 2015 on TV4. He placed fourth.

Hermansson is also active in the Christian church Hillsong Church.

Hermansson is of Japanese descent as his father was born in Japan.

Presented shows
2013 - Rackartygarna, TV6-Play
2014 - Juniorprogramledare på OS i Sotji, Viasat
2014 - En skev resa, Splay/YouTube
2014 - Talang Sverige [silverplats], TV3
2014 - Sommarlov, SVT Barnkanalen
2014 - Fredagkväll med Alex, SVT Barnkanalen
2015 - Alex hittar hobbyn, SVT Barnkanalen
2015 - Lets Dance, TV4

References

Living people
1992 births
Swedish YouTubers
Swedish people of Japanese descent
Swedish television personalities


text:
INFORM Consumers Act
SHOP SAFE Act
New 1099 Requirements
PASS Coalition Endorses New Inform Consumers Act, Applaud Reps. Jan Schakowsky (D-IL) and Gus Bilirakis (R-FL)
Today, the Coalition to Protect America's Small Sellers (PASS), a coalition of third-party marketplaces and eCommerce platforms that have joined forces to educate policymakers about consumer protection and competition issues, endorsed the INFORM Consumers Act, introduced by Congresswoman Jan Schakowsky (D-IL) and Congressman Gus Bilirakis (R-FL).
This endorsement comes after months of negotiations with the House champions and Senate stakeholders, and represents the acknowledgment from all involved that any legislation designed to protect consumers from fraudulent goods must also protect the rights of micro-entrepreneurs and casual online sellers. "This legislation includes necessary protections for small sellers, and we applaud Rep. Schakowsky and Rep. Bilirakis for their leadership in this effort," said Coalition Executive Director Chris Lamond.
"The INFORM Consumers Act is a prime example of hard work and collaboration resulting in a thoughtful and balanced policy. We look forward to working with Congress, the administration, and other stakeholders on this important legislation that will allow online marketplaces to flourish in a responsible and safe manner," added Lamond.
About the Coalition to Protect America's Small Sellers
The Coalition is a policy-oriented coalition of third-party marketplaces and eCommerce platforms that have joined forces to educate policymakers on the benefits of our eCommerce business models while also working collaboratively with policymakers to find thoughtful solutions to consumer protection, competition and economic development issues impacting eCommerce. Current Coalition members include eBay, Etsy, Mercari, OfferUp and Poshmark. For more information, or to learn more about joining us, please visit www.protectsmallsellers.org
###


This is one of the most interesting WWDCs in the last few years. On one hand, we likely have a pretty good idea of where Apple's platforms will be moving in the next few years, but all signs point to those big changes not coming until next year or later.
So if you take out the cross-platform UI / appleOS stuff, we are left with nothing concrete to go on about what Apple is going to announce this year. Personally, I think that makes the keynote way more fun1.
Instead of listing a bunch of features I want, I am going to concentrate more on what I want to see as a developer.
The list of what I want from Xcode and Swift has gone pretty much unchanged since I started doing this in 2016.
Xcode for iOS: The iPad is becoming more and more of a computer replacement. Apple is known to be working on ways to make building cross-platform apps easier (or even combining iOS and macOS). If either of those are true, then it is only a matter of time before you can use an iPad to write those apps. I am hoping that 2018 is the year.
Run Swift Code on CloudKit: Apple cannot be happy about how many apps are powered by Amazon Web Services. Much of what you would use AWS to do can already be covered by iCloud and CloudKit, but if you need to run any logic on the server itself then iCloud is no longer feasible. Letting apps run code on CloudKit has big advantages for developers and for Apple. For developers, it makes it easy to get a server backend running for our apps. For Apple, it helps to lock developers who use it to the App Store.
Also, this would be a great way to power Siri in the Cloud. More on this later.
Swift Package Manager for Xcode: This one is so obvious that I cannot believe it has not happened yet. I have not had any issues with CocoaPods or Carthage in the last couple of years, but I hate trusting such a huge part of my build systems to a third party. Dependency management should be built into Xcode.
The CoreData API was written to be used from Objective-C. It would be nice to have a wrapper that was more was type-safe and less stringly typed. Bonus points if we can natively use Swift structs instead of NSManagedObject subclasses.
Most of the changes I want to iOS are more cross-platform things (Siri improvements and cross-platform UIKit replacement). From a developer standpoint, iOS is pretty good as it is now. None of these are major, but they would make my day-to-day development life easier and would make the apps I write significantly better.
Workflow: Apple acquired the Workflow team too late in the iOS 10 cycle for any of their stuff to be integrated into iOS 11. Now that they have been there for over a year, I hope that we see some system-level user automation features in iOS 12. Obviously, I would also want an API to tie my apps into that automation system.
Password Provider Extension: I use 1Password to keep track of all account and passwords, but iCloud Keychain is much easier and faster to use both in Safari and in 3rd party apps. I would love to see Apple make an extension point for password providers that would allow me to use the system UI for selecting passwords from 3rd party password apps so all of my passwords are not duplicated across two systems.
MapKit: MapKit improvements are my white whale. I have been asking for some of these things since I started developing Storm Spotter for iOS 3. I don't expect to get them at this point, but I can still dream.
Animated MKOverlays: MKOverlays are good for showing static content, but they are completely unsuitable for anything animated2. We basically need a way to specify an overlay image that is rendered all at once instead of being asynchronously loaded as tiles.
More MKOverlayLevels: Overlays can currently be placed on two levels: above or below the city labels. It would be nice to have more control over this. For example, I would want to be able to place them under roads.
Customizable Map Themes: I would love to have a theme object to customize the colors of a MKMapView. Since I don't expect to ever get that, I would settle for a dark MKMapStyle.
One Finger Zoom for MKMapView: Apple added a one finger zoom gesture to Maps.app in iOS 11, but it only works in their app. I want this to work any MKMapView.
The Apple Watch hardware is great, but the software still limits the device's potential. I hope that the software catches up to the hardware a bit this year.
3rd Party Siri Complications: I am a pretty heavy user of the Siri Watch Face, but it would be much more useful if my Things tasks could be on the list the same way Reminders can. I would like to see the concept of contextual Complications spread to other watch faces too.
UIKit (or equivalent): Making complex UIs on watchOS is needlessly tedious. WatchKit's UI classes are built on top of UIKit, so we just need to get access to the underlying classes.
Metal and/or OpenGL: Certain apps could be way more powerful if we didn't have to rely on CoreGraphics for drawing to the screen.
More background access: The Apple Watch has plenty of battery to spare, so apps that need it should be able to do more in the background. The obvious (and most discussed) use case here is podcast apps.
Priority Networking: As a power-saving measure, the watch will attempt to use the phone for connections even if it could perform the same network request much faster by itself (via WiFi or cell). For requests that are known to be big (like podcasts), developers should be able to tell the watch to prefer its own network connection over the phone's.
I don't have a ton of tvOS development experience3, so these are more things that I want as a user.
User Profiles: This one is becoming more and more important to me every year. I want Daniel Tiger and Toy Story to stop cluttering up my Up Next queue. This system could build off of Family Sharing and be tied to an Apple ID. Third party apps like Hulu and Netflix should be able to tie their accounts to the system accounts.
The TV app should replace the home screen: Apps should just be a section of things that you access alongside your TV content.
Up Next API: Any third party app should be able to place contextual content into the Up Next queue similar to how sporting events involving my favorite teams do now. For example, a weather or news app should be able to add their local severe weather coverage to Up Next if there is a big weather event going on near me.
Picture-in-Picture and Multi-channel video: I love watching sporting events at the same time, but that only works if both events are in the same app and that app has built in a custom multi-pane UI. I want a system provided way that I can watch arbitrary content across apps at the same time.
Watch video in the TV app: I would love for the TV app to just play the videos instead of kicking out to the source app. I'm sure that Apple would prefer this, I don't see any of the big players getting on board with anything like this4.
I love the Mac, but it is a legacy platform5. Therefor this is a pretty short list.
Cross-platform UI framework: I want to be able to leverage more of my iOS code to build Mac apps. Bringing over parts of UIKit would be a good start, but I would rather have a new cross-platform Swift framework that is shared between all of Apple's platforms.
iOS 11-style App Store: The iOS 11 App Store redesign has been a huge success, so I want to see it on macOS too. Hopefully it will breathe some life into the Mac App Store.
The developer story for Siri has always been pretty weak. For Siri to really compete with Alexa and Google Assistant, I think that major parts of it need to be completely re-thought.
Siri in the Cloud: Siri needs to move from something that primarily lives on individual devices to something that lives in iCloud. One of Siri's biggest issues is that it can only do certain things on certain devices. For Siri to become a truly useful digital assistant, it needs to have the same interface across every device.
If Siri were more cloud-centric, it would also simplify the problem of performing an action that a particular device cannot execute. For example, if I am at home and I ask Siri to "Play The Last Jedi" from my HomePod or my Apple Watch, it should know that I have an Apple TV and just start playing the movie there. If there are multiple devices around that I could watch it on, it should simply ask which one.
Similarly, all third party Siri Intents should run from iCloud, not the device6. If I have an Intent installed on my iCloud account, it should not matter what device I use it from. My HomePod should not have to talk to my phone to add a task to Things for me.
Multiple Users: For shared devices like HomePod and AppleTV, Siri should be able to tell people apart and react accordingly. They could even give it a cool name like VoiceID.
More Intents: I don't have any specific Intents that I care about more than others, but I want Apple to add as many as they can to make Siri more useful.
Type to Siri: Siri and Spotlight Search should be merged into one thing so that it does not matter if I talk to it or type to it. With this, Siri can become a smart command line. I never use Siri on macOS because I am not going to talk to my computer in my work's open office, but I would use it from my keyboard all day if I had the option.
It feels like we are right at the beginning of a years long change in how we develop apps for Apple's platforms. I am hopeful that we get at least a small look at what that change is going to look like this year.


Where am i able to acquire the "LifeDay" Music by MP3?
Anyone who does listen a distinction between high bitrate mp3 and authentic compact disk, DOES need to think about the fact that YOUR recording plyer could also be having a screwed uphill mp3 decoder.
The code for both frames from an MP3 support and putting all of them sequentially in order hip a listing(Of Byte()) by is a list(Of Byte) containing a byte array in each index.
MP3 utilizing an algorithm give take away the frequencies that the algorithm end result says the human ear( to brain neural activity) won't hear(brain neural exercise) given apiece frequencies that can be present for the ear to hear in that moment within the music.
mp3gain is that I remember a take a look at the place a clamor was premeditated to solely cling on to heard passing through younger kids and youngsters as a result of the frequencies had been prone to shield exterior the range of most adults.absolutely this must apply to excessive bitrate music too?I solely notice deep bitrate or perhaps poor encoding by the sixties furnishings I sometimes take heed to.in the car via the players high output I find as soon as the volume goes uphill the standard of blare drops dramatically whereas a few modern tracks thumping bass seem to be as speak clearly as a maintainll.Most of my mp3s seem to be 1ninety two or three2zero however i suspect some of the aged music is way decrease until it was remastered.


Rick A. Lazio and Hillary Rodham Clinton clashed yesterday over the use of so-called soft-money contributions in their campaigns, even as the state Conservative Party prepared to broadcast a new commercial today, financed with soft money, that for the first time attacks Mrs. Clinton's failed attempt to create a national health care system.
Against a backdrop of buzzes and cartoon music, the ad shows someone playing the children's game Operation as an announcer belittles Mrs. Clinton's most high-profile venture into public policy: her effort in 1994 to persuade Congress to adopt the health care proposal President Clinton advocated when he ran for president. The commercial asserts that if it had been adopted by Congress, the plan would have led to cuts in medical care and less consumer choice, and it recalls Mrs. Clinton's attempt to draft the plan in secret.
Mr. Lazio is running for Senate as the candidate of the Republican Party and the Conservative Party. Michael P. Long, the chairman of the Conservative Party, said he got the idea for the ad from watching Tim Russert, the host of NBC's ''Meet The Press,'' aggressively question Mrs. Clinton on her 1994 health care proposal at the two candidates' debate in Buffalo on Wednesday.
Mr. Long and Michael Marr, a spokesman for Mr. Lazio's campaign, both said yesterday that the Conservative Party did not coordinate the ad with Mr. Lazio, and Mr. Marr said he first learned of the commercial from a reporter. Nonetheless, the ad previews a line of attack that Mr. Lazio have been planning to use against Mrs. Clinton over the next few weeks.
The Lazio campaign has been preparing a choreographed line of attacks, focusing almost day to day on different facets of the 1994 Clinton health care plan, and how they might have affected New York -- for example, by cutting reimbursements to teaching hospitals. One of Mr. Lazio's aides said the candidate would seek to use the plan to paint Mrs. Clinton as an advocate of large government, as well as to raise questions about her competence and credibility.
Nelson Warfield, the political consultant who made the ad for the Conservative Party, said yesterday that health care ''is a real vulnerability for her.
In recent weeks, Mr. Lazio has repeatedly assailed Mrs. Clinton as untrustworthy. The advertisement echoes that line of attack, with the word ''trusted'' appearing on the screen, underlined, as the announcer proclaims it.
The advertisement is being financed with soft money, or largely unlimited campaign contributions to party organizations, that can be used for party building but not advocacy of a particular candidate. The ad was released after a week in which Mr. Lazio has been attacking Mrs. Clinton for collecting such funds to finance her own campaign.
At the debate on Wednesday, Mr. Lazio demanded that Mrs. Clinton sign a pledge promising to renounce the use of soft money. Mrs. Clinton, who has been vigorously raising soft money to finance her campaign, said she would sign it only if Mr. Lazio persuaded political committees and outside groups that have been running ads attacking her to agree in writing to stay out of the race.
That the Conservative Party, which is one of Mr. Lazio's main promoters in the state, is using soft-money advertisements on his behalf -- and on a day that Mr. Lazio attacked Mrs. Clinton again for the practice -- is the latest evidence, many analysts say, that neither side has any genuine interest in changing its campaign finance practices, and that both are using the issue for political advantage.
''This is just another example of Mr. Lazio's soft-money hypocrisy,'' he said.
As to the charges in the ad, Mr. Wolfson described them as ''patently false and soft-money fakery.'' He said that Mrs. Clinton's commitment to expanding health care was well established.
The exchanges came as both Mrs. Clinton and Mr. Lazio squabbled over the issue as they campaigned through Westchester. Mr. Lazio also campaigned in Manhattan, where he marched in the German-American Steuben Day Parade up Fifth Avenue.
Mr. Lazio said that if Mrs. Clinton signed his form, he would call on outside groups to stop spending money on his behalf, ''and if anybody was to resist our call, I am prepared to repudiate them.
In Chappaqua, Mrs. Clinton, who had flown in from Washington to attend a fair in her new hometown, described Mr. Lazio's demand as a ''a stunt'' and attacked his credibility on the question of soft money.