At least one dead, multiple injured in shooting at California high school, suspect in custody
by Scripps NationalAt least one person is dead and multiple people were injured in a shooting that occurred at a southern California high school Thursday morning, officials said.
The shooting occurred at Saugus High School in Santa Clarita. The suspect is now in custody and being treated at a local hospital, Los Angeles County Sheriff Alex Villanueva said on Twitter.
Previous reports from CNN, NBC News and MSNBC said the suspected shooter was dead.
Several people were injured in the shooting but totals have been fluctuating. The Los Angeles County Fire department reported at 10:18 a.m. that at least six patients were transported. The Los Angeles County Sheriff's Department previously said on Twitter that approximately five victims are being treated. The Associated Press initially reported there were at least six people who were hurt, but updated their total "several" injured. Initial reports of six victims were likely due to duplicate reports, the AP said.
It's unclear if the victims suffered gunshot wounds or other injuries, Los Angeles County Fire Department spokesman Christopher Thomas told the AP.
Four patients were taken to Henry Mayo Hospital with three in critical condition, the hospital said. Three males and one female were injured, according to the hospital, and the female is now deceased. Two males are still in critical condition and the other male is in "good condition." The hospital initially reported they were receiving five patients.
"Shooting at Saugus High School, Please avoid the area," the Los Angeles County Sheriff's Office tweeted.  Deputies on scene and still responding. Avoid the area Further information to follow (sic)."
The Santa Clarita Valley Sheriff's Office and Bureau of Alcohol, Tobacco, Firearms and Explosives also responded to the shooting.
More on this as it develops.


{% extends "layout.html" %} {% block content %}
see takedown
benwaonline benwaonline-auth benwaonline-api open a pull request and we'll see what happens


Hi, I'm Brennan
Here are some things I've done
Tic-Tac-Toe
Pomodoro Timer
Javascript/CSS Calculator
Wikipedia App
Twitch App
Nifty Facts
Weather
Brennan Weather
Stroke Counter
Email me at: brennanglynn@u.boisestate.edu


Indiana reports 4th lung injury death linked to vaping
INDIANAPOLIS (AP) - Indiana health officials are reporting a fourth state resident has died of severe lung injuries linked to vaping.
The Indiana State Department of Health in a report released Thursday said the state has had 55 confirmed cases of such injuries and another 57 probable cases. It says more than 50 of the combined cases have been in the 18-29 age group and more than 20 in the 30-39 age group.
Nationwide, there have been more than 2,000 cases and at least 40 people have died.
TOP STORIES
Skeptics chuckle as climate activist Greta Thunberg sets sail for Europe on 'plastic yacht'
Obama officials wary of Hunter Biden's big-money job, ousted Ukraine ambassador admits
Company co-founded by Nancy Pelosi's son charged with securities fraud
The health department said it’s gathering data on cases and collaborating local and federal health officials and health care providers to determine potential causes of the injuries.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


CovidBase is a project focused on solving the tracing problem caused due to COVID-19. Apart from our main project, we will include more features for our project. And by that, we mean that our wesbite will hold vital information of COVID-19 and to use our social media to spread awareness and to combat fake news.


Overview
Kotlin Rules
Rules
kotlin_binary
|
Builds a Java archive ("jar file"), plus a wrapper shell script with the same name as the rule. The wrapper shell script uses a classpath that includes, among other things, a jar file for each library on which the binary depends. |
kotlin_import
|
(experimental) Import Kotlin jars. |
kotlin_library
|
This rule compiles and links Kotlin and Java sources into a .jar file. |
kotlin_test
|
Setup a simple kotlin_test. |
Macros
kotlin_repositories
|
Call this in the WORKSPACE file to setup the Kotlin rules. |


{% extends 'pages_base.html' %} {% block container %}
Open Aid Italia API are an applicative interface that allows any software module to access the data and are realized following REST architecture scheme.
The API access address is http://{{ request.get_host }}{% url 'api-root' %}.
Data are available in HTML and JSON formats.
The following data types are available:
For example:
All data are released with CC BY-SA 3.0 license.
Browsing the API with a browser a detailed documentation in English is available.
{% endblock container %}


Start making your virtual reality experiences do the work. Inspire viewers to take the next step and join your cause today.
Check it out!Empower your breathtaking wildlife encounter to convert viewers into donors that want to save the environment.
Draw in more season ticket holders to your local symphony by giving a sneak preview to the real experience.
Checkout provides a seamless integration from the virtual world to a secure payment processing platform.
Our templates are ready to apply to any experience.
"Real" encounters motivate viewers to take action
With immediate checkout, funds transfer immediately.
You can use our cart as is, or make changes!
Ready to get paid?
Shoot us an email and let's get started!


| < Day Day Up > |
Non-SELECT Dynamic SQLNon-SELECT dynamic SQL is the second of the four classes of dynamic SQL. You use it to explicitly prepare and execute SQL statements in an application program. This class of dynamic SQL uses PREPARE and EXECUTE to issue SQL statements. As its name implies, non-SELECT dynamic SQL cannot issue the SELECT statement. Therefore, this class of dynamic SQL cannot query tables. Listing 12.2 shows a simple use of non-SELECT dynamic SQL that DELETEs rows from a table. Listing 12.2. A COBOL Program Using Non-SELECT Dynamic SQLWORKING-STORAGE SECTION. . . . EXEC SQL INCLUDE SQLCA END-EXEC. . . . 01 STRING-VARIABLE. 49 STRING-VAR-LEN PIC S9(4) USAGE COMP. 49 STRING-VAR-TXT PIC X(100). . . . PROCEDURE DIVISION. . . . MOVE +45 TO STRING-VAR-LEN. MOVE "DELETE FROM DSN8810.PROJ WHERE DEPTNO = 'A00'" TO STRING-VARIABLE. EXEC SQL PREPARE STMT1 FROM :STRING-VARIABLE; END-EXEC. EXEC SQL EXECUTE STMT1; END-EXEC. . . . As I noted before, you can replace the DELETE statement in this listing with any of the following supported statements: ALTER COMMENT ON COMMIT CREATE DELETE DROP EXPLAIN GRANT INSERT LABEL ON LOCK TABLE REVOKE ROLLBACK SET UPDATE Non-SELECT dynamic SQL can use a powerful feature of dynamic SQL called a parameter marker, which is a placeholder for host variables in a dynamic SQL statement. In Listing 12.3, a question mark is used as a parameter marker, replacing the 'A00' in the predicate. When the statement is executed, a value is moved to the host variable (:TVAL) and is coded as a parameter to the CURSOR with the USING clause. When this example is executed, the host variable value replaces the parameter marker. Listing 12.3. Non-SELECT Dynamic SQL Using Parameter MarkersWORKING-STORAGE SECTION. . . . EXEC SQL INCLUDE SQLCA END-EXEC. . . . 01 STRING-VARIABLE. 49 STRING-VAR-LEN PIC S9(4) USAGE COMP. 49 STRING-VAR-TXT PIC X(100). . . . PROCEDURE DIVISION. . . . MOVE +40 TO STRING-VAR-LEN. MOVE "DELETE FROM DSN8810.PROJ WHERE DEPTNO = ?" TO STRING-VARIABLE. EXEC SQL PREPARE STMT1 FROM :STRING-VARIABLE; END-EXEC. MOVE 'A00' TO TVAL. EXEC SQL EXECUTE STMT1 USING :TVAL; END-EXEC. Non-SELECT dynamic SQL can provide huge performance benefits over EXECUTE IMMEDIATE. Consider a program that executes SQL statements based on an input file. A loop in the program reads a key value from the input file and issues a DELETE, INSERT, or UPDATE for the specified key. The EXECUTE IMMEDIATE class would incur the overhead of a PREPARE for each execution of each SQL statement inside the loop. Using non-SELECT dynamic SQL, however, you can separate PREPARE and EXECUTE, isolating PREPARE outside the loop. The key value that provides the condition for the execution of the SQL statements can be substituted using a host variable and a parameter marker. If thousands of SQL statements must be executed, you can avoid having thousands of PREPAREs by using this technique. This method greatly reduces overhead and runtime and increases the efficient use of system resources. Non-SELECT Dynamic SQL GuidelinesWhen developing non-SELECT dynamic SQL programs, heed the following guidelines. Verify Dynamic SQL SyntaxVerify that the SQL statement to be executed with dynamic SQL uses the proper SQL syntax. This way, you can reduce the overhead incurred when improperly formatted SQL statements are rejected at execution time. Use As Many Parameter Markers As NecessaryA prepared statement can contain more than one parameter marker. Use as many as necessary to ease development. Execute Prepared Statements Multiple Times in a Unit of WorkAfter a statement is prepared, you can execute it many times in one unit of work without issuing another PREPARE. When you're using non-SELECT dynamic SQL, keep this guideline in mind and avoid the PREPARE verb as much as possible because of its significant overhead. Know the Difference Between EXECUTE IMMEDIATE and Non-SELECT Dynamic SQLYou must understand the difference between EXECUTE IMMEDIATE and non-SELECT dynamic SQL before development. EXECUTE IMMEDIATE prepares the SQL statement each time it is executed, whereas non-SELECT dynamic SQL is prepared only when the program explicitly requests it. Using non-SELECT dynamic SQL can result in dramatic decreases in program execution time. For this reason, favor non-SELECT dynamic SQL over EXECUTE IMMEDIATE when issuing an SQL statement multiple times in a program loop. |
| < Day Day Up > |


