Publications
Browse publications on Google Scholar.
Download source codes from GitHub.
Download BibTex for citation.
Refereed Journal Papers
( indicates the corresponding author)
| [J1] |
Handling imbalance between convergence and diversity in the decision space in evolutionary multi-modal multi-objective optimization Yiping Liu, Hisao Ishibuchi, Gary G. Yen, Yusuke Nojima, Naoki Masuyama IEEE Transactions on Evolutionary Computation, vol.24, no. 3, pp.551-565, 2020. [DOI: 10.1109/TEVC.2019.2938557] [PDF] [Code] [Supplement] 2019 Imapct Factor: 11.169 |
| [J2] |
Adapting reference vectors and scalarizing functions by growing neural gas to handle irregular Pareto fronts Yiping Liu, Hisao Ishibuchi, Naoki Masuyama, Yusuke Nojima IEEE Transactions on Evolutionary Computation, vol.24, no. 3, pp.439-453, 2020. [DOI: 10.1109/TEVC.2019.2926151] [PDF] [Code] [Supplement] 2019 Imapct Factor: 11.169 |
| [J3] |
A meta-objective approach for many-objective evolutionary optimization Dunwei Gong, Yiping Liu , Gary G. Yen Evolutionary Computation, vol.Spring, no. , pp.1-25, 2020. [DOI: 10.1162/evco_a_00243] [PDF] [Code] [Supplement] 2019 Imapct Factor: 3.933 |
| [J4] |
Discrete evolutionary multi-objective optimization for energy-efficient blocking flow shop scheduling with setup time Yuyan Han, Junqing Li, Hongyan Sang, Yiping Liu, Kaizhou Gao, Quanke Pan Applied Soft Computing, vol.93, no. , pp.106343, 2020. [DOI: 10.1016/j.asoc.2020.106343] 2019 Imapct Factor: 5.472 |
| [J5] |
Meta-heuristic algorithm for solving vehicle routing problems with time windows and synchronized visit constraints in prefabricated systems Junqing Li, Yunqi Han, Peiyong Duan, Yuyan Han, Ben Niu, Chengdong Li, Zhixin Zheng, Yiping Liu Journal of Cleaner Production, vol.250, no. , pp.119464, 2020. [DOI: 10.1016/j.jclepro.2019.119464] 2019 Imapct Factor: 7.246 |
| [J6] |
A multi-modal multi-objective evolutionary algorithm using two-archive and recombination strategies Yiping Liu, Gary G. Yen, Dunwei Gong IEEE Transactions on Evolutionary Computation, vol.23, no. 4, pp.660-674, 2019. [DOI: 10.1109/TEVC.2018.2879406] [PDF] [Code] [Supplement] 2019 Imapct Factor: 11.169 |
| [J7] |
Topological clustering via adaptive resonance theory with information theoretic learning Naoki Masuyama, Chu Kiong Loo, Hisao Ishibuchi, Naoyuki Kubota, Yusuke Nojima, Yiping Liu IEEE Access, vol.7, no. 1, pp.76920-76936, 2019. [DOI: 10.1109/ACCESS.2019.2921832] 2019 Imapct Factor: 3.745 |
| [J8] |
A many-objective evolutionary algorithm using a one-by-one selection strategy Yiping Liu, Dunwei Gong, Jing Sun, Yaochu Jin IEEE Transactions on Cybernetics, vol.47, no. 9, pp.2689-2702, 2017. [DOI: 10.1109/TCYB.2016.2638902] [PDF] [Code] [Supplement] 2019 Imapct Factor: 11.079 |
| [J9] |
Many-objective evolutionary optimization based on reference points Yiping Liu, Dunwei Gong, Xiaoyan Sun, Yong Zhang Applied Soft Computing, vol.50, no. 1, pp.344-355, 2017. [DOI: 10.1016/j.asoc.2016.11.009] [PDF] [Code] 2019 Imapct Factor: 5.472 |
| [J10] |
Indicator-based set evolution particle swarm optimization for many-objective problems Xiaoyan Sun, Yang Chen, Yiping Liu, Dunwei Gong Soft Computing, vol.20, no. 6, pp.2219-2232, 2016. [DOI: 10.1007/s00500-015-1637-1] 2019 Imapct Factor: 3.050 |
| [J11] |
Evolutionary algorithms with user’s preferences for solving hybrid interval multi-objective optimization problems Dunwei Gong, Yiping Liu , Xinfang Ji, Jing Sun Applied Intelligence, vol.43, no. 3, pp.676-694, 2015. [DOI: 10.1007/s10489-015-0658-x] 2019 Imapct Factor: 3.325 |
| [J12] |
Parallel many-objective evolutionary optimization using objectives decomposition Dunwei Gong, Yiping Liu , Xiaoyan Sun, Yuyan Han Acta Automatica Sinica, vol.41, no. 8, pp.1438-1451, 2015. [DOI: 10.16383/j.aas.2015.c140832] |
Refereed Conference Papers
| [C1] |
On the normalization in evolutionary multi-modal multi-objective optimization Yiping Liu, Hisao Ishibuchi, Gary Yen, Yusuke Nojima, Naoki Masuyama, Yuyan Han in IEEE Congress on Evolutionary Computation (CEC). IEEE, 2020 [in press]. |
| [C2] |
Multilayer clustering based on adaptive resonance theory for noisy environments Narito Amako, Naoki Masuyama, Chu Kiong Loo, Yusuke Nojima, Yiping Liu, Hisao Ishibuchi in The International Joint Conference on Neural Networks (IJCNN). IEEE, 2020 [in press]. |
| [C3] |
Searching for local Pareto optimal solutions: A case study on polygon-based problems Yiping Liu, Hisao Ishibuchi, Yusuke Nojima, Naoki Masuyama, Yuyan Han in IEEE Congress on Evolutionary Computation (CEC). IEEE, 2019 , pp. 873-880. [DOI: 10.1109/CEC.2019.8790066] [PDF] [Code] Acceptance Rate: 39% for oral presentations |
| [C4] |
Migrating birds optimization for lot-streaming flow shop scheduling problem Yuyan Han, Junqing Li, Yiping Liu, Zhixin Zheng, Yuxia Pan, Hongyan Sang, Lili Liu in IEEE Congress on Evolutionary Computation (CEC). IEEE, 2019 , pp. 652-657. [DOI: 10.1109/CEC.2019.8790017] Acceptance Rate: 39% for oral presentations |
| [C5] |
Constrained multiobjective distance minimization problems Yusuke Nojima, Takafumi Fukase, Yiping Liu, Naoki Masuyama, Hisao Ishibuchi in The Genetic and Evolutionary Computation Conference (GECCO). ACM, 2019 , pp. 586-594. [DOI: 10.1145/3321707.3321878] Acceptance Rate: 35% |
| [C6] |
Fast topological adaptive resonance theory based on correntropy induced metric Naoki Masuyama, Narito Amako, Yusuke Nojima, Yiping Liu, Chu Kiong Loo, Hisao Ishibuchi in The IEEE Symposium Series on Computational Intelligence (SSCI). IEEE, 2019 , pp. 2215-2221. [DOI: 10.1109/SSCI44817.2019.9003098] |
| [C7] |
Dots-type constrained multiobjective distance minimization problems Takafumi Fukase, Naoki Masuyama, Yusuke Nojima, Yiping Liu, Hisao Ishibuchi in The International Symposium on Advanced Intelligent Systems and the International Conference on Biometrics and Kansei Engineering (ISIS & ICBAKE). , 2019 , pp. 51-56. |
| [C8] |
A double-niched evolutionary algorithm and its behavior on polygon-based problems Yiping Liu, Hisao Ishibuchi, Yusuke Nojima, Naoki Masuyama, Ke Shang in International Conference on Parallel Problem Solving from Nature (PPSN). Springer, 2018 , pp. 262-273. [DOI: 10.1007/978-3-319-99253-2_21] [PDF] [Code] Acceptance Rate: 38.6% |
| [C9] |
Improving 1by1EA to handle various shapes of Pareto fronts Yiping Liu, Hisao Ishibuchi, Yusuke Nojima, Naoki Masuyama, Ke Shang in International Conference on Parallel Problem Solving from Nature (PPSN). Springer, 2018 , pp. 311-322. [DOI: 10.1007/978-3-319-99253-2_25] [PDF] [Code] Acceptance Rate: 38.6% |
| [C10] |
A new R2 indicator for better hypervolume approximation Ke Shang, Hisao Ishibuchi, Minling Zhang, Yiping Liu in The Genetic and Evolutionary Computation Conference (GECCO). ACM, 2018 , pp. 745-752. [DOI: 10.1145/3205455.3205543] Acceptance Rate: 38% |
| [C11] |
Topological Kernel Bayesian ARTMAP Naoki Masuyama, Chu Kiong Loo, Hisao Ishibuchi, Yusuke Nojima, Yiping Liu in World Automation Congress (WAC). IEEE, 2018 , pp. 316-321. [DOI: 10.23919/WAC.2018.8430302] |
| [C12] |
A reference points-based evolutionary algorithm for many-objective optimization Yiping Liu, Dunwei Gong, Xiaoyan Sun, Yong Zhang in The Genetic and Evolutionary Computation Conference (GECCO Student Workshop). ACM, 2014 , pp. 1053-1056. [DOI: 10.1145/2598394.2605674] |