@(implicit request: Request[Any], environment: play.api.Environment)
@main("join",None,"join") {
} {
} {
Join
}
@*
*
* Copyright (c) 2015-2020 Rodney S.K. Lai
* https://github.com/rodney-lai
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*@


Med Diary
Sort by:
Recent date
Date: Old to New
Alphabetical Z -> A
Alphabetical A -> Z
ADD New Dairy
Subject:
Description
Write your syptoms description here.
Date and Time


open class FlowException : Exception
Exception which can be thrown by a FlowLogic at any point in its logic to unexpectedly bring it to a permanent end. The exception will propagate to all counterparty flows and will be thrown on their end the next time they wait on a FlowLogic.receive or FlowLogic.sendAndReceive. Any flow which no longer needs to do a receive, or has already ended, will not receive the exception (if this is required then have them wait for a confirmation message).
FlowException (or a subclass) can be a valid expected response from a flow, particularly ones which act as a service. It is recommended a FlowLogic document the FlowException types it can throw.
| <init> |
FlowException(message: String?) FlowException(cause: Throwable?) FlowException() FlowException(message: String?, cause: Throwable?)
Exception which can be thrown by a FlowLogic at any point in its logic to unexpectedly bring it to a permanent end. The exception will propagate to all counterparty flows and will be thrown on their end the next time they wait on a FlowLogic.receive or FlowLogic.sendAndReceive. Any flow which no longer needs to do a receive, or has already ended, will not receive the exception (if this is required then have them wait for a confirmation message). |
| cause |
open val cause: Throwable? |
| message |
open val message: String? |
| rootCause |
val Throwable.rootCause: Throwable |
| AssetMismatchException |
class AssetMismatchException : FlowException |
| AttachmentResolutionException |
class AttachmentResolutionException : FlowException |
| CashException |
class CashException : FlowException |
| HashNotFound |
class HashNotFound : FlowException |
| InsufficientBalanceException |
class InsufficientBalanceException : FlowException |
| NotaryException |
class NotaryException : FlowException |
| StateReplacementException |
open class StateReplacementException : FlowException |
| TransactionResolutionException |
class TransactionResolutionException : FlowException |
| TransactionVerificationException |
sealed class TransactionVerificationException : FlowException |
| UnacceptablePriceException |
class UnacceptablePriceException : FlowException |


--- layout: default permalink: /work/ # SEO title: Home description: Home description image: /img/global/1200x1200.png author: Joshua McSorley categories: Home works: - image: https://via.placeholder.com/350x350 title: Beautiful Girl link_to: portfolio-item.html class: graphic-design desc: Design & Development - image: https://via.placeholder.com/350x350 title: Look at me link_to: portfolio-item.html class: web-design print desc: Design & Development - image: https://via.placeholder.com/350x350 title: Am I cute link_to: portfolio-item.html class: brand desc: Design & Development - image: https://via.placeholder.com/350x350 title: Umbrella link_to: portfolio-item.html class: development desc: Design & Development - image: https://via.placeholder.com/350x350 title: Canned Bros link_to: portfolio-item.html class: print brand desc: Design & Development - image: https://via.placeholder.com/350x350 title: Hale link_to: portfolio-item.html class: web-design desc: Design & Development - image: https://via.placeholder.com/350x350 title: A beautiful day link_to: portfolio-item.html class: web-design desc: Design & Development - image: https://via.placeholder.com/350x350 title: Flower Book link_to: portfolio-item.html class: graphic-design desc: Design & Development ---


Alert
No style alert
Success alert with icon and close button
Info alert with icon and close button
Warning alert with icon and close button
Danger alert with icon and close button
Information!
This alert has a header and some information.
Alerts with bigger font sizes:
Danger alert with icon and close button
Heading here
Success alert with icon and close button


Messenger:
The following Clans have applied for entry to the preliminary contest. This would be a good time to study their strategies.
=== Clans Registered for the Preliminary Contest ===
1. **unregistered** (Number of Participants : )
2. **unregistered** (Number of Participants : )
3. **unregistered** (Number of Participants : )
4. **unregistered** (Number of Participants : )
5. **unregistered** (Number of Participants : )


India celebrates 130th birthday of first PM Nehru
by Agency ReportIndia on Thursday celebrated the 130th birthday of its first Prime Minister Jawaharlal Nehru.
Born on November 14, 1889, Nehru remained as Indian prime minister for nearly 17 years from August 1947, until his death in May 1964.
His birthday is celebrated as Children’s Day every year, as he had a special bonding with the children.
Remembering Nehru on the occasion, current Indian Prime Minister Narendra Modi tweeted: “Tributes to our former Prime Minister Pandit Jawaharlal Nehru on his birth anniversary’’.
Nehru belonged to the INC, the longest-serving political party in India.
(Xinhua/NAN)


Benefits and Their Whys
These are the benefits I plan to offer, next time I’m someone’s employer:
| Benefit | Reasoning | Priority |
|---|---|---|
| Competitive Salary and Bonus Structure | Duh | Absolute necessity |
| Full healthcare benefits (covering 100% of physical health, vision, dental, and mental health) | The US sorely needs and can easily afford free, universal healthcare. | Absolute necessity |
| Unlimited PTO (paid time off) + mandatory minimum time taken off | Unlimited PTO is fairly common for tech startups these days, but because of our society’s workaholic mentality, people rarely take that time off. Encouraging a minimum amount taken off (ex: ~2 weeks a year) would be beneficial for everyone. | Absolute necessity |
| Family leave (and pet leave?) | According to Wikipedia, “The United States, Suriname, Papua New Guinea, and a few island countries in the Pacific Ocean are the only countries in the United Nations that do not require employers to provide paid time off for new parents.” Sigh (note: this should include parental, adoption, foster care, surrogacy, etc.) | Absolute necessity |
| 401(k) matching & retirement | Seems standard | Absolute necessity |
| Inclusivity for and prioritization of all genders, sexes, sexual orientations, races, ethnicities, social classes, abilities, castes, etc. Just treat all people well, please. | This shouldn’t even need explanation | Absolute necessity |
| 1 hour/week during the workweek for dedicated mental health time (encouraged for therapy) | Every single person on the planet would benefit from seeing a regular, competent, free therapist. If mental health is universally covered, we should be encouraging everyone to take advantage of it. | Absolute necessity |
| Public transportation covered | A lot more people than you’d expect don’t have access to cars | Necessity |
| Engaging and exciting work | This is great for people who find fulfillment out of their work, but not completely mandatory IMO, since there are a lot of people who see work as a means to an end for their lifestyles, and that’s a perfectly acceptable way of living. But giving people exciting work to do, if they want it, is a good thing. | Recommended |
| Location-flexible and remote-first | This should be fairly self-explanatory for people in a post-pandemic world, but now that we have the tools to sustain remote work, it’s something that everyone can and should be taking advantage of. | Recommended |
| Democratically elected leadership (or some type of enforced “downward accountability”) | Currently, CEOs and the people in control of companies have almost unchallenged power. While unions help to organize labor into receiving fair working conditions, treating companies like we do other leadership systems and giving everyone a voice would drastically improve inequality. | Recommended |
Note: this list is ongoing, so it may see updates as you continually check on it


|
Hi [HOSTCOMPANY.PRI_CPY_NAME],
Great news! [INTERN.PRI_FIRSTNAME] [INTERN.PRI_LASTNAME] has applied for your [INTERNSHIP.PRI_NAME] Internship with [HOSTCOMPANY.PRI_CPY_NAME].
Click on the link below to review [INTERN.PRI_FIRSTNAME]'s application.
Should you wish to consider [INTERN.PRI_FIRSTNAME] [INTERN.PRI_LASTNAME] for the internship, you are welcome to call to chat about the internship opportunity and/or arrange an interview.
Kind Regards
InternMatch
|
|
|