Inherited by Tibia.Objects.Player.
Public Member Functions | |
| Creature (Client client, uint address) | |
| Create a new creature object with the given client and address. | |
| bool | InParty () |
| Check if a player (creature) is in your party. | |
| bool | IsReachable () |
| Check if have a path to the creature. | |
| bool | IsSelf () |
| Check if the current creature is actually yourself. | |
| void | Approach () |
| bool | IsAttacking () |
| Check if the creature is attacking the player. | |
| bool | Attack () |
| Attack the creature. Sends a packet to the server and sets the red square around the creature. | |
| bool | Look () |
| Look at the creature / player. Sends a packet to the server with the same effect as shift-clicking or left-right clicking a creature. | |
| bool | Follow () |
| Follow the creature / player. | |
| double | DistanceTo (Location l) |
| Gets the distance between player and creature / player. | |
| override string | ToString () |
Protected Attributes | |
| Client | client |
| uint | address |
Properties | |
| uint | Address [get, set] |
| Client | Client [get] |
| int | Id [get, set] |
| Constants.CreatureType | Type [get, set] |
| string | Name [get, set] |
| int | X [get, set] |
| int | Y [get, set] |
| int | Z [get, set] |
| Location | Location [get] |
| int | ScreenOffsetHoriz [get, set] |
| int | ScreenOffsetVert [get, set] |
| bool | IsWalking [get, set] |
| int | WalkSpeed [get, set] |
| Constants.Direction | Direction [get, set] |
| bool | IsVisible [get, set] |
| int | Light [get, set] |
| int | LightColor [get, set] |
| int | HPBar [get, set] |
| int | BlackSquare [get] |
| Constants.Skull | Skull [get, set] |
| Constants.Party | Party [get, set] |
| Constants.OutfitType | OutfitType [get, set] |
| int | Color_Head [get, set] |
| int | Color_Body [get, set] |
| int | Color_Legs [get, set] |
| int | Color_Feet [get, set] |
| Constants.OutfitAddon | Addon [get, set] |
| Outfit | Outfit [get, set] |
| Tibia.Objects.Creature.Creature | ( | Client | client, | |
| uint | address | |||
| ) |
Create a new creature object with the given client and address.
| client | The client. | |
| address | The address. |
| void Tibia.Objects.Creature.Approach | ( | ) |
| bool Tibia.Objects.Creature.Attack | ( | ) |
Attack the creature. Sends a packet to the server and sets the red square around the creature.
| double Tibia.Objects.Creature.DistanceTo | ( | Location | l | ) |
Gets the distance between player and creature / player.
| bool Tibia.Objects.Creature.Follow | ( | ) |
Follow the creature / player.
| bool Tibia.Objects.Creature.InParty | ( | ) |
Check if a player (creature) is in your party.
| bool Tibia.Objects.Creature.IsAttacking | ( | ) |
Check if the creature is attacking the player.
| bool Tibia.Objects.Creature.IsReachable | ( | ) |
Check if have a path to the creature.
| bool Tibia.Objects.Creature.IsSelf | ( | ) |
Check if the current creature is actually yourself.
| bool Tibia.Objects.Creature.Look | ( | ) |
Look at the creature / player. Sends a packet to the server with the same effect as shift-clicking or left-right clicking a creature.
| override string Tibia.Objects.Creature.ToString | ( | ) |
uint Tibia.Objects.Creature.address [protected] |
Client Tibia.Objects.Creature.client [protected] |
Constants.OutfitAddon Tibia.Objects.Creature.Addon [get, set] |
uint Tibia.Objects.Creature.Address [get, set] |
int Tibia.Objects.Creature.BlackSquare [get] |
Client Tibia.Objects.Creature.Client [get] |
int Tibia.Objects.Creature.Color_Body [get, set] |
int Tibia.Objects.Creature.Color_Feet [get, set] |
int Tibia.Objects.Creature.Color_Head [get, set] |
int Tibia.Objects.Creature.Color_Legs [get, set] |
Constants.Direction Tibia.Objects.Creature.Direction [get, set] |
int Tibia.Objects.Creature.HPBar [get, set] |
int Tibia.Objects.Creature.Id [get, set] |
Reimplemented in Tibia.Objects.Player.
bool Tibia.Objects.Creature.IsVisible [get, set] |
bool Tibia.Objects.Creature.IsWalking [get, set] |
int Tibia.Objects.Creature.Light [get, set] |
int Tibia.Objects.Creature.LightColor [get, set] |
Location Tibia.Objects.Creature.Location [get] |
string Tibia.Objects.Creature.Name [get, set] |
Outfit Tibia.Objects.Creature.Outfit [get, set] |
Constants.OutfitType Tibia.Objects.Creature.OutfitType [get, set] |
Constants.Party Tibia.Objects.Creature.Party [get, set] |
int Tibia.Objects.Creature.ScreenOffsetHoriz [get, set] |
int Tibia.Objects.Creature.ScreenOffsetVert [get, set] |
Constants.Skull Tibia.Objects.Creature.Skull [get, set] |
Constants.CreatureType Tibia.Objects.Creature.Type [get, set] |
int Tibia.Objects.Creature.WalkSpeed [get, set] |
int Tibia.Objects.Creature.X [get, set] |
Reimplemented in Tibia.Objects.Player.
int Tibia.Objects.Creature.Y [get, set] |
Reimplemented in Tibia.Objects.Player.
int Tibia.Objects.Creature.Z [get, set] |
Reimplemented in Tibia.Objects.Player.


The requested object could not be found. Please try refreshing the page. If this error message keeps appearing, please contact the administrator.


jsonTree is a Java library that can be used to convert between the representation of some data as JSON text and the representation of the data as a rooted tree.
jsonTree may be used under the terms of the MIT License.