Performance Tips for Frontend Authors¶
Abstract¶
The intended audience of this document is developers of language frontends targeting LLVM IR. This document is home to a collection of tips on how to generate IR that optimizes well.
IR Best Practices¶
As with any optimizer, LLVM has its strengths and weaknesses. In some cases, surprisingly small changes in the source IR can have a large effect on the generated code.
Beyond the specific items on the list below, it’s worth noting that the most mature frontend for LLVM is Clang. As a result, the further your IR gets from what Clang might emit, the less likely it is to be effectively optimized. It can often be useful to write a quick C program with the semantics you’re trying to model and see what decisions Clang’s IRGen makes about what IR to emit. Studying Clang’s CodeGen directory can also be a good source of ideas. Note that Clang and LLVM are explicitly version locked so you’ll need to make sure you’re using a Clang built from the same svn revision or release as the LLVM library you’re using. As always, it’s strongly recommended that you track tip of tree development, particularly during bring up of a new project.
The Basics¶
- Make sure that your Modules contain both a data layout specification and target triple. Without these pieces, non of the target specific optimization will be enabled. This can have a major effect on the generated code quality.
- For each function or global emitted, use the most private linkage type possible (private, internal or linkonce_odr preferably). Doing so will make LLVM’s inter-procedural optimizations much more effective.
- Avoid high in-degree basic blocks (e.g. basic blocks with dozens or hundreds of predecessors). Among other issues, the register allocator is known to perform badly with confronted with such structures. The only exception to this guidance is that a unified return block with high in-degree is fine.
Use of allocas¶
An alloca instruction can be used to represent a function scoped stack slot, but can also represent dynamic frame expansion. When representing function scoped variables or locations, placing alloca instructions at the beginning of the entry block should be preferred. In particular, place them before any call instructions. Call instructions might get inlined and replaced with multiple basic blocks. The end result is that a following alloca instruction would no longer be in the entry basic block afterward.
The SROA (Scalar Replacement Of Aggregates) and Mem2Reg passes only attempt to eliminate alloca instructions that are in the entry basic block. Given SSA is the canonical form expected by much of the optimizer; if allocas can not be eliminated by Mem2Reg or SROA, the optimizer is likely to be less effective than it could be.
Avoid loads and stores of large aggregate type¶
LLVM currently does not optimize well loads and stores of large aggregate types (i.e. structs and arrays). As an alternative, consider loading individual fields from memory.
Aggregates that are smaller than the largest (performant) load or store instruction supported by the targeted hardware are well supported. These can be an effective way to represent collections of small packed fields.
Prefer zext over sext when legal¶
On some architectures (X86_64 is one), sign extension can involve an extra instruction whereas zero extension can be folded into a load. LLVM will try to replace a sext with a zext when it can be proven safe, but if you have information in your source language about the range of a integer value, it can be profitable to use a zext rather than a sext.
Alternatively, you can specify the range of the value using metadata and LLVM can do the sext to zext conversion for you.
Zext GEP indices to machine register width¶
Internally, LLVM often promotes the width of GEP indices to machine register width. When it does so, it will default to using sign extension (sext) operations for safety. If your source language provides information about the range of the index, you may wish to manually extend indices to machine register width using a zext instruction.
When to specify alignment¶
LLVM will always generate correct code if you don’t specify alignment, but may generate inefficient code. For example, if you are targeting MIPS (or older ARM ISAs) then the hardware does not handle unaligned loads and stores, and so you will enter a trap-and-emulate path if you do a load or store with lower-than-natural alignment. To avoid this, LLVM will emit a slower sequence of loads, shifts and masks (or load-right + load-left on MIPS) for all cases where the load / store does not have a sufficiently high alignment in the IR.
The alignment is used to guarantee the alignment on allocas and globals, though in most cases this is unnecessary (most targets have a sufficiently high default alignment that they’ll be fine). It is also used to provide a contract to the back end saying ‘either this load/store has this alignment, or it is undefined behavior’. This means that the back end is free to emit instructions that rely on that alignment (and mid-level optimizers are free to perform transforms that require that alignment). For x86, it doesn’t make much difference, as almost all instructions are alignment-independent. For MIPS, it can make a big difference.
Note that if your loads and stores are atomic, the backend will be unable to lower an under aligned access into a sequence of natively aligned accesses. As a result, alignment is mandatory for atomic loads and stores.
Other Things to Consider¶
- Use ptrtoint/inttoptr sparingly (they interfere with pointer aliasing analysis), prefer GEPs
- Prefer globals over inttoptr of a constant address - this gives you dereferencability information. In MCJIT, use getSymbolAddress to provide actual address.
- Be wary of ordered and atomic memory operations. They are hard to optimize and may not be well optimized by the current optimizer. Depending on your source language, you may consider using fences instead.
- If calling a function which is known to throw an exception (unwind), use an invoke with a normal destination which contains an unreachable instruction. This form conveys to the optimizer that the call returns abnormally. For an invoke which neither returns normally or requires unwind code in the current function, you can use a noreturn call instruction if desired. This is generally not required because the optimizer will convert an invoke with an unreachable unwind destination to a call instruction.
- Use profile metadata to indicate statically known cold paths, even if dynamic profiling information is not available. This can make a large difference in code placement and thus the performance of tight loops.
- When generating code for loops, try to avoid terminating the header block of the loop earlier than necessary. If the terminator of the loop header block is a loop exiting conditional branch, the effectiveness of LICM will be limited for loads not in the header. (This is due to the fact that LLVM may not know such a load is safe to speculatively execute and thus can’t lift an otherwise loop invariant load unless it can prove the exiting condition is not taken.) It can be profitable, in some cases, to emit such instructions into the header even if they are not used along a rarely executed path that exits the loop. This guidance specifically does not apply if the condition which terminates the loop header is itself invariant, or can be easily discharged by inspecting the loop index variables.
- In hot loops, consider duplicating instructions from small basic blocks which end in highly predictable terminators into their successor blocks. If a hot successor block contains instructions which can be vectorized with the duplicated ones, this can provide a noticeable throughput improvement. Note that this is not always profitable and does involve a potentially large increase in code size.
- When checking a value against a constant, emit the check using a consistent comparison type. The GVN pass will optimize redundant equalities even if the type of comparison is inverted, but GVN only runs late in the pipeline. As a result, you may miss the opportunity to run other important optimizations. Improvements to EarlyCSE to remove this issue are tracked in Bug 23333.
- Avoid using arithmetic intrinsics unless you are required by your source language specification to emit a particular code sequence. The optimizer is quite good at reasoning about general control flow and arithmetic, it is not anywhere near as strong at reasoning about the various intrinsics. If profitable for code generation purposes, the optimizer will likely form the intrinsics itself late in the optimization pipeline. It is very rarely profitable to emit these directly in the language frontend. This item explicitly includes the use of the overflow intrinsics.
- Avoid using the assume intrinsic until you’ve established that a) there’s no other way to express the given fact and b) that fact is critical for optimization purposes. Assumes are a great prototyping mechanism, but they can have negative effects on both compile time and optimization effectiveness. The former is fixable with enough effort, but the later is fairly fundamental to their designed purpose.
Describing Language Specific Properties¶
When translating a source language to LLVM, finding ways to express concepts and guarantees available in your source language which are not natively provided by LLVM IR will greatly improve LLVM’s ability to optimize your code. As an example, C/C++’s ability to mark every add as “no signed wrap (nsw)” goes a long way to assisting the optimizer in reasoning about loop induction variables and thus generating more optimal code for loops.
The LLVM LangRef includes a number of mechanisms for annotating the IR with additional semantic information. It is strongly recommended that you become highly familiar with this document. The list below is intended to highlight a couple of items of particular interest, but is by no means exhaustive.
Restricted Operation Semantics¶
- Add nsw/nuw flags as appropriate. Reasoning about overflow is generally hard for an optimizer so providing these facts from the frontend can be very impactful.
- Use fast-math flags on floating point operations if legal. If you don’t need strict IEEE floating point semantics, there are a number of additional optimizations that can be performed. This can be highly impactful for floating point intensive computations.
Describing Aliasing Properties¶
- Add noalias/align/dereferenceable/nonnull to function arguments and return values as appropriate
- Use pointer aliasing metadata, especially tbaa metadata, to communicate otherwise-non-deducible pointer aliasing facts
- Use inbounds on geps. This can help to disambiguate some aliasing queries.
Modeling Memory Effects¶
- Mark functions as readnone/readonly/argmemonly or noreturn/nounwind when known. The optimizer will try to infer these flags, but may not always be able to. Manual annotations are particularly important for external functions that the optimizer can not analyze.
- Use the lifetime.start/lifetime.end and invariant.start/invariant.end intrinsics where possible. Common profitable uses are for stack like data structures (thus allowing dead store elimination) and for describing life times of allocas (thus allowing smaller stack sizes).
- Mark invariant locations using !invariant.load and TBAA’s constant flags
Pass Ordering¶
One of the most common mistakes made by new language frontend projects is to use the existing -O2 or -O3 pass pipelines as is. These pass pipelines make a good starting point for an optimizing compiler for any language, but they have been carefully tuned for C and C++, not your target language. You will almost certainly need to use a custom pass order to achieve optimal performance. A couple specific suggestions:
- For languages with numerous rarely executed guard conditions (e.g. null checks, type checks, range checks) consider adding an extra execution or two of LoopUnswith and LICM to your pass order. The standard pass order, which is tuned for C and C++ applications, may not be sufficient to remove all dischargeable checks from loops.
- If you language uses range checks, consider using the IRCE pass. It is not currently part of the standard pass order.
- A useful sanity check to run is to run your optimized IR back through the -O2 pipeline again. If you see noticeable improvement in the resulting IR, you likely need to adjust your pass order.
I Still Can’t Find What I’m Looking For¶
If you didn’t find what you were looking for above, consider proposing an piece of metadata which provides the optimization hint you need. Such extensions are relatively common and are generally well received by the community. You will need to ensure that your proposal is sufficiently general so that it benefits others if you wish to contribute it upstream.
You should also consider describing the problem you’re facing on llvm-dev and asking for advice. It’s entirely possible someone has encountered your problem before and can give good advice. If there are multiple interested parties, that also increases the chances that a metadata extension would be well received by the community as a whole.
Adding to this document¶
If you run across a case that you feel deserves to be covered here, please send a patch to llvm-commits for review.
If you have questions on these items, please direct them to llvm-dev. The more relevant context you are able to give to your question, the more likely it is to be answered.


"ZAREPHATH "smelting-shop, “a workshop for the refining and smelting of metals”, a small Phoenician town, now Surafend, about a mile from the coast, almost midway on the road between Tyre and Sidon. Here Elijah sojourned with a poor widow during the “great famine,” when the “heaven was shut up three years and six months” (Luke 4:26; 1 Kings 17:10). It is called Sarepta in the New Testament (Luke 4:26).
"ZAREPHATH "smelting-shop, “a workshop for the refining and smelting of metals”, a small Phoenician town, now Surafend, about a mile from the coast, almost midway on the road between Tyre and Sidon. Here Elijah sojourned with a poor widow during the “great famine,” when the “heaven was shut up three years and six months” (Luke 4:26; 1 Kings 17:10). It is called Sarepta in the New Testament (Luke 4:26).