iTunes - Books - I Love You Rituals by Becky A. Bailey
Oct 13, 2009 . Get a free sample or buy I Love You Rituals by Becky A. Bailey on the iTunes Store. You can read this book with iBooks on your iPhone, iPad, .
https://itunes.apple.com/us/book/i-love-you-rituals/id360628177?mt=11
Treatment for Herniated or Bulging Discs
I Love You Rituals: Becky A. Bailey:<PHONE_NUMBER>170: Amazon.com ...
Becky A. Bailey, Ph.D., specializes in early childhood education and developmental psychology. Her lectures reach more than 20,000 people annually, and her .
http://www.amazon.com/Love-You-Rituals-Becky-Bailey/dp/0688161170
Book Review: I Love You Rituals by Becky Bailey Ph.D - Yahoo ...
Oct 21, 2009 . From the dedication page to the final page, I Love You Rituals by Becky Bailey is worth it for busy moms.
http://voices.yahoo.com/book-review-love-rituals-becky-bailey-phd-4694629.html
i love you rituals Herniated or Bulging Discs
I Love You Rituals - Becky A. Bailey - Google Books
I Love You Rituals offers more than seventy delightful rhymes and games that . and especially effective in stressful situations, I Love You Rituals gives parents, .
http://books.google.com/books/about/I_Love_You_Rituals.html?id=zx7KiVYxtUEC
BARNES & NOBLE | I Love You Rituals by Becky A. Bailey | NOOK ...
Available in: NOOK Book (eBook), Paperback. I Love You Rituals offers more than seventy delightful rhymes and games that send the message of unconditional .
http://www.barnesandnoble.com/w/i-love-you-rituals-becky-a-bailey/1100609599
I Love You Rituals Book
I Love You Rituals Book (Click on image for larger view). I Love You Rituals Book . Price: $14.99. Status: In Stock. Item Number: 10620. Quantity: Pin It · Like this .
http://www.kaplanco.com/store/trans/productDetailForm.asp?CatID=16%7CTR1015%7C0&PID=10620
Official Impairment Listing for Spinal Disorders
I Love You Rituals Episode 27 | The Power of Moms
Feb 11, 2012 . Donna West is affectionately known as "Gaming Grandma"; her most prominent "I love you ritual" is playing games with her children and .
http://powerofmoms.com/2012/02/i-love-you-rituals-episode-27/
- home (narrowing of the spine)
I Love You Rituals by Becky A. Bailey - Reviews, Discussion ...
Nov 21, 2000 . I Love You Rituals has 141 ratings and 32 reviews. Julie said: The premise of this book is simple: it lists activities that you can do with your .
http://www.goodreads.com/book/show/143058.I_Love_You_RitualsI Love You Rituals - Loving Guidance, Inc.
I Love You Rituals (Books). Create connections with 75+ activities designed to strengthen adult-child relationships. These rituals increase attention span, .
http://consciousdiscipline.com/store/pc/I-Love-You-Rituals-4p10.htm
Songs for I Love You Rituals Volume 2 - Gryphon House, Inc.
Research shows that we can optimize brain development through touch, music and verbage. Songs for I Love You Rituals Volume 2 combines these proven .
http://www.gryphonhouse.com/store/trans/productDetailForm.asp?BookID=23615
Connection and I Love You Rituals - Conscious Clips - YouTube
Jun 30, 2008 . Connections on the outside with other people help build neural connections inside your brain. Connections require eye contact, touch, .
http://www.youtube.com/watch?v=9VnuRcMuKtI
Medical-Vocational Allowance for Herniated Disc
Browse Inside I Love You Rituals by Becky A. Bailey
I Love You Rituals offers more than seventy delightful rhymes and games that send the message of unconditional love and enhance children's social, emotional, .
http://www.harpercollins.com/browseinside/index.aspx?isbn13=9780688161170
How to tell a child 'I love you' | Motherhood Matters
Jan 31, 2011 . Creating I Love You rituals in the home is probably one of the simplest things you can do to yield big results in family connectedness.
http://motherhoodmatters.blogs.deseretnews.com/2011/01/31/how-to-tell-a-child-i-love-you/
Appealing a Denial of Benefits
The Little School Community Blog: I LOVE YOU rituals
Apr 30, 2011 .  Most of us associate discipline with punishment, .
http://blog.thelittleschool.net/2011/04/i-love-you-rituals.html
Conscious Discipline
Greeting Apron; Brain Smart Start; Activity to Unite; Activity to Disengage Stress; Activity to Connect/I Love You Rituals; Commitments (Gentle Touch, Be a STAR, .
http://prekese.dadeschools.net/consciousdiscipline.html


During the past few years, the Unix operating system has come into wide use, so wide that its very name has become a trademark of Bell Laboratories. Its important characteristics have become known to many people. It has suffered much rewriting and tinkering since the first publication describing it in 1974 [1], but few fundamental changes. However, Unix was born in 1969 not 1974, and the account of its development makes a little-known and perhaps instructive story. This paper presents a technical and social history of the evolution of the system.
For computer science at Bell Laboratories, the period 1968-1969 was somewhat unsettled. The main reason for this was the slow, though clearly inevitable, withdrawal of the Labs from the Multics project. To the Labs computing community as a whole, the problem was the increasing obviousness of the failure of Multics to deliver promptly any sort of usable system, let alone the panacea envisioned earlier. For much of this time, the Murray Hill Computer Center was also running a costly GE 645 machine that inadequately simulated the GE 635. Another shake-up that occurred during this period was the organizational separation of computing services and computing research.
From the point of view of the group that was to be most involved in the beginnings of Unix (K. Thompson, Ritchie, M. D. McIlroy, J. F. Ossanna), the decline and fall of Multics had a directly felt effect. We were among the last Bell Laboratories holdouts actually working on Multics, so we still felt some sort of stake in its success. More important, the convenient interactive computing service that Multics had promised to the entire community was in fact available to our limited group, at first under the CTSS system used to develop Multics, and later under Multics itself. Even though Multics could not then support many users, it could support us, albeit at exorbitant cost. We didn't want to lose the pleasant niche we occupied, because no similar ones were available; even the time-sharing service that would later be offered under GE's operating system did not exist. What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form. We knew from experience that the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication.
Thus, during 1969, we began trying to find an alternative to Multics. The search took several forms. Throughout 1969 we (mainly Ossanna, Thompson, Ritchie) lobbied intensively for the purchase of a medium-scale machine for which we promised to write an operating system; the machines we suggested were the DEC PDP-10 and the SDS (later Xerox) Sigma 7. The effort was frustrating, because our proposals were never clearly and finally turned down, but yet were certainly never accepted. Several times it seemed we were very near success. The final blow to this effort came when we presented an exquisitely complicated proposal, designed to minimize financial outlay, that involved some outright purchase, some third-party lease, and a plan to turn in a DEC KA-10 processor on the soon-to-be-announced and more capable KI-10. The proposal was rejected, and rumor soon had it that W. O. Baker (then vice-president of Research) had reacted to it with the comment `Bell Laboratories just doesn't do business this way!'
Actually, it is perfectly obvious in retrospect (and should have been at the time) that we were asking the Labs to spend too much money on too few people with too vague a plan. Moreover, I am quite sure that at that time operating systems were not, for our management, an attractive area in which to support work. They were in the process of extricating themselves not only from an operating system development effort that had failed, but from running the local Computation Center. Thus it may have seemed that buying a machine such as we suggested might lead on the one hand to yet another Multics, or on the other, if we produced something useful, to yet another Comp Center for them to be responsible for.
Besides the financial agitations that took place in 1969, there was technical work also. Thompson, R. H. Canaday, and Ritchie developed, on blackboards and scribbled notes, the basic design of a file system that was later to become the heart of Unix. Most of the design was Thompson's, as was the impulse to think about file systems at all, but I believe I contributed the idea of device files. Thompson's itch for creation of an operating system took several forms during this period; he also wrote (on Multics) a fairly detailed simulation of the performance of the proposed file system design and of paging behavior of programs. In addition, he started work on a new operating system for the GE-645, going as far as writing an assembler for the machine and a rudimentary operating system kernel whose greatest achievement, so far as I remember, was to type a greeting message. The complexity of the machine was such that a mere message was already a fairly notable accomplishment, but when it became clear that the lifetime of the 645 at the Labs was measured in months, the work was dropped.
Also during 1969, Thompson developed the game of `Space Travel.' First written on Multics, then transliterated into Fortran for GECOS (the operating system for the GE, later Honeywell, 635), it was nothing less than a simulation of the movement of the major bodies of the Solar System, with the player guiding a ship here and there, observing the scenery, and attempting to land on the various planets and moons. The GECOS version was unsatisfactory in two important respects: first, the display of the state of the game was jerky and hard to control because one had to type commands at it, and second, a game cost about $75 for CPU time on the big computer. It did not take long, therefore, for Thompson to find a little-used PDP-7 computer with an excellent display processor; the whole system was used as a Graphic-II terminal. He and I rewrote Space Travel to run on this machine. The undertaking was more ambitious than it might seem; because we disdained all existing software, we had to write a floating-point arithmetic package, the pointwise specification of the graphic characters for the display, and a debugging subsystem that continuously displayed the contents of typed-in locations in a corner of the screen. All this was written in assembly language for a cross-assembler that ran under GECOS and produced paper tapes to be carried to the PDP-7.
Space Travel, though it made a very attractive game, served mainly as an introduction to the clumsy technology of preparing programs for the PDP-7. Soon Thompson began implementing the paper file system (perhaps `chalk file system' would be more accurate) that had been designed earlier. A file system without a way to exercise it is a sterile proposition, so he proceeded to flesh it out with the other requirements for a working operating system, in particular the notion of processes. Then came a small set of user-level utilities: the means to copy, print, delete, and edit files, and of course a simple command interpreter (shell). Up to this time all the programs were written using GECOS and files were transferred to the PDP-7 on paper tape; but once an assembler was completed the system was able to support itself. Although it was not until well into 1970 that Brian Kernighan suggested the name `Unix,' in a somewhat treacherous pun on `Multics,' the operating system we know today was born.
Structurally, the file system of PDP-7 Unix was nearly identical to today's. It had
The important file system calls were also present from the start. Read, write, open, creat (sic), close: with one very important exception, discussed below, they were similar to what one finds now. A minor difference was that the unit of I/O was the word, not the byte, because the PDP-7 was a word-addressed machine. In practice this meant merely that all programs dealing with character streams ignored null characters, because null was used to pad a file to an even number of characters. Another minor, occasionally annoying difference was the lack of erase and kill processing for terminals. Terminals, in effect, were always in raw mode. Only a few programs (notably the shell and the editor) bothered to implement erase-kill processing.
In spite of its considerable similarity to the current file system, the PDP-7 file system was in one way remarkably different: there were no path names, and each file-name argument to the system was a simple name (without `/') taken relative to the current directory. Links, in the usual Unix sense, did exist. Together with an elaborate set of conventions, they were the principal means by which the lack of path names became acceptable.
The link call took the form
link(dir, file, newname)
So that every user did not need to maintain a link to all directories of interest, there existed a directory called dd that contained entries for the directory of each user. Thus, to make a link to file x in directory ken, I might do
ln dd ken ken ln ken x x rm ken
The dd convention made the chdir command relatively convenient. It took multiple arguments, and switched the current directory to each named directory in turn. Thus
chdir dd ken
The most serious inconvenience of the implementation of the file system, aside from the lack of path names, was the difficulty of changing its configuration; as mentioned, directories and special files were both made only when the disk was recreated. Installation of a new device was very painful, because the code for devices was spread widely throughout the system; for example there were several loops that visited each device in turn. Not surprisingly, there was no notion of mounting a removable disk pack, because the machine had only a single fixed-head disk.
The operating system code that implemented this file system was a drastically simplified version of the present scheme. One important simplification followed from the fact that the system was not multi-programmed; only one program was in memory at a time, and control was passed between processes only when an explicit swap took place. So, for example, there was an iget routine that made a named i-node available, but it left the i-node in a constant, static location rather than returning a pointer into a large table of active i-nodes. A precursor of the current buffering mechanism was present (with about 4 buffers) but there was essentially no overlap of disk I/O with computation. This was avoided not merely for simplicity. The disk attached to the PDP-7 was fast for its time; it transferred one 18-bit word every 2 microseconds. On the other hand, the PDP-7 itself had a memory cycle time of 1 microsecond, and most instructions took 2 cycles (one for the instruction itself, one for the operand). However, indirectly addressed instructions required 3 cycles, and indirection was quite common, because the machine had no index registers. Finally, the DMA controller was unable to access memory during an instruction. The upshot was that the disk would incur overrun errors if any indirectly-addressed instructions were executed while it was transferring. Thus control could not be returned to the user, nor in fact could general system code be executed, with the disk running. The interrupt routines for the clock and terminals, which needed to be runnable at all times, had to be coded in very strange fashion to avoid indirection.
By `process control,' I mean the mechanisms by which processes are created and used; today the system calls fork, exec, wait, and exit implement these mechanisms. Unlike the file system, which existed in nearly its present form from the earliest days, the process control scheme underwent considerable mutation after PDP-7 Unix was already in use. (The introduction of path names in the PDP-11 system was certainly a considerable notational advance, but not a change in fundamental structure.)
Today, the way in which commands are executed by the shell can be summarized as follows:
Processes (independently executing entities) existed very early in PDP-7 Unix. There were in fact precisely two of them, one for each of the two terminals attached to the machine. There was no fork, wait, or exec. There was an exit, but its meaning was rather different, as will be seen. The main loop of the shell went as follows.
The most interesting thing about this primitive implementation is the degree to which it anticipated themes developed more fully later. True, it could support neither background processes nor shell command files (let alone pipes and filters); but IO redirection (via `<' and `>') was soon there; it is discussed below. The implementation of redirection was quite straightforward; in step 3) above the shell just replaced its standard input or output with the appropriate file. Crucial to subsequent development was the implementation of the shell as a user-level program stored in a file, rather than a part of the operating system.
The structure of this process control scheme, with one process per terminal, is similar to that of many interactive systems, for example CTSS, Multics, Honeywell TSS, and IBM TSS and TSO. In general such systems require special mechanisms to implement useful facilities such as detached computations and command files; Unix at that stage didn't bother to supply the special mechanisms. It also exhibited some irritating, idiosyncratic problems. For example, a newly recreated shell had to close all its open files both to get rid of any open files left by the command just executed and to rescind previous IO redirection. Then it had to reopen the special file corresponding to its terminal, in order to read a new command line. There was no /dev directory (because no path names); moreover, the shell could retain no memory across commands, because it was reexecuted afresh after each command. Thus a further file system convention was required: each directory had to contain an entry tty for a special file that referred to the terminal of the process that opened it. If by accident one changed into some directory that lacked this entry, the shell would loop hopelessly; about the only remedy was to reboot. (Sometimes the missing link could be made from the other terminal.)
Process control in its modern form was designed and implemented within a couple of days. It is astonishing how easily it fitted into the existing system; at the same time it is easy to see how some of the slightly unusual features of the design are present precisely because they represented small, easily-coded changes to what existed. A good example is the separation of the fork and exec functions. The most common model for the creation of new processes involves specifying a program for the process to execute; in Unix, a forked process continues to run the same program as its parent until it performs an explicit exec. The separation of the functions is certainly not unique to Unix, and in fact it was present in the Berkeley time-sharing system [2], which was well-known to Thompson. Still, it seems reasonable to suppose that it exists in Unix mainly because of the ease with which fork could be implemented without changing much else. The system already handled multiple (i.e. two) processes; there was a process table, and the processes were swapped between main memory and the disk. The initial implementation of fork required only
In fact, the PDP-7's fork call required precisely 27 lines of assembly code. Of course, other changes in the operating system and user programs were required, and some of them were rather interesting and unexpected. But a combined fork-exec would have been considerably more complicated, if only because exec as such did not exist; its function was already performed, using explicit IO, by the shell.
The exit system call, which previously read in a new copy of the shell (actually a sort of automatic exec but without arguments), simplified considerably; in the new version a process only had to clean out its process table entry, and give up control.
Curiously, the primitives that became wait were considerably more general than the present scheme. A pair of primitives sent one-word messages between named processes:
smes(pid, message) (pid, message) = rmes()
The message facility was used as follows: the parent shell, after creating a process to execute a command, sent a message to the new process by smes; when the command terminated (assuming it did not try to read any messages) the shell's blocked smes call returned an error indication that the target process did not exist. Thus the shell's smes became, in effect, the equivalent of wait.
A different protocol, which took advantage of more of the generality offered by messages, was used between the initialization program and the shells for each terminal. The initialization process, whose ID was understood to be 1, created a shell for each of the terminals, and then issued rmes; each shell, when it read the end of its input file, used smes to send a conventional `I am terminating' message to the initialization process, which recreated a new shell process for that terminal.
I can recall no other use of messages. This explains why the facility was replaced by the wait call of the present system, which is less general, but more directly applicable to the desired purpose. Possibly relevant also is the evident bug in the mechanism: if a command process attempted to use messages to communicate with other processes, it would disrupt the shell's synchronization. The shell depended on sending a message that was never received; if a command executed rmes, it would receive the shell's phony message, and cause the shell to read another input line just as if the command had terminated. If a need for general messages had manifested itself, the bug would have been repaired.
At any rate, the new process control scheme instantly rendered some very valuable features trivial to implement; for example detached processes (with `&') and recursive use of the shell as a command. Most systems have to supply some sort of special `batch job submission' facility and a special command interpreter for files distinct from the one used interactively.
Although the multiple-process idea slipped in very easily indeed, there were some aftereffects that weren't anticipated. The most memorable of these became evident soon after the new system came up and apparently worked. In the midst of our jubilation, it was discovered that the chdir (change current directory) command had stopped working. There was much reading of code and anxious introspection about how the addition of fork could have broken the chdir call. Finally the truth dawned: in the old system chdir was an ordinary command; it adjusted the current directory of the (unique) process attached to the terminal. Under the new system, the chdir command correctly changed the current directory of the process created to execute it, but this process promptly terminated and had no effect whatsoever on its parent shell! It was necessary to make chdir a special command, executed internally within the shell. It turns out that several command-like functions have the same property, for example login.
Another mismatch between the system as it had been and the new process control scheme took longer to become evident. Originally, the read/write pointer associated with each open file was stored within the process that opened the file. (This pointer indicates where in the file the next read or write will take place.) The problem with this organization became evident only when we tried to use command files. Suppose a simple command file contains
ls who
sh comfile >output
Solution of this problem required creation of a new system table to contain the IO pointers of open files independently of the process in which they were opened.
The very convenient notation for IO redirection, using the `>' and `<' characters, was not present from the very beginning of the PDP-7 Unix system, but it did appear quite early. Like much else in Unix, it was inspired by an idea from Multics. Multics has a rather general IO redirection mechanism [3] embodying named IO streams that can be dynamically redirected to various devices, files, and even through special stream-processing modules. Even in the version of Multics we were familiar with a decade ago, there existed a command that switched subsequent output normally destined for the terminal to a file, and another command to reattach output to the terminal. Where under Unix one might say
ls >xx
iocall attach user_output file xx list iocall attach user_output syn user_i/o
By the beginning of 1970, PDP-7 Unix was a going concern. Primitive by today's standards, it was still capable of providing a more congenial programming environment than its alternatives. Nevertheless, it was clear that the PDP-7, a machine we didn't even own, was already obsolete, and its successors in the same line offered little of interest. In early 1970 we proposed acquisition of a PDP-11, which had just been introduced by Digital. In some sense, this proposal was merely the latest in the series of attempts that had been made throughout the preceding year. It differed in two important ways. First, the amount of money (about $65,000) was an order of magnitude less than what we had previously asked; second, the charter sought was not merely to write some (unspecified) operating system, but instead to create a system specifically designed for editing and formatting text, what might today be called a `word-processing system.' The impetus for the proposal came mainly from J. F. Ossanna, who was then and until the end of his life interested in text processing. If our early proposals were too vague, this one was perhaps too specific; at first it too met with disfavor. Before long, however, funds were obtained through the efforts of L. E. McMahon and an order for a PDP-11 was placed in May.
The processor arrived at the end of the summer, but the PDP-11 was so new a product that no disk was available until December. In the meantime, a rudimentary, core-only version of Unix was written using a cross-assembler on the PDP-7. Most of the time, the machine sat in a corner, enumerating all the closed Knight's tours on a 6×8 chess boarda three-month job.
Once the disk arrived, the system was quickly completed. In internal structure, the first version of Unix for the PDP-11 represented a relatively minor advance over the PDP-7 system; writing it was largely a matter of transliteration. For example, there was no multi-programming; only one user program was present in core at any moment. On the other hand, there were important changes in the interface to the user: the present directory structure, with full path names, was in place, along with the modern form of exec and wait, and conveniences like character-erase and line-kill processing for terminals. Perhaps the most interesting thing about the enterprise was its small size: there were 24K bytes of core memory (16K for the system, 8K for user programs), and a disk with 1K blocks (512K bytes). Files were limited to 64K bytes.
At the time of the placement of the order for the PDP-11, it had seemed natural, or perhaps expedient, to promise a system dedicated to word processing. During the protracted arrival of the hardware, the increasing usefulness of PDP-7 Unix made it appropriate to justify creating PDP-11 Unix as a development tool, to be used in writing the more special-purpose system. By the spring of 1971, it was generally agreed that no one had the slightest interest in scrapping Unix. Therefore, we transliterated the roff text formatter into PDP-11 assembler language, starting from the PDP-7 version that had been transliterated from McIlroy's BCPL version on Multics, which had in turn been inspired by J. Saltzer's runoff program on CTSS. In early summer, editor and formatter in hand, we felt prepared to fulfill our charter by offering to supply a text-processing service to the Patent department for preparing patent applications. At the time, they were evaluating a commercial system for this purpose; the main advantages we offered (besides the dubious one of taking part in an in-house experiment) were two in number: first, we supported Teletype's model 37 terminals, which, with an extended type-box, could print most of the math symbols they required; second, we quickly endowed roff with the ability to produce line-numbered pages, which the Patent Office required and which the other system could not handle.
During the last half of 1971, we supported three typists from the Patent department, who spent the day busily typing, editing, and formatting patent applications, and meanwhile tried to carry on our own work. Unix has a reputation for supplying interesting services on modest hardware, and this period may mark a high point in the benefit/equipment ratio; on a machine with no memory protection and a single .5 MB disk, every test of a new program required care and boldness, because it could easily crash the system, and every few hours' work by the typists meant pushing out more information onto DECtape, because of the very small disk.
The experiment was trying but successful. Not only did the Patent department adopt Unix, and thus become the first of many groups at the Laboratories to ratify our work, but we achieved sufficient credibility to convince our own management to acquire one of the first PDP 11/45 systems made. We have accumulated much hardware since then, and labored continuously on the software, but because most of the interesting work has already been published, (e.g. on the system itself [1, 5, 6, 7, 8, 9]) it seems unnecessary to repeat it here.
One of the most widely admired contributions of Unix to the culture of operating systems and command languages is the pipe, as used in a pipeline of commands. Of course, the fundamental idea was by no means new; the pipeline is merely a specific form of coroutine. Even the implementation was not unprecedented, although we didn't know it at the time; the `communication files' of the Dartmouth Time-Sharing System [10] did very nearly what Unix pipes do, though they seem not to have been exploited so fully.
Pipes appeared in Unix in 1972, well after the PDP-11 version of the system was in operation, at the suggestion (or perhaps insistence) of M. D. McIlroy, a long-time advocate of the non-hierarchical control flow that characterizes coroutines. Some years before pipes were implemented, he suggested that commands should be thought of as binary operators, whose left and right operand specified the input and output files. Thus a `copy' utility would be commanded by
inputfile copy outputfile
input sort paginate offprint
sort input | pr | opr
Some time later, thanks to McIlroy's persistence, pipes were finally installed in the operating system (a relatively simple job), and a new notation was introduced. It used the same characters as for I/O redirection. For example, the pipeline above might have been written
sort input >pr>opr>
The new facility was enthusiastically received, and the term `filter' was soon coined. Many commands were changed to make them usable in pipelines. For example, no one had imagined that anyone would want the sort or pr utility to sort or print its standard input if given no explicit arguments.
Soon some problems with the notation became evident. Most annoying was a silly lexical problem: the string after `>' was delimited by blanks, so, to give a parameter to pr in the example, one had to quote:
sort input >"pr -2">opr>
opr <pr<"sort input"<
pr <"sort input"< >opr>
I mentioned above in the section on IO redirection that Multics provided a mechanism by which IO streams could be directed through processing modules on the way to (or from) the device or file serving as source or sink. Thus it might seem that stream-splicing in Multics was the direct precursor of Unix pipes, as Multics IO redirection certainly was for its Unix version. In fact I do not think this is true, or is true only in a weak sense. Not only were coroutines well-known already, but their embodiment as Multics spliceable IO modules required that the modules be specially coded in such a way that they could be used for no other purpose. The genius of the Unix pipeline is precisely that it is constructed from the very same commands used constantly in simplex fashion. The mental leap needed to see this possibility and to invent the notation is large indeed.
Every program for the original PDP-7 Unix system was written in assembly language, and bare assembly language it wasfor example, there were no macros. Moreover, there was no loader or link-editor, so every program had to be complete in itself. The first interesting language to appear was a version of McClure's TMG [11] that was implemented by McIlroy. Soon after TMG became available, Thompson decided that we could not pretend to offer a real computing service without Fortran, so he sat down to write a Fortran in TMG. As I recall, the intent to handle Fortran lasted about a week. What he produced instead was a definition of and a compiler for the new language B [12]. B was much influenced by the BCPL language [13]; other influences were Thompson's taste for spartan syntax, and the very small space into which the compiler had to fit. The compiler produced simple interpretive code; although it and the programs it produced were rather slow, it made life much more pleasant. Once interfaces to the regular system calls were made available, we began once again to enjoy the benefits of using a reasonable language to write what are usually called `systems programs:' compilers, assemblers, and the like. (Although some might consider the PL/I we used under Multics unreasonable, it was much better than assembly language.) Among other programs, the PDP-7 B cross-compiler for the PDP-11 was written in B, and in the course of time, the B compiler for the PDP-7 itself was transliterated from TMG into B.
When the PDP-11 arrived, B was moved to it almost immediately. In fact, a version of the multi-precision `desk calculator' program dc was one of the earliest programs to run on the PDP-11, well before the disk arrived. However, B did not take over instantly. Only passing thought was given to rewriting the operating system in B rather than assembler, and the same was true of most of the utilities. Even the assembler was rewritten in assembler. This approach was taken mainly because of the slowness of the interpretive code. Of smaller but still real importance was the mismatch of the word-oriented B language with the byte-addressed PDP-11.
Thus, in 1971, work began on what was to become the C language [14]. The story of the language developments from BCPL through B to C is told elsewhere [15], and need not be repeated here. Perhaps the most important watershed occurred during 1973, when the operating system kernel was rewritten in C. It was at this point that the system assumed its modern form; the most far-reaching change was the introduction of multi-programming. There were few externally-visible changes, but the internal structure of the system became much more rational and general. The success of this effort convinced us that C was useful as a nearly universal tool for systems programming, instead of just a toy for simple applications.
Today, the only important Unix program still written in assembler is the assembler itself; virtually all the utility programs are in C, and so are most of the applications programs, although there are sites with many in Fortran, Pascal, and Algol 68 as well. It seems certain that much of the success of Unix follows from the readability, modifiability, and portability of its software that in turn follows from its expression in high-level languages.
One of the comforting things about old memories is their tendency to take on a rosy glow. The programming environment provided by the early versions of Unix seems, when described here, to be extremely harsh and primitive. I am sure that if forced back to the PDP-7 I would find it intolerably limiting and lacking in conveniences. Nevertheless, it did not seem so at the time; the memory fixes on what was good and what lasted, and on the joy of helping to create the improvements that made life better. In ten years, I hope we can look back with the same mixed impression of progress combined with continuity.
I am grateful to S. P. Morgan, K. Thompson, and M. D. McIlroy for providing early documents and digging up recollections.
Because I am most interested in describing the evolution of ideas, this paper attributes ideas and work to individuals only where it seems most important. The reader will not, on the average, go far wrong if he reads each occurrence of `we' with unclear antecedent as `Thompson, with some assistance from me.'


|
M480 BSP V3.05.005
The Board Support Package for M480 Series
|
#include <wdt_reg.h>
Data Fields | |
| __IO uint32_t | CTL |
| __IO uint32_t | ALTCTL |
| __O uint32_t | RSTCNT |
@addtogroup WDT Watch Dog Timer Controller(WDT) Memory Mapped Structure for WDT Controller
| WDT_T::ALTCTL |
[0x0004] WDT Alternative Control Register
| Bits | Field | Descriptions |
| [1:0] | RSTDSEL | WDT Reset Delay Selection (Write Protect)
When WDT time-out happened, user has a time named WDT Reset Delay Period to clear WDT counter by setting RSTCNT (WDT_CTL[0]) to prevent WDT time-out reset happened User can select a suitable setting of RSTDSEL for different WDT Reset Delay Period. 00 = WDT Reset Delay Period is 1026 * WDT_CLK. 01 = WDT Reset Delay Period is 130 * WDT_CLK. 10 = WDT Reset Delay Period is 18 * WDT_CLK. 11 = WDT Reset Delay Period is 3 * WDT_CLK. Note1: This bit is write protected. Refer to the SYS_REGLCTL register. Note2: This register will be reset to 0 if WDT time-out reset happened. |
| WDT_T::CTL |
[0x0000] WDT Control Register
| Bits | Field | Descriptions |
| [0] | RSTCNT | Reset WDT Up Counter (Write Protect)
0 = No effect. 1 = Reset the internal 18-bit WDT up counter value. Note1: This bit is write protected. Refer to the SYS_REGLCTL register. Note2: This bit will be automatically cleared by hardware. |
| [1] | RSTEN | WDT Time-out Reset Enable Control (Write Protect)
Setting this bit will enable the WDT time-out reset function If the WDT up counter value has not been cleared after the specific WDT reset delay period expires. 0 = WDT time-out reset function Disabled. 1 = WDT time-out reset function Enabled. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [2] | RSTF | WDT Time-out Reset Flag
This bit indicates the system has been reset by WDT time-out reset or not. 0 = WDT time-out reset did not occur. 1 = WDT time-out reset occurred. Note: This bit is cleared by writing 1 to it. |
| [3] | IF | WDT Time-out Interrupt Flag
This bit will set to 1 while WDT up counter value reaches the selected WDT time-out interval 0 = WDT time-out interrupt did not occur. 1 = WDT time-out interrupt occurred. Note: This bit is cleared by writing 1 to it. |
| [4] | WKEN | WDT Time-out Wake-up Function Control (Write Protect)
If this bit is set to 1, while WDT time-out interrupt flag IF (WDT_CTL[3]) is generated to 1 and interrupt enable bit INTEN (WDT_CTL[6]) is enabled, the WDT time-out interrupt signal will generate a wake-up trigger event to chip. 0 = Wake-up trigger event Disabled if WDT time-out interrupt signal generated. 1 = Wake-up trigger event Enabled if WDT time-out interrupt signal generated. Note1: This bit is write protected. Refer to the SYS_REGLCTL register. Note2: Chip can be woken-up by WDT time-out interrupt signal generated only if WDT clock source is selected to 10 kHz internal low speed RC oscillator (LIRC) or LXT. |
| [5] | WKF | WDT Time-out Wake-up Flag (Write Protect)
This bit indicates the interrupt wake-up flag status of WDT 0 = WDT does not cause chip wake-up. 1 = Chip wake-up from Idle or Power-down mode if WDT time-out interrupt signal generated. Note1: This bit is write protected. Refer to the SYS_REGLCTL register. Note2: This bit is cleared by writing 1 to it. |
| [6] | INTEN | WDT Time-out Interrupt Enable Control (Write Protect)
If this bit is enabled, the WDT time-out interrupt signal is generated and inform to CPU. 0 = WDT time-out interrupt Disabled. 1 = WDT time-out interrupt Enabled. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [7] | WDTEN | WDT Enable Control (Write Protect)
0 = WDT Disabled (This action will reset the internal up counter value). 1 = WDT Enabled. Note1: This bit is write protected. Refer to the SYS_REGLCTL register. Note2: If CWDTEN[2:0] (combined by Config0[31] and Config0[4:3]) bits is not configure to 111, this bit is forced as 1 and user cannot change this bit to 0. |
| [10:8] | TOUTSEL | WDT Time-out Interval Selection (Write Protect)
These three bits select the time-out interval period for the WDT. 000 = 24 * WDT_CLK. 001 = 26 * WDT_CLK. 010 = 28 * WDT_CLK. 011 = 210 * WDT_CLK. 100 = 212 * WDT_CLK. 101 = 214 * WDT_CLK. 110 = 216 * WDT_CLK. 111 = 218 * WDT_CLK. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [30] | SYNC | WDT Enable Control SYNC Flag Indicator (Read Only)
If user execute enable/disable WDTEN (WDT_CTL[7]), this flag can be indicated enable/disable WDTEN function is completed or not. 0 = Set WDTEN bit is completed. 1 = Set WDTEN bit is synchronizing and not become active yet.. Note: Perform enable or disable WDTEN bit needs 2 * WDT_CLK period to become active. |
| [31] | ICEDEBUG | ICE Debug Mode Acknowledge Disable Control (Write Protect)
0 = ICE debug mode acknowledgement affects WDT counting. WDT up counter will be held while CPU is held by ICE. 1 = ICE debug mode acknowledgement Disabled. WDT up counter will keep going no matter CPU is held by ICE or not. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| WDT_T::RSTCNT |
[0x0008] WDT Reset Counter Register
| Bits | Field | Descriptions |
| [31:0] | RSTCNT | WDT Reset Counter Register
Writing 0x00005AA5 to this field will reset the internal 18-bit WDT up counter value to 0. Note: Perform RSTCNT to reset counter needs 2 * WDT_CLK period to become active. Note: RSTCNT (WDT_CTL[0]) bit is a write protected bit RSTCNT (WDT_RSTCNT[31:0]) bits are not write protected. |


408_ddoudle.py
class Solution:
def eatenApples(self, A: List[int], D: List[int]) -> int:
cnt = 0
heap = []
for i in range(len(A)):
if A[i] > 0:
heappush(heap, [i+D[i], A[i]])
while heap and heap[0][0] <= i:
heappop(heap)
if heap:
day, number = heappop(heap)
number -= 1
cnt += 1
if number > 0:
heappush(heap, [day, number])
cur = len(A)
while heap:
while heap and heap[0][0] <= cur:
heappop(heap)
if heap:
day, number = heappop(heap)
if day - cur >= number:
cur = number + cur
cnt += number
else:
cnt += day - cur
cur = day
return cnt


About US
welcome to our shop
we hope that you'll like our salmon cookies
Products
Opening Hours
| Branch | Hours |
|---|---|
| Seatle | 6:00 AM to 8:00PM |
| Tokyo | 6:00 AM to 8:00PM |
| Dubai | 6:00 AM to 8:00PM |
| Paris | 6:00 AM to 8:00PM |
| Lima | 6:00 AM to 8:00PM |


we are the leading company in web tutorials with over 500 handpicked videos your dreams real with awseome projects.


{% extends "base.html" %} {% block content %}
Emotion App is an application that allows users to select and select and fill in real time emotions in a classroom scenario.
Researchers can customise the session based on their preferences.
EmotionApp is developed by a team of undergrauduates from the University of Western Australia. Our team consists of:
Bryce O' Connor
Carmen Leong
Mandeal Tan
Wai Yee Goh


In this package specialized kinds of classes (earlier known as restricted classes) are described. They have the properties of a general class, apart from restrictions. Moreover, they have additional properties called enhancements.
| Name | Description |
|---|---|
| 'block' | block |
| 'class' | class |
| 'connector' | connector |
| ExternalObject | ExternalObject |
| 'function' | function |
| 'model' | model |
| 'package' | package |
| 'record' | record |
| 'type' | type |


--- layout: page title: 404 eleventyExcludeFromCollections: true ---
404 — This page does not exist.
Sorry about that. Maybe you’d like to go back to the home page, or visit our blog.


A simple website to select random pictures and send them to your email!
Simply add your email, select the random pictures from the grid below, change the pictures randomly
if none of the current ones fit your need then confirm and submit!
Please enter you email below
Please select an image, or images from the random selection below:


What if you could view your music statistics
anywhere, at any time?
Introducing TuneTrack, the first application that
enables you to do so for multiple music services.
What if you could view your music statistics anywhere, at any time?
Introducing TuneTrack, the first application that enables you to do so for multiple music services.
TuneTrack comes with built-in support for the most
popular music services, so your friends can use it too!
Each song on TuneTrack comes with its own data, so
you can compare it to other songs easily and learn
more about the song!
TuneTrack comes with built-in support for the most popular music services, so your friends can use it too!
Each song on TuneTrack comes with its own data, so you can compare it to other songs easily and learn more about the song!
With the press of a button, you can create a playlist
of your top tracks and share it with friends.
Don't want to make a playlist every time?
You can just hit the share button on the bottom right
and export your top media in text format!
With the press of a button, you can create a playlist of your top tracks and share it with friends.
Don't want to make a playlist every time? You can just hit the share button on the bottom rightand export your top media in text format!
Spotify and Last.fm statistics come with filters such as
time period and artists/tracks/albums, so you can get
precise data for any media at any time period!
Apple Music statistics have even more precise
filtering, with filters such as Date Added To Library,
Last Played, and more!
Spotify and Last.fm statistics come with filters such as time period and artists/tracks/albums, so you can get precise data for any media at any time period!
Apple Music statistics have even more precise filtering, with filters such as Date Added To Library,
Last Played, and more!
TuneTrack comes with a built-in theming system and
configurable app icons, so you can make the app
truly personal.
TuneTrack comes with a built-in theming system and configurable app icons, so you can make the app truly personal.
Download TuneTrack today and learn more about
your music habits than you ever have before!
Download TuneTrack today and learn more about your music habits than you ever have before!
Get on App Store


class: left, middle background-image: url(../../images/master-folie.png) .title[ ## Let, const, ## temporal dead zone
### Oleg Varaksin ####<EMAIL_ADDRESS>] --- # Variables declared with var (1/3). *Variables declared with __var__ are __hoisted__ to the top.* What does it mean? Hoisting is a JavaScript's default behavior of moving all declarations to the top of the current scope. The current scope can be the current script or the current function. Example: ```js var a = 1; console.log(a); // 1 ``` The variable `a` is declared as global (as expected). ```js if (a === 1) { var b = 2; } console.log(b); // 2 ``` Variable `b` is inside an `if` block, but in JavaScript it doesn't create a new scope. It's declared as global too. --- # Variables declared with var (2/3). ```js for (var c = 0; c < 3; c++) { ... } console.log(c); // 3 ``` The variable `c` is declared in a `for` loop, but it is also lies in the global scope. ```js function doSomething() { var d = 4; } console.log(d); // ReferenceError: d is not defined ``` The variable `d` is declared in his own scope. It's inside a function and only function creates new scopes. --- # Variables declared with var (3/3). Another example of __hoisting__: ```js function doSomething (name) { if (name === 'nico') { var awesome = true; } return awesome; } doSomething('nico') // <- true doSomething('marc') // <- undefined ``` Behind the scenes, the JavaScript engine changes the function to look like this ```js function doSomething (name) { var awesome; if (name === 'nico') { awesome = true; } return awesome; } ``` --- # Let declaration (1/2). The `let` declaration syntax is the same as the syntax for `var`, but it limits the variable's scope to only the current code block. Previous examples, but with `let`: ```js let a = 1; if (a === 1) { let b = 2; } for (let c = 0; c < 3; c++) { ... } function doSomething() { let d = 4; } console.log(a); // 1 console.log(b); // ReferenceError: b is not defined console.log(c); // ReferenceError: c is not defined console.log(d); // ReferenceError: d is not defined ``` --- # Let declaration (2/2). Quick quiz. ```js let a = 2; if (a > 1) { let b = a * 3; console.log(b); // 6 for (let i = a; i <= b; i++) { let j = i + 10; ... } let c = a + b; console.log(c); // 8 } ``` Which variable(s) exist only inside the `if` statement, and which variable(s) exist only inside the `for` loop? -- __Answer__: the `if` statement contains `b` and `c` block-scoped variables, and the `for` loop contains `i` and `j` block-scoped variables. --- # Let declarations in loops (1/2). ```js var funcs = []; for (let i = 0; i < 5; i++) { funcs.push(function(){ console.log(i); }); } funcs[3](); // 3 ``` The `let i` in the `for` header redeclares a new `i` for each iteration of the loop. In other words, on each iteration, the loop creates a new variable `i` and the closures are created inside the loop iteration. The same snippet, but with `var i` in the `for` loop header, would get `5` instead of `3`, because there would only be one `i` in the outer scope which had the last assigned value `i`. __Note:__ `let` also works the same way with `for..in` and `for..of` loops. --- # Let declarations in loops (2/2). Example for `for..in` loop: ```js var funcs = [], object = {a: true, b: true, c: true}; for (let key in object) { funcs.push(function() { console.log(key); }); } funcs.forEach(function(func) { func(); // outputs "a", then "b", then "c" }); ``` Each time through the loop, a new `key` binding is created, and so each function has its own copy of the `key` variable. The result is that each function outputs a different value. If `var` were used to declare `key`, all functions would output `c`. --- # Const declaration (1/3). `const` declaration creates constants. It is a variable that is read-only after its initial value is set. ```js const a = 2; console.log(a); // 2 a = 3; // SyntaxError: "a" is read-only ``` Values of variables declared using `const` cannot be changed once set. For this reason, every `const` variable must be initialized on declaration: ```js // valid constant const maxItems = 30; // SyntaxError: missing initialization const name; ``` --- # Const declaration (2/3). Constants are not a restriction on the value itself, but on the variable's assignment of that value. In other words, the value is not frozen or immutable because of `const`, just the assignment of it. If the value is complex, such as an object or array, the contents of the value can still be modified. Example: ```js const a = [1,2,3]; a.push(4); console.log(a); // [1,2,3,4] a = 42; // SyntaxError ``` Constants, like `let` declarations, are block-level declarations. ```js if (condition) { const maxItems = 5; ... } // maxItems isn't accessible here ``` --- # Const declaration (3/3). Constans can be used in loops too. ```js var funcs = [], object = {a: true, b: true, c: true}; // doesn't cause an error due to a new binding on each iteration for (const key in object) { funcs.push(function() { console.log(key); }); } funcs.forEach(function(func) { func(); // outputs "a", then "b", then "c" }); ``` __Attention:__ But the value of `key` cannot be changed inside the loop. --- # Redeclaration pitfall. If an identifier has already been defined in a scope, then using the identifier in a `let` or `const` declaration inside that scope causes an error to be thrown. ```js var count = 30; // SyntaxError is thrown, // because count is declared twice within the same block let count = 40; ``` But the next `let` declaration doesn't throw an error. ```js var count = 30; if (condition) { let count = 40; } ``` Why? Because it creates a new variable `count` within the `if` statement block, instead of creating `count` in the surrounding block. Inside the `if` block, this new variable shadows the global `count`, preventing access to it until execution leaves the block. --- # The Temporal Dead Zone (1/2). The `let` and `const` declarations are not hoisted to the top of the enclosing block. A variable declared with either cannot be accessed before the declaration. Attempting to do so results in a reference error. ```js if (condition) { console.log(typeof value); // ReferenceError! let value = "blue"; // TDZ } ``` The line with `let value = "blue"` is never executed because the previous line throws an error. But the next code snippet works without errors because `typeof` check occurs outside of the block in which `value` is declared. ```js console.log(typeof value); // "undefined" if (condition) { let value = "blue"; } ``` There is no `value` binding ouside of the block, and `typeof` simply returns `undefined`. --- # The Temporal Dead Zone (2/2). __Memorize again and notice the difference__: Accessing a `let`-declared variable earlier than its `let` declaration / initialization causes an error, whereas with `var` declarations the ordering doesn't matter. ```js { console.log(a); // undefined console.log(b); // ReferenceError! var a; let b; } ``` --- class: center, middle, inverse # That's all folks, thanks for your attention! .back[[Back to the homepage](http://ova2.github.io/es6-presentations/)] Slideshow created with [remark](https://github.com/gnab/remark)


PyroCMS is written intended to be styled mainly by CSS, but as designers you want full control over how your site looks. We understand that, so PyroCMS will let you replace any module view with a view inside your theme. Let's say you want to replace the main blog listing page. Simply copy:
system/pyrocms/modules/blog/views/index.php to: addons/themes/[theme_name]/views/modules/blog/index.phpNow you can edit that view however you like, and upgrade PyroCMS knowing your customized views are safe.


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one or more | |
| 3 | * contributor license agreements. See the NOTICE file distributed with | |
| 4 | * this work for additional information regarding copyright ownership. | |
| 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 | |
| 6 | * (the "License"); you may not use this file except in compliance with | |
| 7 | * the License. You may obtain a copy of the License at | |
| 8 | * | |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 10 | * | |
| 11 | * Unless required by applicable law or agreed to in writing, software | |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 14 | * See the License for the specific language governing permissions and | |
| 15 | * limitations under the License. | |
| 16 | */ | |
| 17 | package org.apache.commons.fileupload.servlet; | |
| 18 | ||
| 19 | import java.io.IOException; | |
| 20 | import java.util.List; | |
| 21 | import java.util.Map; | |
| 22 | ||
| 23 | import javax.servlet.http.HttpServletRequest; | |
| 24 | ||
| 25 | import org.apache.commons.fileupload.FileItem; | |
| 26 | import org.apache.commons.fileupload.FileItemFactory; | |
| 27 | import org.apache.commons.fileupload.FileItemIterator; | |
| 28 | import org.apache.commons.fileupload.FileUpload; | |
| 29 | import org.apache.commons.fileupload.FileUploadBase; | |
| 30 | import org.apache.commons.fileupload.FileUploadException; | |
| 31 | ||
| 32 | /** | |
| 33 | *
High level API for processing file uploads.
 | |
| 34 | * | |
| 35 | *
This class handles multiple files per single HTML widget, sent using | |
| 36 | * multipart/mixed encoding type, as specified by | |
| 37 | * RFC 1867. Use {@link | |
| 38 | * #parseRequest(HttpServletRequest)} to acquire a list of {@link | |
| 39 | * org.apache.commons.fileupload.FileItem}s associated with a given HTML | |
| 40 | * widget.
 | |
| 41 | * | |
| 42 | *
How the data for individual parts is stored is determined by the factory | |
| 43 | * used to create them; a given part may be in memory, on disk, or somewhere | |
| 44 | * else.
 | |
| 45 | */ | |
| 46 | public class ServletFileUpload extends FileUpload { | |
| 47 | ||
| 48 | /** | |
| 49 | * Constant for HTTP POST method. | |
| 50 | */ | |
| 51 | private static final String POST_METHOD = "POST"; | |
| 52 | ||
| 53 | // ---------------------------------------------------------- Class methods | |
| 54 | ||
| 55 | /** | |
| 56 | * Utility method that determines whether the request contains multipart | |
| 57 | * content. | |
| 58 | * | |
| 59 | * @param request The servlet request to be evaluated. Must be non-null. | |
| 60 | * | |
| 61 | * @return true if the request is multipart; | |
| 62 | * false otherwise. | |
| 63 | */ | |
| 64 | public static final boolean isMultipartContent( | |
| 65 | HttpServletRequest request) { | |
| 66 |
1
1. isMultipartContent : negated conditional → NO_COVERAGE |
if (!POST_METHOD.equalsIgnoreCase(request.getMethod())) { |
| 67 |
1
1. isMultipartContent : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 68 | } | |
| 69 |
1
1. isMultipartContent : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return FileUploadBase.isMultipartContent(new ServletRequestContext(request)); |
| 70 | } | |
| 71 | ||
| 72 | // ----------------------------------------------------------- Constructors | |
| 73 | ||
| 74 | /** | |
| 75 | * Constructs an uninitialised instance of this class. A factory must be | |
| 76 | * configured, using setFileItemFactory(), before attempting | |
| 77 | * to parse requests. | |
| 78 | * | |
| 79 | * @see FileUpload#FileUpload(FileItemFactory) | |
| 80 | */ | |
| 81 | public ServletFileUpload() { | |
| 82 | super(); | |
| 83 | } | |
| 84 | ||
| 85 | /** | |
| 86 | * Constructs an instance of this class which uses the supplied factory to | |
| 87 | * create FileItem instances. | |
| 88 | * | |
| 89 | * @see FileUpload#FileUpload() | |
| 90 | * @param fileItemFactory The factory to use for creating file items. | |
| 91 | */ | |
| 92 | public ServletFileUpload(FileItemFactory fileItemFactory) { | |
| 93 | super(fileItemFactory); | |
| 94 | } | |
| 95 | ||
| 96 | // --------------------------------------------------------- Public methods | |
| 97 | ||
| 98 | /** | |
| 99 | * Processes an RFC 1867 | |
| 100 | * compliant multipart/form-data stream. | |
| 101 | * | |
| 102 | * @param request The servlet request to be parsed. | |
| 103 | * | |
| 104 | * @return A list of FileItem instances parsed from the | |
| 105 | * request, in the order that they were transmitted. | |
| 106 | * | |
| 107 | * @throws FileUploadException if there are problems reading/parsing | |
| 108 | * the request or storing files. | |
| 109 | */ | |
| 110 | @Override | |
| 111 | public List<FileItem> parseRequest(HttpServletRequest request) | |
| 112 | throws FileUploadException { | |
| 113 |
1
1. parseRequest : mutated return of Object value for org/apache/commons/fileupload/servlet/ServletFileUpload::parseRequest to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return parseRequest(new ServletRequestContext(request)); |
| 114 | } | |
| 115 | ||
| 116 | /** | |
| 117 | * Processes an RFC 1867 | |
| 118 | * compliant multipart/form-data stream. | |
| 119 | * | |
| 120 | * @param request The servlet request to be parsed. | |
| 121 | * | |
| 122 | * @return A map of FileItem instances parsed from the request. | |
| 123 | * | |
| 124 | * @throws FileUploadException if there are problems reading/parsing | |
| 125 | * the request or storing files. | |
| 126 | * | |
| 127 | * @since 1.3 | |
| 128 | */ | |
| 129 | public Map<String, List<FileItem>> parseParameterMap(HttpServletRequest request) | |
| 130 | throws FileUploadException { | |
| 131 |
1
1. parseParameterMap : mutated return of Object value for org/apache/commons/fileupload/servlet/ServletFileUpload::parseParameterMap to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return parseParameterMap(new ServletRequestContext(request)); |
| 132 | } | |
| 133 | ||
| 134 | /** | |
| 135 | * Processes an RFC 1867 | |
| 136 | * compliant multipart/form-data stream. | |
| 137 | * | |
| 138 | * @param request The servlet request to be parsed. | |
| 139 | * | |
| 140 | * @return An iterator to instances of FileItemStream | |
| 141 | * parsed from the request, in the order that they were | |
| 142 | * transmitted. | |
| 143 | * | |
| 144 | * @throws FileUploadException if there are problems reading/parsing | |
| 145 | * the request or storing files. | |
| 146 | * @throws IOException An I/O error occurred. This may be a network | |
| 147 | * error while communicating with the client or a problem while | |
| 148 | * storing the uploaded content. | |
| 149 | */ | |
| 150 | public FileItemIterator getItemIterator(HttpServletRequest request) | |
| 151 | throws FileUploadException, IOException { | |
| 152 |
1
1. getItemIterator : mutated return of Object value for org/apache/commons/fileupload/servlet/ServletFileUpload::getItemIterator to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return super.getItemIterator(new ServletRequestContext(request)); |
| 153 | } | |
| 154 | ||
| 155 | } | |
Mutations | ||
| 66 |
1.1 |
|
| 67 |
1.1 |
|
| 69 |
1.1 |
|
| 113 |
1.1 |
|
| 131 |
1.1 |
|
| 152 |
1.1 |


--- title: XResNet with PyTorch keywords: fastai sidebar: home_sidebar summary: "Implementing the second generation ResNet with some tweaks presented in: https://arxiv.org/abs/1812.01187" ---
I think we've been using MNIST for a little too long, to really test out the models going forward we're going to need to start using some bigger and harder datasets. Opting for another class, let's get Imagenet setup using FastAI's DataBlock API
run = get_runner(get_learner(getResnet(18, 3, 10)), [ProgressCallback(), Stats([accuracy]), CudaCallback()])
run.fit(1, 1e-3)
!python notebook2script.py XResNet.ipynb


| 010:102 Khan | : |
Then do they wait for (anything) save for (destruction) like the days of the men who passed away before them? Say: "Wait then, I am (too) with you among those who wait." |
| 010:102 Maulana | : |
What do they wait for then, but the like of the days of those who passed away before them? Say: Wait then: I, too, am with you of those who wait. |
| 010:102 Pickthal | : |
What expect they save the like of the days of those who passed away before them? Say: Expect then! I am with you among the expectant. |
| 010:102 Rashad | : |
Can they expect other than the fate of their counterparts in the past? Say, "Just wait, and, along with you, I am also waiting." |
| 010:102 Sarwar | : |
What can they expect other than the kind of (punishment that befell the disbelieving people) who had gone before them? (Muhammad), tell them, "Wait and I too will be waiting with you." |
| 010:102 Shakir | : |
What do they wait for then but the like of the days of those who passed away before them? Say: Wait then; surely I too am with you of those who wait. |
| 010:102 Sherali | : |
What, then, do they wait for, save the like of the days of punishment suffered by those who passed away before them? Say, 'Wait, then, I am with you among those who wait.' |
| 010:102 Yusufali | : |
Do they then expect (any thing) but (what happened in) the days of the men who passed away before them? Say: "Wait ye then: for I, too, will wait with you." |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الكافرون > امتناعهم عن الإيمان لا يجديهم نفعا Pillars of Islam> Islamic> The Disbelievers> Their Refrain from the Belief is Useless
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


.
There are 2 main entry points to the SPI:
- HintsController allows to set editor hints for a given document/file.
- ErrorDescriptionFactory allows to create the hints with description and possible fixes.


MEET THE PARENTS A film review by Christopher Null Copyright 2000 filmcritic.com filmcritic.com
Pity poor Greg Focker. Not only is the man employed as a male nurse with an unfortunate name, but he's about to meet his girlfriend's parents in order to ask dad for her hand in marriage. Only dad is about as humorless as, say, Robert De Niro. And poor Greg can't do anything right to save his skin.
It all reminds me, with flashback-like intensity, of meeting my own father-in-law-to-be, a guy so stern he makes De Niro look like Jim Carrey. Picture Ben Stiller as Focker (or me) and De Niro as himself, and, like magic, you've got yourself one hell of a comedy that will see few equals this year or any other. (Note to Dr. Carder: This is just a joke that I know you'll laugh about because we have such a great relationship! See you this Christmas!!!)
De Niro comes off surprisingly perfect as the straight man to Stiller's streetwise doofus, equally apt in his role as the guy who will never be good enough for the girl (Teri Polo). At first we see De Niro's Jack as a harmless but hard-nosed retiree, with Focker (a name which is repeatedly said aloud with great comic effect) doing everything in his power to make dad like him.
 Which is no good, because you can't hear anything either due to all the laughter. I literally found myself gasping for breath during Meet the Parents' most comic moments, wishing I could rewind the film.
Ultimately, Meet the Parents is one of the funniest comedies I've seen since Annie Hall, a film with which it shares a wry sensibility about modern romance. Jack, his true nature revealed, is so obsessed with perfection for his daughter that he gives Greg a lie detector test about his past. Greg is so obsessed with making a good impression he spray-paints a stray cat to look like Jack's pet when it goes missing. All of these situations are, against all expectations, utterly believable, and invariably they are hilarious. To top all that, somehow the film has been kept suitable for teens with a PG-13 rating, yet it is perfect for couples with its upbeat love story, and equally good for anyone looking for a good comedy where they can let go and yuk it up.
Director Hal Roach (of Austin Powers fame) handles the camera well, framing Focker in scenes that would be worthy of The Fugitive if they weren't so funny. I can't think of much in the film that isn't done equally well. Randy Newman's title song "A Fool in Love" should earn an Oscar nomination, along with the script and the two lead actors if there's any justice in the world. Altogether, Meet the Parents is one of few films that I can highly recommend to anyone.
But perhaps the best part of the film is its ending, which leaves plenty of room for at least two sequels. Like me, I'm sure you'll be hoping they decide to make them before you're even back to the parking lot.

The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


JavaScript accordions let you squeeze a lot of content into a small space in a Web page.
This simple accordion degrades gracefully in browsers that don't support JavaScript or CSS.
JavaScript accordions let you squeeze a lot of content into a small space in a Web page.
This simple accordion degrades gracefully in browsers that don't support JavaScript or CSS.
JavaScript accordions let you squeeze a lot of content into a small space in a Web page.
This simple accordion degrades gracefully in browsers that don't support JavaScript or CSS.


为 Kotlin 贡献力量
Kotlin is an open-source project under the Apache 2.0 License. The source code, tooling, documentation, and even this web site are maintained on GitHub. While Kotlin is mostly developed by JetBrains, there are hundreds of external contributors to the Kotlin project and we are always on the lookout for more people to help us.
Participate in Early Access Preview
You can help us improve Kotlin by participating in Kotlin Early Access Preview (EAP) and providing us with your valuable feedback.
For every release, Kotlin ships a few preview builds where you can try out the latest features before they go to production. You can report any bugs you find to our issue tracker YouTrack and we will try to fix them before a final release. This way, you can get bug fixes earlier than the standard Kotlin release cycle.
Contribute to the compiler, standard library, and tooling
If you want to contribute to the Kotlin compiler, standard library, or tooling, go to GitHub, check out the latest Kotlin version, and follow the instructions on how to contribute.
You can help us by completing open tasks. Please keep an open line of communication with us because we may have questions and comments on your changes. Otherwise, we won't be able to incorporate your contributions.
Contribute to other libraries and create your own
Besides the standard library that provides core capabilities, Kotlin has a number of additional (kotlinx) libraries that extend its functionality. Each kotlinx library is developed in a separate repository, has its own versioning and release cycle.
If you want to contribute to a kotlinx library, follow the contribution process described for each library, such as kotlinx.coroutines, kotlinx.serialization, and ktor.
If you have a library that could be useful to other Kotlin developers, let us know via<EMAIL_ADDRESS>Contribute to the documentation
If you've found an issue in the Kotlin documentation, feel free to check out the documentation source code on GitHub and send us a pull request. Please keep an open line of communication with us because we may have questions and comments on your changes. Otherwise, we won't be able to incorporate your contributions.
The documentation site is built using Markdown and Jekyll.
Create tutorials or videos
If you've created tutorials or videos for Kotlin, please share them with us via<EMAIL_ADDRESS>Translate documentation to other languages
You are welcome to translate the Kotlin documentation into your own language and publish the translation on your website. However, we won't be able to host your translation in the main repository and publish it on kotlinlang.org.
This site is the official documentation for the language, and we ensure that all the information here is correct and up to date. Unfortunately, we won't be able to review documentation in other languages.
译注：补充或改善中文站（即本站）翻译，可以 fork Kotlin 语言中文站项目并提 Pull Request。 目前《翻译指南》还在制订中，不过 #35 有一些草稿， 初次翻译请务必先阅读 #35 及其中链接对应的内容。
Hold events and presentations
If you've given or just plan to give presentations or hold events on Kotlin, please fill out the form. We'll feature them on the event list.
中文站翻译贡献者
Kotlin 编程语言中文站翻译贡献者如下（排名不分先后）：
- 灰蓝天际
- 晓_晨DEV
- S_arige
- dingsx
- 空白
- LyndonChin
- Jacky Xu
- wahchi
- _Y
- EasonZhou
- pecpwee
- Airoyee
- 化缘
- drakeet
- cx9527
- zsn012
- xwSurfer
- chiahaolu
- DemoJameson
- SnakeEys
- wssccc
- 592357390
- imknown
- XuToTo
- ovear
- boris1993
- iamhefang
- Maxwell1987
- henryhuang
- 高金龙
- shiyongkun
- yangxiaobinhaoshuai
- 乔禹昂
- capcdk
- luozejiaqun
- shuhuaxie
- okou19900722
- jonzoro
- ypxgxf
- cnfn
- Mikyou
- HoshinoTented
- wangkezun
- TangHuaiZhe
- singlepig
- phxnirvana
- Farubaba
- renzhi(任智)
- 刘文俊
- johnpoint
- whataa
- caixingke
- clarkhan
- yinhutjfox
- Him188
- 常少威
- coderWangJie
- javaisgood
- jimmysuncpt
- star0224
- yourzeromax
- Yue-plus
- CZKGO
- wsq22
- gentrio
- easyfirst
- Guolianxing
- BobEve
- 7forz
- Andy1245-dot
- Aaro0n
- plain-dev
- willawang8908
- singleNeuron
- ShreckYe
- deanssss
- cznno
- hepan
- small-ora
- ijunjie


Our Products
PRODUCTS OF GARMENTS
MEN’S & LADIES’ ALL KIND OF KNIT PRODUCTS
Men's Garments Product
Ladies Garments Product


{% load staticfiles %}
Established in 2018 in INDIA, REST_IN has grown from a small start-up to one of the largest Lodging e-commerce companies in the world. Part of Booking Holdings, REST_IN now employs more than 20,00 employees in 19 offices in 10 countries worldwide.
REST IN is based in Telangana in the INDIA, and is supported internationally by 19 offices in over 10 countries around the world: India - Indonesia - Portuguese - Amsterdam - United States Of America - Wakanda - Knowwhere - Vormir - Titan - Asgard
REST IN guarantees to offer you the best available rates. And with our promise to price match, you can rest assured that you’re always getting a great deal.
Many travelers begin with search engines...
That's why we don't wait for guests to come to us, but actively promote your property
on search engines all across the globe.
Listing on restin.com means your listing is advertised on Google Maps too.
We partner with airline companies like Emirates, American Airlines, easyJet, KLM,
and many more to promote your property to their customers.
We also plan some events daily to entertain our customers. We plan small games for children, cultural competitions for boys and girls, cultural programs and also events for old people.
We also plan trips to nearby visiting places for certain number of people every week.
We even provide learning facilities like self defence, yoga, marshall arts an we also provide gym available daily from 5 o'clock in the morning till 6 o'clock in the evening.
Rd.No: 03, Vinayak Nagar
Nizamabad, Telangana
503001 INDIA
<EMAIL_ADDRESS><EMAIL_ADDRESS>Phone: (+91)<PHONE_NUMBER>
Mobile: (+91)<PHONE_NUMBER>
Fax: (+91)<PHONE_NUMBER>


The filters package contains example filters to select only desired nodes.
For example, to display tags having the "id" attribute, you could use:
Parser parser = new Parser ("http://yadda");
parser.parse (new HasAttributeFilter ("id"));
These filters can be combined to yield powerful extraction capabilities.
For example, to get a list of links where the contents is an image, you could use:
NodeList list = new NodeList ();
NodeFilter filter =
new AndFilter (
new TagNameFilter ("A"),
new HasChildFilter (
new TagNameFilter ("IMG")));
for (NodeIterator e = parser.elements (); e.hasMoreNodes (); )
e.nextNode ().collectInto (list, filter);


Test page
Simple HTML page with all kind of "buy" buttons to see if the extension works.
If no buttons or anchors are shown, the filtering works!
Buttons
Anchors
Buy
Koop


I'm Sue. I am a big fan of appreciating bad art in all it's forms. Also some good art, I guess, though I mostly make the bad kind.
I like making things, which why I've become interested in hardware. In particular, robot arms that can poke cats and tiny buzzers that can be programmed to make sounds that annoy cats.
I work at a place called Bocoup, which is totally not a cult. There I make applications with javascript, php, python, whatevs and try to help clients do a good internet.


Welcome Author!
Paper Submission
Paper URL
Amount
*
*minimum amount is 3 tokens
Number
(of referenced author)
Address
(of referenced author)
Submit


Taskpaper.web
A simple, easy to use plain text file-based task management web application. It offers superb ways of filtering, grouping, searching for and managing your tasks. But ultimately 'all your tasks belong you', so everything is stored in a simple text file format. Tasks are created and edited directly in the text file, either in the application or in an editor of your choice.
Add tasks, projects and notes to quickly create a simple, easy-on-the-eye list of thing to do!
Easily add tags to any task (or even project), to help you find and group your list
Divide your tasks up into simple projects. Click to view that project only
Powerful search box, with Google-like syntax. Just type words or dates to look for, or use any of the special commands. For example, type '=late' to see tasks that are overdue.
Click the Edit button to edit your task list...it's just a plain text file underneath its shiny skin!
The Taskpaper Syntax
Projects
Projects are created by writing the project name on a line followed by a colon ( : )
This is a project:
Tasks
You make a task by beginning the line with dash-space ( - )
- this is a task
Tags
No task management is complete without ubiquitious 'tags', a quick, simple way of group and filtering your tasks. A tag is added by putting a @ symbol before the tag word
- this is a task @tag @another-tag
(Note: sorry, no spaces allowed in tags...you'll get used to it!)
Dated Tags
You an also make a dated tag (i.e. a due date) by using the @ followed by the date
- a dated tasks @15-dec-2009
(Note: the date format default is dd-mmm-yyyy, but this can be changed in the config.php file)
Notes
Any line beginning with ... (an ellipsis) is considered as a note. Simple as that. Notes belong to the task above them
...a note all by itself
Complete/Done
To show that a task is done, just put an X at the start of the line. Simple, visible, memorable!
X- this task is done
Highlighting/Starred
To highlight a task (aka: starred) you can simply put an * (asterisk) at the end of the line
- this task is highlighted*
Other points worth noting:
It's usually best to leave a blank line between projects, it makes it easier to recognise the different projects. At the top of the list is a good place to put any new (orphaned) tasks that you haven't had time to file yet. As noted below tasks entered in the 'Search Box' also puts new tasks here by default.
Adding and Editing Tasks
You can edit the whole taskpaper document by clicking the 'Edit' button on the toolbar at the top; make any edits you want and click 'Save' button when you're finished.
You can also quickly add new tasks using the 'Search/Command Box' at the top right. Just type a task as you normally would (i.e. start with '- ') and press enter when you're done. You can also add tags, or even choose the project by typing '/' followed by the project number (Refer to the project numbers in list on left) or by selecting a project before you enter a new task. By default all new tasks added this way will be put at the top if no project is given.
You can also use time periods in tags when adding tasks through the Command Box; for example if you type "@today" it will be changed to today's date when the task is added. The following time periods are recognised:
@today, @tomorrow, @day, @week, @month, @year
Before the last 4 periods you can also put a number, e.g:
@2day, @3week (i.e. in 2 days, in 3 weeks)
Note: spaces and plurals are not recognised (yet...)
Examples
So, to put it all together here's a complete example:
The first project: - get to work early @remind @important * - get to bed early @maybe X- buy flowers for your wife @remind @30-dec-2009 Second project: - wake up early @soon - eat wholemeal porridge @food @today* ...try Tiger Oats?
Group, Filter, Search
Click on any tag, anywhere to filter/group by that tag. Same thing for projects; click on the project heading to see tasks from that project only.
Use the search box on the top right to do a full-text search, multiple words can be used. Words can be excluded by putting '-' before them:
yes -no
You can also search by date:
>12-feb-2009 => all tasks after this date
<12-jan-2008 => all tasks before this date
"12-jan-2009 12-feb-2009" => all tasks between these dates
12-feb-2009..30-may-2009 => (alternative way of doing date ranges)
Or by time period: any of the following are accepted and understood:
=today, =week, =month, =quarter, =year
Use the special 'done', 'starred', 'due', 'late' tags to filter by these categories.
Of course you can also use these tags in the Search Box too:
=due, =late, =star, =done
You can search for specific phrases by enclosing them in quotes (" "):
"specific phrase"
All the above can be combined in one search as well, e.g.:
=due order "door hinges"
Taskpaper will try to sort and group date searches by month for a better overview. If your search contains many words, commands and/or dates, then put the date at the end to group the search. For example these searches would be grouped:
roof =month
joe door =due
These searches will not be grouped:
=month order
=due electrical
Symon Bent, South Africa, Revised: 26-Mar-2009 10:47


Welcome to the Light and Sound Game! Repeat back the pattern by pressing the button associated with the sound.
Easy Mode: 3 strikes and it's slow!
Medium Mode: 2 strikes and it's decently paced.
Hard Mode: 1 strike and lol good luck.


PresenceAbsence: Presence-Absence Model Evaluation
This package provides a set of functions useful when
evaluating the results of presence-absence models. Package
includes functions for calculating threshold dependent measures
such as confusion matrices, pcc, sensitivity, specificity, and
Kappa, and produces plots of each measure as the threshold is
varied. It will calculate optimal threshold choice according to
a choice of optimization criteria. It also includes functions
to plot the threshold independent ROC curves along with the
associated AUC (area under the curve).
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=PresenceAbsence
to link to this page.


What is the purpose of this organization?
Technology Student Association is a STEAM-based (A = Arts) organization, focused on providing members opportunities to compete in several different competitions. Events include but are not limited to Video Game Design, Fashion Design, Flight Endurance, CAD, and Scientific Visualization. Check out the Event Information page under Competitions for more specific information.


Tasks
| # | Task | Approval Status | View Task |
|---|---|---|---|
| 1 | Task A | Under Review | |
| 2 | Task B | Approved | |
| 3 | Task C | Awaiting Submission |
Image Preview
{{message}}
{{submitMsg}}
Template
Please select a task using one of the green buttons.
Project manager notes here


Estd .2002, Hyderabad
Register
Please register for the Pre-admission here. Each registration costs INR 500.
Why you should attend?
Best Teaching Experience
Best topics covered
World Class Standards
Its Digital
Name
Email
Please Select the Course
CSE
ECE
ME
Comments


Plug in not installed
It seems that the webrtc plugin did not load. Have you installed the plugin already?
Mac: To install the plugin you need to:
- Download WebrtcPlugin.plugin.
- Unzip the file. Copy WebrtcPlugin.plugin into "~/Library/Internet Plug-Ins".
Linux: To install the plugin you need to:
- Download npWebrtcPlugin.so.
- Untar the file. Copy npWebrtcPlugin.so into "~/.mozilla/plugins".


-
No speech was detected. You may need to adjust your microphone settings.
Permission to use microphone was denied.
Permission to use microphone is blocked. To change, go to chrome://settings/contentExceptions#media-stream
Web Speech API is not supported by this browser. Upgrade to Chrome version 25 or later.


Admin Panel
Dashboard
Posts
Form
Table
Blank Page
Settings
Change Password
5
1
John Doe
Profile
Logout
Create New Post
Title
Category
-- Select Category --
One
Two
Three
Overview
Details
Feature Post
Submit
Cancel


setcap
Set capabilities of specified file.
See also: `tldr getcap`.
More information: home page
- Set capability `cap_net_raw` (to use RAW and PACKET sockets) for a given file:
setcap 'cap_net_raw' path/to/file
- Set multiple capabilities on a file (ep behind the capability means "effective permitted"):
setcap 'cap_dac_read_search,cap_sys_tty_config+ep' path/to/file
- Remove all capabilities from a file:
setcap -r path/to/file
- Verify that the specified capabilities are currently associated with the specified file:
setcap -v 'cap_net_raw' path/to/file
- The optional `-n rootuid` argument can be used to set the file capability for use only in a user namespace with this root user ID owner:
setcap -n rootuid 'cap_net_admin' path/to/file


CZ3006 Net-Centric Computing
home
education
internship
miscellaneous
A brief history of the internet
TODO
TODO
content
architecture ›


Wait for element to show
Content
Wait for element to show
Content
Wait for element to show
Content
Wait for element to Disappear
Content
Wait for element to Disappear
Content
Wait for element to Disappear
Content


Home
Notifications
Messages
Sign In
Tweet
Rachael Daily
@RachaelDaily
Tweets
193
Following
68
Followers
12
Trends for you
-Change
140 letters remaining
Tweet
Who to follow
Refresh
View All
Bikhram
@Bikhram
Follow
Peace Yoga
@PeaceYoga
Follow
TeaLeaf Yoga
@TeaLeafYoga
Follow
Yoga Works
@YogaWorks
Follow


Call of Duty: Mobile update adds controller support, Zombies mode
by Stephany NunneleyCall of Duty: Mobile’s latest update is on the way which includes the promised controller support.
A massive update to Call of Duty: Mobile goes live today, depending upon timezone, and brings with it controller support and Zombies mode.
But that’s not all. You can also expect new maps, a new Battle Pass to drop on November 25, and “much more.”
The update will go live across various timezones at different times, so here’s when you can expect it to roll out:
- Los Angeles: Nov 22 – 9pm PST
- New York: Nov 23 – 12am EST
- Sao Paulo: Nov 23 – 2am BRT
- London: Nov 23- 5am GMT
- Stockholm: Nov 23 – 6am CET
- Berlin: Nov 23 – 6am CET
- Moscow: Nov 23 – 8am MSK
- New Delhi: Nov 23 – 10:30am IST
- Sydney: Nov 23 – 4pm AEDT
- Tokyo: Nov 23 – 2pm JST
The free-to-play Call of Duty title released October 1.
Games featured in this article