{% extends "_post.html" %}
{% hyde
title: "What I Hate About Mercurial"
snip: "Hg, I love you, but sometimes you bring me down."
created: 2009-05-29 19:51:05
flattr: true
%}
{% block article %}
This entry was inspired by [Jacob Kaplan-Moss][JKM], who was inspired by
[Titus][], who was inspired by [brian d foy][BDF]. The premise is that you
can't really claim to know much about a piece of software until you can name a
few things you hate about it.
[JKM]: http://jacobian.org/writing/hate-python/
[Titus]: http://ivory.idyll.org/blog/mar-07/five-things-I-hate-about-python
[BDF]: http://use.perl.org/~brian_d_foy/journal/32556?from=rss
Jacob and Titus talked about Python, and so have a bunch of other people, so I
figured I'd write about something a bit different:
[Mercurial](http://selenic.com/mercurial).
I love Mercurial to death, but there *are* a few things about it that annoy
me. Here they are, in no particular order.
[TOC]
Configuration Through a Textfile
--------------------------------
This is one of the things that [git](http://git-scm.com/) people seem to like
to [bring up](http://jointheconversation.org/2008/11/24/on-mercurial.html):
"It doesn't have a command to set your username and email and such? Lame."
I personally don't mind editing a text file -- `vim ~/.hgrc` really isn't that
hard to type and the format is simple enough that you get the hang of it in
about ten seconds. It forces you to know *where* the config file is, which is
nice when the magic "Oh man, I could put my config files under *version
control*!" moment strikes.
That said, this is on the list because I'd like to see a command to edit some
of the common options just so people will *stop complaining* about something
so trivial.
"hg rm" is a Confusing Mess
---------------------------
Here's part of the help for the `hg rm` command:
> This only removes files from the current branch, not from the entire
> project history. -A can be used to remove only files that have already
> been deleted, -f can be used to force deletion, and -Af can be used
> to remove files from the next revision without deleting them.

I had to look up the syntax every single time I wanted to use this command,
until I added this alias to my `~/.hgrc`:
:::ini
[alias]
untrack = rm -Af
Now I can use `hg untrack whatever.py` to stop tracking a file.
Addremove Can Track Renames But Won't Unless You Ask It Really Nicely
---------------------------------------------------------------------
It took me a while to realize this, but Mercurial can actually record file
renames -- not just separate adds and removes -- when using `hg addremove`.
Here's what happens when you move a file and then use `hg addremove` normally
to have Mercurial track the changes.
:::console
sjl at ecgtheow in ~/Desktop/test on default
$ ls
total 16
-rw-r--r-- 1 sjl 14B May 29 20:12 a
-rw-r--r-- 1 sjl 12B May 29 20:12 b
sjl at ecgtheow in ~/Desktop/test on default
$ mv b c
sjl at ecgtheow in ~/Desktop/test on default!
$ hg addremove
removing b
adding c
sjl at ecgtheow in ~/Desktop/test on default!
$ hg diff
diff --git a/b b/b
deleted file mode 100644
--- a/b
+++ /dev/null
@@ -1,1 +0,0 @@
-To you too!
diff --git a/c b/c
new file mode 100644
--- /dev/null
+++ b/c
@@ -0,0 +1,1 @@
+To you too!
sjl at ecgtheow in ~/Desktop/test on default!
$ hg commit -m 'Normal addremove.'
sjl at ecgtheow in ~/Desktop/test on default
$
Now watch what happens when we tell Mercurial to detect renames when using `hg
addremove`:
:::console
sjl at ecgtheow in ~/Desktop/test on default
$ ls
total 16
-rw-r--r-- 1 sjl 14B May 29 20:12 a
-rw-r--r-- 1 sjl 12B May 29 20:12 c
sjl at ecgtheow in ~/Desktop/test on default
$ mv c b
sjl at ecgtheow in ~/Desktop/test on default!
$ hg addremove --similarity 100
adding b
removing c
recording removal of c as rename to b (100% similar)
sjl at ecgtheow in ~/Desktop/test on default!
$ hg diff
diff --git a/c b/b
rename from c
rename to b
sjl at ecgtheow in ~/Desktop/test on default!
$ hg commit -m 'This time with rename detection.'
sjl at ecgtheow in ~/Desktop/test on default
$
This time it notices the rename, and records it. The diff is far, far easier
to read, and if a branch is merged in where someone else changed that file,
the changes will follow it over.
The `--similarity` option is a percentage. I have an entry in my `~/.hgrc`
file to default that to 100, which means that renames will only be
automatically detected if the files are *identical*. It's safer, but might not
always catch everything.
I wish I had known this earlier or that Mercurial defaulted to 100% to catch
the obvious renames.
And yes, I realize I could use `hg rename` to rename it and it *would* get
recorded, but usually I'm moving files by some other method and using `hg
addremove` to clean up later.
Now, while we're on the topic...
Why the Hell Does Status Not Show Renames?
------------------------------------------
Assuming they're recorded, I wish `hg status` would show that a file has been
renamed. Here's what we get instead:
:::console
sjl at ecgtheow in ~/Desktop/test on default
$ hg rename b c
sjl at ecgtheow in ~/Desktop/test on default!
$ hg stat
A c
R b
sjl at ecgtheow in ~/Desktop/test on default!
$ hg diff
diff --git a/b b/c
rename from b
rename to c
No, `hg status`, it clearly *wasn't* an add and a remove, according to `hg
diff`. Why doesn't `hg status` have a separate character for "renamed" files
so we can tell them apart?
Get Git Out of My Mercurial
---------------------------
I *hate* that half of Mercurial's commands need a `--git` option to be really
useful. Is there any reason not to make this the default format and have a
`--useless` option for backwards compatibility?
I always add it to the defaults in my `~/.hgrc` but it makes me feel kind of
dirty when I do. It adds a bunch of unnecessary lines to the config file and
confuses new people.
BitBucket Could Be Prettier
---------------------------
Don't get me wrong, [BitBucket](http://bitbucket.org/) is an awesome site, but
compared to [GitHub](http://github.com/) it looks a bit dull and unappealing.
It's definitely more usable (how the hell do I view a graph of all
branches/merges of a given repository on GitHub?) but there's something about
GitHub's design that just makes it pop.
Mercurial's Site Could Be *Much* Prettier
-----------------------------------------
Mercurial's site is ugly. Very ugly. It seems strange to me that the ugly
version control system (git) has a fairly good-looking site while the much
more elegant Mercurial has something that looks so boring and dated.
I know, [mercurial-scm.org](http://mercurial-scm.org/) aims to fix this. Thank
you from the bottom of my heart but please, hurry. The wiki is hurting my
eyes.
But Hey, at Least It's Not Git!
--------------------------------
All of those things annoy me, but they're small problems compared to the
revulsion I get when I try to use git every so often.
Maybe that would be a good topic for another entry. At the very least it'll
probably get me a ton of pageviews and comments saying: "Git's changed, man!
It's not like it used to be, it's totally intuitive now! You just gotta learn
how it stores the data!"
I learned, and I'll still take Mercurial despite the small annoyances.
{% endblock %}


GODZILLA A film review by David N. Butterworth Copyright 1998 David N. Butterworth
**1/2 (out of ****)
When you find yourself with a monster hit on your hands, as did the producer/director team of Dean Devlin and Roland Emmerich a couple of years back with their summer smash "Independence Day," the biggest problem you have to face is what to do for an encore.
How do you top something as huge as "ID4"? Do you call Will Smith back for a sequel? (Last summer the Fresh Prince was riding another mid-year high with "Men in Black," so *someone* had the right idea.) Or do you shift gears completely, going for something smaller, more intimate perhaps, a character study with the emphasis on acting, rather than on action?
Or do you do what this dynamic duo did: take a legendary screen monster, tart him up for the nineties, and let him take a sizable bite out of the Big Apple?
"Godzilla" is the latest product of Devlin and Emmerich's blockbuster machine. Not the most inspirational of ideas one might say (the gigantic, fire-breathing lizard from the fifties has already been the subject of countless sequels in its homeland Japan). But, at twenty stories high, this "Godzilla" was big enough a concept to secure a mega-million dollar budget and the go-ahead from TriStar Pictures.
Borrowing conveniently, if not necessarily intelligently, from "Jurassic Park" and countless other creature features--"Alien," "Jaws," "King Kong," etc.--"Godzilla" is like Steven Spielberg's movie in a number of ways. First and foremost, "Jurassic Park"'s dinosaurs outclassed the human elements in terms of acting ability, and that's pretty much the case with "Godzilla." Nothing much has been learned or even attempted in terms of making the pint-size humans running around underfoot the remotest bit interesting.
But c'mon. Nobody goes to see "Godzilla" for the performances. This is "Raging Lizard," not "Raging Bull."
"Godzilla"'s unambitious writing is assisted by the budget-conscious casting of Matthew Broderick (who plays a "worm guy" from the Nuclear Regulatory Commission) and bit-player Maria Pitillo--who's terrible--in the leads, with Jean Reno ("The Professional") and Hank Azaria (Nat the dog-walker on TV's "Mad About You") along for the ride.
All four are upstaged, perhaps deliberately so, by the rampaging reptile.
Like "Jurassic Park," "Godzilla" is bone-crushingly loud, destructive, and headache inducing. It's also dumb as nails; no surprises where the money got spent. Spielberg's 1993 film set a new standard in computer-generated animation and creature effects, and "Godzilla" has surely taken advantage of some of those advances. However, what's disappointing about the film is that most of the mayhem takes place under cover of darkness, and in a torrential rain storm, which feels like, well, a cheap shot. New York still gets trashed--the radioactively-mutated, French Polynesian lizard finds Manhattan a good place to build a nest--but it would have been nice to have seen a little more of it.
Early criticisms of the film have pointed out the mindnumbing aberrations of logic in the film's central plotting. This is true enough but no matter how brainless, "Godzilla" is still an enjoyable Crunch 'n' Munch spectacular. It does remain prudent to point out to Mr. Devlin and Mr. Emmerich, however, that as far as box office word of mouth is concerned, sighs *do* matter.
-- David N. Butterworth<EMAIL_ADDRESS>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


Another win for SA's Binder as he claims Moto2 victory in Valencia
Cape Town - South Africa's Brad Binder has won the Moto2 race in Valencia and with that victory takes the runner-up spot in the championship, just three points behind Alex Marquez.
Binder, who spent much of the race in second place, made his move on the last lap, getting past Tom Luthi and winning by the narrowest of margins.
Series champion Marquez crashed out of the race while in 5th position.
Binder will now make the move to MotoGP with KTM after completing his fifth victory of the year.


We specialize in wholesale of ornaments and accessories of all varieties. Grass, plastics, metal alloy, and acrylics. Large varieties and colors.
We will provide all documentation for exporting to all around the world.
We are the one stop shop for starting your ornament and DIY business


--- imgsrc: "Will_Deutsch_Jewish_Art_Wedding_Judaism_Jews.jpg" buylink: "http://store.notesfromthetribe.com/product/jewish-art-8-5-x11-napkin-dance-print" postDate: "04.04.13" layout: post ---
After years of watching, leading and participating in horahs I have come up with the following formula to calculate the potential risks of such an endeavor:
(Flailing Of Person On Chair Due To Nervousness+Chiropractic Issues of People Holding The Chair+Inebriation Of Guests)÷(Height Of Ceiling+Structural Integrity of Chair+Upper Body Strength And Endurance)=Probability of Injury due to falling off chair and/or hitting ones head.
All things considered, its amazing that most simchas don’t end with a trip to the E.R.


cURL command goes on the left and a JSON HAR Object comes out on the right.
Almost the whole frontend code comes from har-to-curl.js by @mcaruanagalizia. The backend uses the nice curl-to-harl.js library by @yosriady I mostly glued things together. And by I, I mean @Jackymancs4.
Everything here is released under the MIT License.


Please read the summary post (above) before reading this one.
Summary: Last week, Seedsummit released a Term Sheet intended to be (or become) standard across Europe for early stage investment. To achieve this, 21 European VC firms convened and agreed on a ‘standard’ set of terms. The aim of producing this document is to make “… seed funding easier to access, better to understand, and fair for all parties”. If you want to, you can download the general term sheet for yourself. I’ll go through this document below.
Before I get into the document itself, there are a few things I should point out:
I realised I know very little about Seedsummit itself so I looked around their website and also for other links via Google.
In a few words, SeedSummit is Europe’s answer to AngelList. More specifically, it’s SeedCamp’s answer to AngelList (it’s run by the same people rather than independently). It seems there are about 120-ish investors (assuming all profiles are visible) and the investment range is from 10k to 500k EUR (which is the kind of range I consider to be ‘seed’). Randomly clicking through the profiles, I see that the majority of them say “I am investing: My own money”. At first, I took that to mean there were more Angels on the platform but looking closer I noticed that some of those profiles are of Partners in VC funds. Although these folks have ‘skin in the game’ I expect they only invest via their funds so it would have been more appropriate to say “Money from a fund”. In any case, this made it more tricky to guess at the ratio between Angels and VCs on Seedsummit, so I gave up trying. If anyone else knows the answer, please let me know.
I’ll go through this term by term and note my comments so you can follow along with the document. I’ll skip the stuff that doesn’t warrant much discussion (e.g Company, Founders, etc). Since this document was based on the Series Seed documents from the US, I’ll also make a quick comparison between them.
The pre-money valuation includes the employee share option pool, which effectively dilutes the founders a little more than they would otherwise have expected. There’s a pretty good post by Fred Wilson on valuations and option pools and I’d recommend people read that for more information.
This basically says that the new shares have preferential rights (i.e they are not common stock).
There are two options here and both state “… one times the original purchase price …”, in other words it’s the same amount of money the investor put in. Had this been anything other than ‘one’ it would be cause for concern. The main difference between the two options is whether the investor is non-participating or fully-participating which are quite different.
Non-participating means that the investor can do one of two things when there’s a ‘liquidity event’ (e.g acquisition). They can either make sure they get their money back (i.e one times the purchase price), with any left over being divided amongst the other shareholders. Or they can choose to get an amount in proportion to the shares they hold. They will take whichever returns the most money. Obviously, both the founder and investor want the sale to be as large as possible so both will be aiming for the latter case. In the case where the exit isn’t quite what the investor imagined, then they’ll try and get their money back. It seems there is an example of this in practice when Fred wrote about Slide.
Fully-participating means the investor gets to do both of the above. They will get their money out first and then will also take a share of any left over money (sometimes referred to as ‘double-dipping’). This is definitely the less founder-friendly option and I expect founders would not accept it (assuming they have enough bargaining power to push back). It does seem a little odd to me that this is listed as an option in an early stage term sheet, especially since terms usually get carried forward into subsequent funding rounds. For an example of how liquidation preferences can affect the way money gets distributed, you can read VentureBeat on liquidation preferences (scroll down to the example).
This term, which is indicated as optional, dictates what happens if a subsequent round of funding occurs at a lower valuation than the current one. Except it doesn’t. Those deceptive square brackets could hold a range of scary sounding words and in some cases you might even find equations in there. Since there’s no suggested text here, I don’t have much to say. Feel free to google and you’ll find some variations on what could end up in here.
A list of things you can’t do without the investor’s consent. The options here basically whether the list is written in the terms or referred to in an appendix. From the suggested list, there isn’t anything I haven’t seen before.
One thing that might be missing is the proportion of shares that must be maintained by these investors to maintain this right. As it stands, the investor could hold any amount of shares and still maintain the right (e.g they could hold less than 5% and still block a sale of the company even if the other 95+% agreed to it).
I’ve seen most of this before but there are a couple of things I don’t understand. Firstly, for pre-emption, “The Investors my assign this right to another member of their fund group”. I have no idea what this means since I can’t figure what ‘fund group’ is being referred to. Secondly, for the Right of first-refusal, I’m not sure what “…transfers by Investors to affiliated funds” means either.
The important point here is that both a majority of the Preference shares and of the Ordinary shares is required to enact it. Had it only been a majority of Preference shares then it would be drastically one-sided.
Other documents come into play here, for example the employment contracts. An interesting point is that the founders shouldn’t work on anything else during their ‘business time’, which mean any side projects might need permission from the investors. It’s reasonable to expect founders to commit themselves to the business but they would need to check the employment contract to make sure there isn’t anything untoward. The last sentence referring to immediate dismissal for cause seems a little harsh.
Apparently the shares held by founders would be subject to reverse vesting.  Reverse vesting means that although you have your shares the company will repurchase them from you (at practically no cost) if you leave or are fired. That ‘right-to-repurchase’ diminishes over time. This doesn’t sound like a good deal for the founders but it’s understandable that the investor wants to keep the founders committed to the company.
The interesting part are the suggested figures. 25% of the founder shares vest after a year and the rest on a monthly basis over another two years. This seems a bit excessive to me. Firstly, I don’t see any reason why more of the shares can’t vest immediately and the rest on a monthly basis thereafter. Secondly, I think a three year time frame is quite long and although I’ve seen it for employee options it doesn’t seem appropriate for founders at an early stage. (edit to add: I’ve heard from friends in San Francisco that four year vesting with a one year cliff is pretty standard out there)
For the kinds of startups I’ve dealt with, I’m generally of the opinion that if a founder leaves, then the company is effectively over. Provisions for clawing back shares, like the one one here, seem largely pointless to me. In any case, I think founders will have to look carefully at what the vesting looks like and see if it works for them
Option 1 just plain sucks. I find it slightly ridiculous that the investor expects the company to pay for their legal fees and the amount isn’t even capped. Option 2 is slightly better in that everyone pays their own fees but it also includes a caveat that if the founders decide to withdraw, then they’ll have to pay the investor’s legal fees to date. That would seem fair enough but notice there’s no caveat for the case where the investor decides to change their mind. I’d certainly push for that to be added too.
The Seedsummit term sheet is itself based on the Series Seed documents so I thought it would make sense to do a quick comparison between them.
There are a handful of things I noticed which were:
If you got this far then congratulations on your patience!
You can either go back to the summary post or upvote and comment on HN


This is not a report of one experience but of how I got HPPD, and what has occured with regard to substance use since I got it.
I have smoked dope for a number of years now, and although it often made me paranoid I suffered no serious adverse affects. Being curious about alterating my conciousness, about a year ago I dropped 3/4 of a tab of quality acid. I was in an intimate, relaxed setting with friends and good music, but even so I felt a little apprhensive. However, I smoked a couple of joints, mellowed out and ate the tab. The trip was fantastic- I saw some amazing fractals and had a fanatasic trip, although it was not particularly intense.
I had no adverse effects the next day apart from a comedown, and decided that acid was something i'd like to do regularily. Immediately after dropping the tab (the next few weeks) i smoked dope heavily, and about a month post-trip I started to notice fractals whenever I got stoned. I dismissed this at first, but as I continued to smoke the symptoms worsened (but perhaps they would have naturally anyway). Today, the symptoms are as bad as they have ever been, but since they started so mildly I can still lead a normal life, though they sure get me down sometimes.
The interesting thing is that although most HPPDers say that even smelling pot smoke can make their symptoms permanently worse, I have smoked (and continue to smoke) shitloads of pot since getting HPPD. In addition, I dropped small doses of acid twice after getting this syndrome, and have also done e, slavia, nitrous, heaps of alochol and I currently do speed fairly regularly (it's about the only chemical that doesn't make symptoms worse).

Anyway, i'm gonna go and smoke a couple of cones tonight- if I try and forget HPPD, it can sometimes forget me!
-------------------------
2004 Follow-up Report
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Racial Justice
Criminal Justice Reform
LGBTQ
Reproductive Rights
Healthcare
Education
Worker's Rights/Equal Pay
Immigration Rights
Climate Change and Environment
{{ac.educationContent.summary}}
{{rep.name}}
{{rep.phones[0]}}
{{rep.emails[0] || rep.urls[0] }}


Download image
Download svg
Reset zoom
Legend:
Endpoint
Standard relation
Special relation (parameters required)


{{title}}
Are you sure you no longer want Automated Stub Agent 1 to act on behalf of this property?
Remove agent {% include "includes/get_help.html" %}Are you sure you no longer want Automated Stub Agent 1 to act on behalf of this property?
Remove agent {% include "includes/get_help.html" %}


Try to wire four NOT gates to achieve the maximum circuit score (score of final gate). The prior gate's output becomes the next gate's input.


Acknowledgments
The experience of writing a book is not
without its ups and downs. On the one hand, there is
excitement, but there is also exhaustion. It is only with the
support of others that one can truly delight in its pleasures
and overcome its perils. There are many people I would like to
thank.
First, I thank Andy Oram, my editor at
O'Reilly & Associates, whose assistance has been
exceptional in every way. I thank Andy especially for his
continual patience and support. In addition, I would like to
thank Tim O'Reilly and Andy together for their interest in
this project when it first began. Other individuals I
gratefully acknowledge at O'Reilly & Associates are Rob
Romano for drafting the technical illustrations, and Lenny
Muellner and Mike Sierra, members of the tools group, who were
always quick to reply to my questions. I thank Jeffrey Liggett
for his swift and detailed work during the production process.
In addition, I would like to thank the many others I did not
correspond with directly at O'Reilly & Associates but who
played no less a part in the production of this book. Thank
you, everyone.
Several individuals gave me a great deal of
feedback in the form of reviews. I owe a special debt of
gratitude to Bill Greene of Intel Corporation for his
enthusiasm and voluntary support in reviewing numerous
chapters throughout the writing process. I also would like to
thank Alan Solis of Com21 for reviewing several chapters. I
thank Alan, in addition, for the considerable knowledge he has
imparted to me over the years at our weekly lunches. I thank
Stephen Friedl for his meticulous review of the completed
manuscript. I thank Shaun Flisakowski for the review she
provided at the manuscript's completion as well. In addition,
I gratefully acknowledge those who looked over chapters with
me from time to time and with whom I discussed material for
the book on an ongoing basis.
Many individuals gave me support in countless
other ways. First, I would like to thank Jeff Moore, my
colleague and friend at Jeppesen, whose integrity and pursuit
of knowledge constantly inspire me. During our frequent
conversations, Jeff was kind enough to indulge me often by
discussing topics in the book. Thank you, Jeff. I would also
like to thank Ken Sunseri, my manager at Jeppesen, for
creating an environment at work in which a project like this
was possible. Furthermore, I warmly thank all of my friends
and family for their love and support throughout my writing.
In particular, I thank Marc Loudon for answering so many of my
questions. I thank Marc and Judy Loudon together for their
constant encouragement. I thank Shala Hruska for her patience,
understanding, and support at the project's end, which seemed
to last so long.
Finally, I would like to thank Robert
Foerster, my teacher, for the experiences we shared on a 16K
TRS-80 in 1981. I still recall those times fondly. They made a
wonderful difference in my life. For giving me my start with
computers, I dedicate this book to you with affection.
|


License for the source-code found in the articles of this blog
The source-code snippets in addition to their respective complete versions publicly available on my github may be used freely by anyone, free of charge. They are generally provided under the Apache-2.0 license, however, you should check my respective github repository for more information.License for the articles in this blog
The articles in this blog were written by Guilherme Oliveira and they are intended to help the worldwide community eager for knowledge, in addition to promoting my work and skills as a computer scientist. Therefore, the articles in this blog may be used by anyone, free of charge, under the terms of the Apache-2.0 license.License for the blog's source-code
This topic refers to the source-code which builds this set of webpages composing my blog. This blog may be used by anyone, free of charge, under the terms of the Apache-2.0 license. The source-code is on my github repository.If you used my work
I only ask for the awarding of the credits for my work, as seen on the permissive licenses associated with my blog, accordingly, it would be nice if you would link my blog's homepage to the source of your derivative work (such as your own webpage). This helps spreading knowledge and promoting my work. Thank you!Acknowledgements
This blog includes a NOTICE.txt file acknowledging the resources I have used from third parties. I profoundly appreciate their contribution, thank you! Further, this work is not endorsed by any project(s), institution(s), group(s), person, people or entity(es), unless otherwise clearly specified.Cheers!
gmmoliveira1@gmail.com


I recently took a little bit of chloroform from the lab where I work to try it out. At night, I put a few milliliters on a tissue and put the tissue into a plastic bag, which I then breathed out of (I didn't want to put the chloroform soaked tissue directly against my skin in case I had an allergic reaction to it).
I used it when I was lying in bed, ready to sleep. The vapour smells very, very sweet. It's like sugar gas. If I get too much in a single breath, I tend to gag quite badly (my throat just won't let it down) but breathing in some air with it helps it. I took several breathes of it but didn't get much effect from it until I started actually holding the gas in my lungs for a while. I gradually became kind of relaxed and spaced out, and it was quite a nice feeling - I was quite happy with it in the way that I get happy with most depressants.
As I breathed more and more, I started to get a whining sound in my ears followed by a numbness in my hands and then other limbs. I could keep my eyes open if I put a bit of effort into it, but wanted to see where this would go, so kept breathing it. The last thing I can remember is sealing the plastic bag and putting it down beside the bed before I must've drifted off to sleep.
I woke quite easily the next morning feeling ok. The soporific effects of the chloroform had left me by this stage (it was probably 9 or 10 hours later) but I found I couldn't really be arsed to do anything. Eventually my bladder convinced me that it really did need emptying, so I went to the toilet and came back totally exhausted. Anything I did for the rest of the day left me totally run down and worn out like that, and it was *not* pleasent.
I spent most of the day in bed, feeling too knackered to get up (although mostly too awake to sleep)... It was such a depressing experience that I think the chloroform may have been directly effecting my mood by this stage. I was so miserable that, during the afternoon, I fell asleep again (and it was even sunny outside but I had my curtains closed and was still in my pajamas) and had a dream about how terrible my life was and in the dream I tried to drown myself with the help of a young child. No I've suffered from depression for quite some time, and am on Venlafaxine for it at the moment, but I have rarely been so miserable as I was that day... my heart really goes out to people with chronic fatigue syndrome, who have to put up with this all the time.
I've now tried chloroform three times in this way and can confirm that I definitely leaves me feeling totally exhausted and miserable the next day. The last time I did it was the day before yesterday, and I am grateful that I am that I'm not feeling like that now! The extent of the exhaustion seems to be related to how much chloroform I use, rather than how deep I go with it. I've also tried mixing codeine with it, but it's basically a waste of good codeine (which is essentially a very friendly, albeit addictive drug) - I can't really feel its warmth when I've used even just a little chloroform.
I'm certainly never going to do chloroform again. I've thrown out any supplies that I had left of it, and don't ever want to smell its sickly sweet intoxication again.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


A simple example of a lazy loading tree using ui-tree
v. 0.0.1
{{ company.company }}
{{ name.fullname }}
{{ email.email }}


MRSS (Maximum Resolved Shear Stress)
The direction on a fault plane (slickenside)
in which the maximum shear stress is reached. It is supposed that the striations on a slickenside
plane have the direction of the MRSS. The relation between the shape factor of the stress-ellipsoid and
orientation of the normal to the plane with respect to the principal
stress axes and the MRSS is described by the Bott
formula.


Home
About
Contacts
ALICE NJAU
Inspired to achieve.
About me.
Have a diploma in Aeronautical Engineering
I took the programming class because to improve my skills.
Hobbies/Interests/Skills.
Research
Nature walk


Y
Search radius
m
Type
D
Name
File
Verts
Texts
Text MB
Baked
Draws
k
No entities found
in view
within a
100
meter radius. Try moving to a different location and refreshing.


Kickstart is a boilerplate for small frontend projects.
Kickstart is an experiment in workflow automation. I put it together from scratch to understand Grunt better. I use it when I am working on small projects/prototypes. It comes with a simple but important build process offering file concatination, LESS compilation and compression, JS minification and a watch method with live reload.


| Apache Struts 2 Documentation > Home > Guides > Contributors Guide > Meeting Minutes > 06-15-2005 Documentation > 06-15-2005 TOC Homework |
Click here for the suggestions on documentation style.
One-paragraph description of what is WebWork. And then, an explanation of how the documentation is divided:
If you're new to WebWork, please read the Overview and proceed to the Tutorial to get started. Experienced users can refer to the Cookbook for advanced topics. Use the Reference on an as-needed basis for more specific details. For detailed information about WebWork project, read the section Project Information. Information about many projects related to WebWork can be found in Related Projects
If you have any questions, you can ask them at the user forum/mailing list. Please be sure to read the FAQ before asking any questions.
(details on each of the above follows)
The questions included in the FAQ should be extracted from the User Forum/Mailing List. Someone could review recent messages and find out which questions are asked the most. After that, separate the questions into categories to form the subsections.
This should be in conformance to Patrick's example app. Vitor will talk to Patrick to get his opinions on the sequence of lessons suggested above and how to make the tutorial conformant to the example app.
All the tips in the Cookbook should be revised. Some of them could belong to the tutorial instead (basic stuff). 3rd party integration tips could be separated from the rest. Also, it would be good if all of them also followed the same structure, kind of like a tutorial lesson, but on advanced topics. The differences between the Tutorial and the Cookbook would be:
| Tutorial | Cookbook | |
|---|---|---|
| User level required: | Begginner | Intermediate |
| Availability of Source code: | In the documentation and in the src folder of the distribution (ready for deploy and test). | Only in the documentation, and may not be complete. |
| Should be read in sequence? | Yes. | No. |
A question that arised in the TOC discussion was: what's the difference between the Cookbook and the FAQ? Well, some of the items in the Cookbook are also FAQs (people ask about them a lot), so they would also be included in the FAQ, with links to the Cookbook. The FAQ should have quick answers or link to longer answers, such as the Cookbook. The Cookbook is tutorial-style, a collection of mini HOW-TOs.
An important thing about the reference is that it should be written in book-style (or hibernate-reference-style) so a PDF version would be generated and people could print it, pass it around the office or read it while working out or relaxing in bed. Therefore, Confluence's PDF features play a big part in this. Some questions that came up during the discussions: