A Bridge Too Far A review by Joe Chamberlain
Starring Dirk Bogarde; Paul Maxwell; Sean Connery; Ryan O'Neal & Gene Hackman
Just a perusal of the amazing all-star cast of this movie and you can probably get a pretty good sense of what you are in store for. The cast includes Sean Connery; Gene Hackman; Robert Redford; James Caan; and Anthony Hopkins, just to name a few. It is truly an ensemble piece. While Connery probably ends up with the most screen time, all of the main actors pretty much share the spotlight in this World War II epic. In fact, the cast is listed in alphabetic order in the credits. So my definition of the leads is an educated guess.
A Bridge To Far is based on the true story of an allied operation towards the end of the Second World War. The Allies decided to capture several of the bridges crossing the Rhine River in Germany. Once captured, they felt that the German industrial heartland would be easily overtaken which would mean a quick end to the war. Unfortunately, almost nothing went as planned and this operation turned into one of the biggest disasters for the Allies during the war. As a bit of a historical note -- more Allied soldiers lost their lives during the botched attempts to take the Rhine bridges than perished during the D-Day attack at Normandy.
A Bridge To Far is certainly the type of movie that would be considered an epic. It seems to have a cast of thousands and the battle scenes are grandly staged and quite realistic. While realism is a big part of this movie, none of the scenes contain the graphic horror that is now common in today's war films.
To a man, the cast of this movie is magnificent. A Bridge To Far almost has an edge of your seat quality to it. You never know what is going to happen next in this movie. I always seemed to get the distinct impression that whatever was going to happen, it was bound to be bad for the Allies. The total disaster that seems to have befallen the Allies at every turn is staggering. A Bridge To Far has the sort of plot that if you didn't know it was based on a true story, you would probably think it was too unrealistic. The movie has such a large cast that it is truly surprising at just how well developed these characters actually are by the end of the film. I could feel for all of them, especially since the disastrous results of this operation would have been considerably worse if it weren't for the skills of those actually on the battlefield.
I can't say enough about this movie. Acting, writing, directing are all simply amazing. Combine that with the fact that this is based on actual events, and you have a very riveting 3 hours. I was sort of surprised that the movie was as long as it was. It went quicker than most 90-minute movies -- certainly a testament to the fine writing and acting. Well worth checking out if you can find it at your local video store.
10/10
Visit The Movie Guy http://movieguy.tripod.com
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


I am a graduate student at Carnegie Mellon University majoring in Information Networking. My focus of study is in computer systems and software engineering. I went to University of Missouri for my undergrad in Computer Engineering.
I have experiences in full-stack development and many other area of computer science. My recent internship at Hulu, where I helped out building features on top of the current customer support platform with ReactJS, python Flask and GraphQL. The feature I built are estimated to save customer support specialist at Hulu millions of hours every year!
Built new features on top of the current custom support platform by partnering across multiple Hulu teams and services to centralize agent’s workflow and increase custom support productivity.
Developed features with React JS, GraphQL, Apollo client, Ant Design, Flask and graphene.
Significantly reduce the average handling time for agents to check refund eligibility of existing customers by over millions of hours per year.
Sped up the development process by developing a library for engineers to interact with Vector Network Analyzer in C++.
Increased product quality and sped up the test process by designing an automated test in C for factory antenna tests.
Accelerated antenna data processing for engineers by developing a visualizer using NumPy, SciPy, seaborn and matplotlib.
Developed a more efficient and comprehensive test converge for a billing software by designing and implementing a java- based web UI automation test framework from open source tools such as Selenium, Junit, cucumber and extent report.
Reduced time spend on tests up to 4 hours by developing tools in Java to modify and verify excel data and billing invoices.
A free social networking platform for pet owners. The purpose of this project is to create a user-friendly and pet-oriented community where pet-related questions, answers, concerns, and experiences are exchanged and shared.
The front-end is built with ReactJS and Typescript, the back-end of the project has a Flask API services for handling requests, ElasticSearch for searching, Redis for Caching, S3 for multimedia storage, AWS Lambda for cron tasks, and MySQL for primary data storage. The site is deploy to AWS ECS behind an application load balancer. A Github Actions is also configured to the repository to simplify CI/CD flow.
A performant and reliable twitter analytics services on the could developed with a limited budget. Extract, Transform and Load (ETL) on a 1TB twitter dataset and data were loaded to MySQL and HBase. Implemented 3 queries: 1. Heartbeat, 2. User Recommendation, 3. Ranged Query and Topic Words Extraction.
Used Java and Vert.x as the web services framework hosted in AWS Fargate and Lightsail behind an Elastic Load Balancer, protocol buffer for data serialization, MySQL, HBase, and AWS Aurora for data storage and PySpark for ETL.
Ranked 1st place among 35 teams in the Cloud Computing Class in CMU.
A mobile marketplace to connect hiring managers and agency recruiters implemented with React Native and Typescript. Used Linkedin API for OAuth2 login, Google firebase for real-time chat system, authentication and push notifications. Deployed MySQL database to Google Cloud SQL and back-end to Google Cloud Functions for a serverless back-end.
Would you like to work with me? Awesome!
Let's Talk


SPEECH/AUDIO
SE-Conformer: Time-Domain Speech Enhancement using Conformer
김의성(카카오엔터프라이즈), 서혜지(카카오엔터프라이즈)Conference of the International Speech Communication Association (INTERSPEECH)
2021-08-30
Abstract
Convolution-augmented transformer(Conformer) has recently shown competitive results in speech-domain applications, such as automatic speech recognition, continuous speech separation, and sound event detection. Conformer can capture both the short and long-term temporal sequence information by attending to the whole sequence at once with multi-head self-attention and convolutional neural network. However, the effectiveness of conformer in speech enhancement has not been demonstrated. In this paper, we propose an end-to-end speech enhancement architecture(SE-Conformer), incorporating a convolutional encoder–decoder and conformer, designed to be directly applied to the time-domain signal. We performed evaluations on both the VoiceBank-DEMAND Corpus(VCTK) and Librispeech datasets in terms of objective speech quality metrics. The experimental results show that the proposed model outperforms other competitive baselines in speech enhancement performance.


benfordslaw’s documentation!
benfordslaw
is Python package to test if an empirical (observed) distribution differs significantly from a theoretical (expected, Benfords) distribution. The law states that in many naturally occurring collections of numbers, the leading significant digit is likely to be small. This method can be used if you want to test whether your set of numbers may be artificial (or manipulated). If a certain set of values follows Benford’s Law then model’s for the corresponding predicted values should also follow Benford’s Law. Normal data (unmanipulated) does trend with Benford’s Law, whereas manipulated or fraudulent data does not.
Assumptions of the data:
The numbers need to be random and not assigned, with no imposed minimums or maximums.
The numbers should cover several orders of magnitude
Dataset should preferably cover at least 1000 samples. Though Benford’s law has been shown to hold true for datasets containing as few as 50 numbers.
Content
Quick install
pip install benfordslaw
Github
Please report bugs, issues and feature extensions there. Github, erdogant/benfordslaw.
Citing benfordslaw
The bibtex can be found in the right side menu at the github page.
Sponsor this project
If you like this project, Star this repo at the github page and become a sponsor! Read more why this is important on my sponsor page. The sponsor button will direct you to the sponsor github page.


ESTIndoorLocationManager Class Reference
| Inherits from | NSObject |
|---|---|
| Declared in | ESTIndoorLocationManager.h ESTIndoorLocationManager.m |
Overview
The ESTIndoorLocationManager
class defines the interface for Estimote Indoor Location SDK. Use
this class to setup a new location and to obtain position inside the location.
Only one instance of this class should be created inside the application.
Setting up a new location
In order to obtain precise position updates you need to prepare a physical location for Estimote Indoor Location. The procedure consists of the following steps:
- Configuration of the beacons.
- Placing beacons.
- Mapping the physical location to an instance of
ESTLocation
.
Invoke locationSetupControllerWithCompletion:
to obtain dedicated UIViewController guiding through this process.
Result of this procedure is a prepared physical location and an instance of ESTLocation
that can be used for obtaining position updates.
Obtaining position inside the location
Once you have instance of ESTLocation
you can start obtaining position updates for that location.
First you need to set a delegate
which will be receiving the updates and then start the manager for
the location. Note that only one location at a time is supported.
indoorLocationManager.delegate = yourDelegate;
[indoorLocationManager startIndoorLocation:yourLocation];
Do not forget to stop the manager if you are not using location updates any more.
[indoorLocationManager stopIndoorLocation];
Managing locations in the cloud
You can manage your locations in Cloud either through http://cloud.estimote.com or with Estimote Indoor Location SDK. With the SDK you can add and remove locations to the cloud account associated with the used appId as well as fetch all the locations stored for that account.
Please remember that in order to have any of these methods working you need to call [ESTConfig setupAppID:andAppToken:] first.
Properties
delegate
The delegate object to receive position update events.
@property (nonatomic, weak) id<ESTIndoorLocationManagerDelegate> delegate
Declared In
ESTIndoorLocationManager.h
currentLocation
Current active location.
@property (nonatomic, strong, readonly) ESTLocation *currentLocation
Declared In
ESTIndoorLocationManager.h
Setting up a new location
+ locationSetupControllerWithCompletion:
Creates a UIViewController
that guides through a process for preparing physical location for
Estimote Indoor Location.
+ (UIViewController *)locationSetupControllerWithCompletion:(void ( ^ ) ( ESTLocation *location , NSError *error ))completion
Parameters
completion |
A block that is invoked when setup has been finished. |
|---|
Return Value
Controller for setting up location.
Discussion
In order to have this method working you need to call [ESTConfig setupAppID:andAppToken:] first to configure the beacons for Indoor Location.
Declared In
ESTIndoorLocationManager.h
Obtaining position inside the location
– startIndoorLocation:
Starts the delivery of position updates for the specified location. Only one location is supported at the same time. Calling this method without stopping the indoor location for previous location results in an exception.
- (void)startIndoorLocation:(ESTLocation *)location
Parameters
location |
The location. |
|---|
Declared In
ESTIndoorLocationManager.h
– stopIndoorLocation
Stops the delivery of position updates.
- (void)stopIndoorLocation
Declared In
ESTIndoorLocationManager.h
Managing locations in the cloud
– addNewLocation:success:failure:
Saves new location to user’s account associated with the currently used AppId.
- (void)addNewLocation:(ESTLocation *)location success:(ESTIndoorCloudSuccess)success failure:(ESTIndoorCloudFailure)failure
Parameters
location |
Location to add. |
|---|---|
success |
Success callback. Object returned is a new |
failure |
Failure callback. Contains error that occurred. |
Discussion
In order to have this method working you need to call [ESTConfig setupAppID:andAppToken:] first.
Declared In
ESTIndoorLocationManager.h
– removeLocation:success:failure:
Removes a location from user’s account associated with the currently used AppId.
- (void)removeLocation:(ESTLocation *)location success:(ESTIndoorCloudSuccess)success failure:(ESTIndoorCloudFailure)failure
Parameters
location |
Location to remove. Must contain cloud’s identifier |
|---|---|
success |
Success callback. Object returned is the removed |
failure |
Failure callback. Contains error that occurred. |
Discussion
In order to have this method working you need to call [ESTConfig setupAppID:andAppToken:] first.
Declared In
ESTIndoorLocationManager.h
– fetchUserLocationsWithSuccess:failure:
Fetches all locations from user’s account associated with the currently used AppId.
- (void)fetchUserLocationsWithSuccess:(ESTIndoorCloudSuccess)success failure:(ESTIndoorCloudFailure)failure
Parameters
success |
Success callback. Invoked after location from cloud are fetched. Contains array of |
|---|---|
failure |
Failure callback. Contains error that occurred. |
Discussion
In order to have this method working you need to call [ESTConfig setupAppID:andAppToken:] first.
Declared In
ESTIndoorLocationManager.h
– fetchNearbyPublicLocationsWithSuccess:failure:
Fetches nearby public locations from cloud.
- (void)fetchNearbyPublicLocationsWithSuccess:(ESTIndoorCloudSuccess)success failure:(ESTIndoorCloudFailure)failure
Parameters
success |
Success callback. Invoked after location from cloud are fetched. Contains array of locations. |
|---|---|
failure |
Failure callback. Contains error that occurred. |
Declared In
ESTIndoorLocationManager.h
– fetchLocationByIdentifier:withSuccess:failure:
Fetches location of specified identifier from cloud.
- (void)fetchLocationByIdentifier:(NSString *)locationIdentifier withSuccess:(ESTIndoorCloudSuccess)success failure:(ESTIndoorCloudFailure)failure
Parameters
locationIdentifier |
Identifier of given public location. |
|---|---|
success |
Success callback. Invoked after location from cloud is fetched. Contains location. |
failure |
Failure callback. Contains error that occurred. |
Declared In
ESTIndoorLocationManager.h


The organization Breast Connect brings together breast cancer survivors from all over the East Tennessee area. According to their website, their "goal is for this site to answer questions, provide information and help patients create the best course of action as they navigate their breast cancer journey."
Their Facebook group has more than 4,000 members.
On Friday night, the group held a Friendsgiving to celebrate the holidays. More than 60 people attended the dinner at a Seqouyah Hills venue.


| 1024 | (A) | Come in the owen kynde and the kynge ryses |
| 1028 | (C) | ¶ They come to here owene kynde . & þenne þe kynge Rysetħ |
| 1011 | (D) | Come to her owne kynde and þe kyng a-risetħ |
| 991 | (E) | come to her kynde aȝen . & þe kyng aryseth . |
| (Ex) | ---- no text ---- | |
| 1049 | (L) | Comyn in here owen kynde & þe kyng ryseþ |
| 964 | (P) | Comen in þair aghen kynde ? þe kynge ryses |
| 1002 | (U) | Comen to her owen kynde / and the kyng arisetħ |
| 89 | (V) | Comyn tiłł þeire own kynde . and þe kyng rises |


After spending the last few weeks engrossed in reading about the work of Stanislav Grof, I had been preparing for my first psychedelic session.
Previous to encountering the whole subject of psychedelic therapy at the beginning of this year, I had no interest in drugs or mind-altering chemicals. For a short while I was sort of playfully interested in the idea of taking some Amanita Muscaria, but that really never transpired. I have never taken any other drug and with the exception of someone spiking my drink once, which led to a momentary buzz, I have never consumed alcohol.
Long story short, my main 'quest' in life is to get beyond all my petty neuroses and begin living life. I have so many issues with the world-- some mild, some not-- that I started to notice myself running around in circles, and seeing the futility of many of my outward pursuits. So I know I have some inner situations which need confrontation. I have dabbled in many self-help systems but have only discovered that my particular constellation of issues is unresponsive to anything which relies on my own active, willful involvement in the process. Thus I was looking for something more like a 'reset button' to help me proceed, temporarily against my own will, if need be. Combine this perspective with my interest in Stan Grof's work and one can see why chemicals interest me all of a sudden.
So my intention in using any drug is to confront my own past, especially the birth trauma, and whatever else exists before that. I am intentionally seeking out that which is unbearable and painful, because I believe that is the key to being healed and made free.
Okay, now the setting:
I was initially looking for a house in which to spend an entire day preparing for the experience, but I did not succeed in arranging that, and so decided to simply use my apartment. In fact, many of the preparations were sub-optimal, but I didn't want to put this experience off any further, because I know conditions will never be perfect.
I put my bed mattress on the floor and prepared myself to lie down during the experience. I intended to use the standard protocol for psychedelic therapy: eyeshades and headphones. (The music was Aphex Twin's 'Selected Ambient Works Vol. II') However, due to an annoying car alarm outside, which was bothering my sitter, I unplugged the headphones and opted instead to fill the room with the music.
My apartment is nothing fancy, but very simple and I don't have any particular emotional charge attached to my bedroom (not having lived here very long). The windows were covered to admit no light and so the room was entirely dark except for a night-light. It was about 2pm in the afternoon before we got underway.
The dosage:
I took the tincture, using the staggered dose method: 1 dropper-full held sublingually for 4 minutes, swallowed, and then followed by another-- a total of 3 dropper-fulls.  I think I will use a diluted mixture in the future (my reason for not doing so was to preserve the efficacy of the tincture, which is apparently weakened when diluted).
I am not sure if this interfered with the absorption, but due to the irritation caused by the alcohol in the tincture, my mouth filled up almost entirely with saliva on the second step of the dose-staggering. But the 3rd step was not terribly affected this way.
The experience:
The most immediate, noticeable effect upon swallowing the final dropperful (after holding it), was the laughter. This probably kicked in about five minutes after swallowing. I didn't laugh too much, really, but after a short while I found it odd to be laughing, as I did not find anything particularly funny. But it was a really genuine laugh, and I was glad to be confirming the archetypal salvia experience so soon. I vaguely recall some kind of strange felt observation about my sitter (who is my girlfriend), something about the nature of being attracted to her. But it was very dreamy and not terribly forceful and so I do not recall what it was.
The second track on the Aphex Twin CD, 'Radiator,' was driving me nuts. I asked my sitter 'how long has this song been on??'-- a little unsure if I could still talk, but glad to find out that I could indeed-- because it seemed to be playing without end. I was having memories or just general impressions of some kind of playful, childlike atmosphere-- very Willy Wonka-esque. So I was glad when the CD moved to the next track. This was the first time I listened to said CD; in the future I will use something I am more familiar with, so as to have a better idea of where I am-- 'tripping or not?'
I was trying to recall various things from childhood, to test my memory, as I have read that Salvia expands one's access to early memories. I wouldn't say I was having trouble remembering, but the associations seemed much slower in forming than I was used to. Compared to my Salvia experience, normal mental functioning feels sharp and precise, maybe even a little hyperactive. I remember wondering if the sort of mental dreaminess I was experiencing was how plants experienced the world. I have not experienced LSD, but I remember wanting to tell my sitter that it felt like I was experiencing 'tracers'-- not visual, but mental. It felt like one thought, one feeling was blurring into another.
I started to remember some sort of idea, or complex feeling ('gestalt'?) from childhood, but I couldn't really get a handle on it. I was remembering some toys in the garage at my old house, but it wasn't very clear to me. Just a general impression that they were there, and sort of the mental 'feeling' associated with it. Like a younger view of the world. But that sort of morphed into another feeling or vision of the car my mom drove when I was much younger. This impressed me but I couldn't really go further with it.
After that, I do not remember anything concrete, as I fell asleep. When I awoke I asked my sitter how long it had been since the beginning of the experience, but she had fallen asleep too. We estimated about 40 or 50 minutes.
Post-experience:
I didn't notice any sluggishness or lack of motor control or anything like that after waking up. I made it to my bathroom just fine and even drove my girlfriend to her house about 25 minutes after my experience. Granted, my dose was (apparently) too small, but I figure that was worth mentioning.
In conclusion, this experience was inconclusive :) It rates fairly low on the Salvia scale, judging from other reports. It is my intention to assess the possibility of using Salvia as a mental exploratory tool for opening up my unconscious and getting rid of my 'junk.' I would use LSD if it were legal and easy to obtain in a pure form, but that seems a bit difficult in this day and age.
I still have a whole bottle of this stuff left, so I am going to continue experimenting with it until I run out, or determine conclusively that it is not conducive to the sort of experience I am looking to have. The fact that people can experience such horrific things while under the influence of this plant is part of my attraction to it; I want something that will 'tell it like it is,' and show me the dark aspects of my own psyche. To that end I am also interested in Ibogaine.
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.


Redmi K30 Shown In Real-Life Images Prior To Launch
Redmi has been releasing quite a few teasers for the Redmi K30, and the phone has just surfaced in real-life images. If you take a look at the gallery down below, you'll be able to see the device.
Redmi had already confirmed the design of this phone via its teasers. The company showed both the phone's front and back sides in renders. Well, these leaked real-life hands-on images of the Redmi K30 will give you a better idea of what to expect.
The device shown in the images seems to be Pink, or something of the sort. You can clearly see that it will be made out of metal and glass, and sport quite a few cameras on the back.
Advertisement
Redmi K30 real-life images confirm pill-shaped camera cutout, four rear cameras
The phone will include four cameras on the back, it seems. Those cameras will be vertically-aligned, and will protrude on the back a bit. A circular design element will be included around those cameras as well, for aesthetic purposes, probably.
The phone's back side will be curved, as expected. The front side of the phone will be, well, not for everyone. The Redmi K30 will include a rather unseemly pill-shaped camera cutout on the front.
That camera cutout will sit in the top-right corner of the display, and will be similar to the one on the Galaxy S11+. Some people may prefer those display holes, but they surely do not make phones pretty, especially such large ones.
Advertisement
That display camera hole will, of course, also take away from the phone's display. It will be inside of your content, unless Redmi ends up offering a way for you to hide it. That is not a perfect solution, and you'll end up with a rather large bezel up top, but… it's something, at least.
The device will include rather thin bezels overall. Its bottom bezel is expected to be a hair thicker than the rest of its bezels.
In the gallery down below, you can also see the phone's retail box. It looks rather ordinary, a while box with both Xiaomi's and Redmi's brandings on the front. The name of the device is also highlighted here.
Advertisement
The back side of this retail box contains Redmi's dragon logo. This dragon logo hasn't been around for long, the company only started using it a couple of months ago.
The device will become official tomorrow, December 10
The Redmi K30 will become official on December 10, or tomorrow, if you will. It will include 5G connectivity, and it's possible that we'll see both 4G and 5G variants.
The Redmi K30 Pro was not mentioned by the company, so we don't know if it's coming or not. If it launches now, it will be fueled by the Snapdragon 855+, probably. If Redmi opts to wait, it may include the Snapdragon 865. The Redmi K30, on the other hand, will ship with one of Qualcomm's Snapdragon 700 series chips.
Advertisement


--- layout: post title: Becoming a superhero tags: - other ---
“Most people overestimate what they can do in one year and underestimate what they can do in ten years.”
– Bill Gates
What if I told you that you can become a superhero? Yes, just like the one from the comics and movies we’ve all come to love since the childhood years.
“The Amazing Spider-Man”. “Batman, the Dark Knight”. Or even a man of steel — Superman. Characters with extraordinary superpowers, fighting the good fight against villains of the night.
I’m here to tell you that you can become one of them. Yes, you, my dear developer.
“But how is this possible?” — you ask me.
“Have you completely lost your mind? Spent a night too much in the debris of a code, perhaps?”. “Obviously, the superpowers are called extraordinary for a good reason — not everyone has them. And the entire concept of superhuman — aside from being a silly fairytale — is definitely about extraordinary specimen; not the real human beings. We just don’t have the superpowers, capabilities of such sort, no matter how much we wish for them”.
Well, damn.
You got me there. I think I’ll just have to come straight out and admit that I lied.
You actually won’t become a Superman. Or even a Spider-Man. Sorry. But don’t close this tab just yet, as I do have a point here.
So we can’t have an amazing ability to create spider web in seconds. Or to fly through the skies with the speed of light. Then what is this nonsense I’m talking about?
Something I’ve come to realize over the past few years is that superhuman is hidden in all of us. We just don’t know about it, or don’t care about it, or never try to unleash the potential. When I talk about superhuman, I don’t mean the above-mentioned comics abilities, but physical and mental abilities as compared to an average human being.
“Superhuman hidden in all of us?” — I hear your laugh — “Is this one of those deep, motivational quotes you found on Pinterest?”
The dictionary defines “superhuman” as “having or showing exceptional ability or powers”. Can we achieve exceptional abilities as compared to an average human being? Of course! And guess what. To that same human being, those abilities will come off pretty damn close to superpowers. How is that for a superhero?
The sad state of affairs these days is that an average person is so physically out of shape, that the difference in what we are and what we can achieve is mind-blowing. In programmer circles situation is even worse, since our lifestyle — coupled with our lazy nature — takes its toll; and the gap becomes even wider. A regular computer-facing-on-a-daily-basis person has incredibly low levels of physical strength, endurance, mobility, speed, and work capacity.
There’s no reason for this and it has to stop.
This is certainly easier said than done, so I’d like to share something with you. I’d like to show you my outlook on things, and tell you a couple of ideas that will help unleash those super abilities hidden within you. As weird as it might sound, becoming a better you can actually be fun, and here’s how.
When I was 12 years old, a friend of mine introduced me to my very first computer game — Baldur’s Gate. A fascinating role-playing adventure, set in a Dungeons & Dragons universe. Just like in any game of such kind, you start with a character. A weak and unskillful, pale version of what you can become. As you travel through the mysterious world full of dangerous monsters, the character “grows”. It becomes a better, stronger, faster version of itself; learning new skills and improving the existing ones. Turning into a superhuman machine — powerful and dangerous to any opposing force on its way.
For some reason, this “character growing” aspect has always fascinated me. Yes, the story is engaging and the fantasy world is amazing on its own. But there’s nothing like reaching that new level, learning a new skill, or becoming a slightly more powerful version of yourself. Even if it’s all happening in a virtual world.
Have you ever felt the same about your game character? Ever caught your heart beating faster when you’ve found new spell in a Skyrim world? Or finally got that Fallout perk?
So here’s the fun part — that character can be you. Few months of proper physical regime gives +1 to your strength. Practice some acrobatics skills — +1 to agility. Engage in long-lasting activity — +1 to endurance.
“You’ve got to be joking!” — you say. “I have a project to finish, and there’s still IE testing to be done. And you want me to start practicing acrobatic skills? I get enough by juggling DOM quirks in my mind.
Why is it that we’re so good at perfecting virtual things, yet fail so much with our real-life self?
The idea is this: gaming aspect could be a huge motivation. Try treating yourself as a game character and it could do wonders. Don’t care about games? Treat it as a pet project. Just like that library you released few months ago, carefully planning and thinking through the API, adding a thorough documentation, making sure there are unit tests covering all functionality; there’s always new stuff to add, things to improve, polish. The very same principle could be used to make a better you.
Unlike in games, there’s almost no level cap in real life. Well, technically there is, but it’s so far, it will likely take you years and years to reach it.  No more reaching maximum level 40 and losing interest in a game from not being able to improve.
We’re talking about life-long leveling up here. And the possibilities for growth are endless.
You can work on strength, speed, power, agility, endurance — you name it. Or all of them at the same time, slowly reaching extraordinary levels in all of them. Now that’s superhuman.

 We all do. Great physique increases confidence and good health makes the rest of your life more enjoyable.
But here’s the cool thing: focusing on performance does wonders for both health and looks. Focusing just on looks or health usually does little for performance. Yes, those two goals are great on their own, but I can’t repeat this enough — if you focus on performance, looks and health will follow.
You get the best of all worlds.
As geeks, we possess OCD-like features, which is what probably makes gaming aspect so effective. We’re also smart about what needs to be done. But we’re lazy. So the biggest thing preventing you from becoming a better you is just… starting. Once you start, it really doesn’t take long to see the progress; to feel the “leveling up” aspect. And that’s fun. Instead of new spell you’ll be thinking about new achievement of doing 10 pull-ups. Instead of increasing strength point, you’ll plan for squatting your bodyweight. Instead of speed boost, you’ll aim to run an 8-minute mile.
With all this gaming talk, I just have to bring up Fitocracy — a social network and a tracking tool that brings gaming ideas to the world of fitness.

It’s one of the reasons I know that gaming works. If you’re lacking some motivation, I suggest you give it a try. It might just be that perfect push. And it keeps things fun; points, achievements, badges, levels — it’s all there.
So now that you decided to give it a shot and become a superhero version of yourself (right? right?) Where should you start?
One thing to keep in mind is that fitness world — just like web development one — is often dark and full of terrors full of misconceptions and ignorant advice. It’s good to take things with a grain of salt, and always use common sense.
There’s few ways to get started: whether it’s bodyweight training or running or sports or weight training — each has its own benefits. I have my own ideas of self-improvement focused around strength, speed, mobility and utilizing both free weight and bodyweight training. But that’s a story for another time.
Two of the best resources I can recommend:
r/fitness FAQ on Reddit has no-nonsense and very accurate information on the topic of fitness. In particular, getting started section should be all you need in the beginning.
T-nation articles are some of the highest-quality you can find online, although they’re more advanced (don’t pay attention to horrific images used on the site, and occasional advertisement; the content is written by the top coaches in the world and is always legit).
There’s also been few excellent books that reinforce the idea of “less is more” and an “easy”, accessible, non-intimidating physical progress:
Everything I said above was about becoming a better you. But if you’re asking yourself — “Who is this poor delusional bastard? And why does he think he can become a superhero?” — I owe you a quick explanation.
Ten years ago my physical shape was close to zero. I couldn’t run without getting out of breath, couldn’t do a single pull-up. Just one of those chubby kids who would rather play another game of Warcraft than go outside for some basketball. The kind of physical shape I’m in today would be absolutely superhuman to my 10-years-back self. If I was told back then that I’d be able to squat with 300lbs on my back, run 5km, easily perform 20+ pull-ups, 50+ pushups, or overhead press my bodyweight, I would think I ended up in some kind of professional sport. Or spend hours every day in the lame gym instead of doing more fun things by the computer.
But the truth is that I still spend most of my time by the computer, enjoying the wonderful world of front end. And while I do hit the gym, it’s only 3-4 times a week and not more than 1-1.5 hours each time.
The amazing capabilities of our bodies can be developed to great effect without huge effort or time investment. Just by doing the right thing and “sticking to it”. You’ll be amazed at what becomes possible in few years.
Am I somehow special? Definitely not. Any of you can achieve the same, and likely more, if you only make it part of your routine. Become a superhero for yourself, for your kid or your spouse; become the best version of you.
So join me in this wonderful journey to an ultimate self. And good luck.


MOST FITNESS AND DIET PLANS FAIL
BECAUSE THEY'RE TOO GENERIC. WE'RE
CHANGING THAT, ONE BODY AT A TIME.
Question: If there’s so much information out there about fitness and nutrition, then why are most people still struggling to get the body they want?
Hi, I’m Bryan Lopez. That’s the question that drove me to leave several high-level positions at some of the world’s largest health and fitness companies and started Angel Body Supplements over a decade ago.
My mission is simple: To cut through empty promises, bogus research, and confusing advice and bring an effective, personalized approach to health and fitness that anyone can use to get in better shape—even if they’ve tried and failed before.
Over the past decade, my team of coaches and I have had the honor of
coaching over 1,000 people directly, with 50 million more reading and
following our work.
These aren’t fitness models or world-class athletes, either.
On this website you have everything someone would need to achieve the dream body that they are looking for. Check out my lab-tested, 100% organic and natural Cupid Body Supplements now and receive 15% off at checkout with the code “Cupid.” Furthermore, check out the various types oftraining programs I have created to find what might be the most optimal for your body type. We also have started to incorporate “Cupid Body” clothing and “bath recovery” supplementation to our website. Lastly, thank you for visiting the site. I believe that through knowledge and hard-work any of my clients goals are possible. It is through hard training that any goal can be accomplished, resulting in a confident and personable new you!


Infinity CSS Grid
Fluid Flex Solution for making infinite grid columns.
50%
50%
33,3%
33,3%
33,3%
25%
25%
25%
25%
20%
20%
20%
20%
20%
16,66%
16,66%
16,66%
16,66%
16,66%
16,66%
12,5%
12,5%
12,5%
12,5%
12,5%
12,5%
12,5%
12,5%
1
1
1
Merge 3
1
1
Merge 2
1
Merge 3 (take 3 places)
1
1
1
Nested
Nested
Nested
1
Ultra minimal only 0.15 Kb
Fluid
Just add columns into the row container
You can add as many columns as you like. You can merge the columns or insert columns inside columns. Everything is 0.1 Kb and even works in IE10.


Hadoop is a high level language, which is widely used for general purpose programming.
Read MorejavaTpoint is providing training on various technologies. One of them is java training.
Read MoreAndroid is a high level language, which is widely used for general purpose programming.
Read MorePython is a high level language, which is widely used for general purpose programming.
Read MorejavaTpoint provides best Web Designing training in Ghaziabad, Noida, Delhi/NCR region.
Read More G-13, Second Floor
Sector-3, Noida (Near Sector-16 Metro Station)
U.P, India, 201301
Phone: 0120 - 4256464
Mobile: +91 -<PHONE_NUMBER>
Email: hr@javatpoint.com


--- layout: attachment title: attachment-578ee560440243f06f631261 categories: [] tags: [] status: inherit type: attachment published: false meta: {} ---
img-578ee560440243f06f631261


--- imgsrc: "jewish_art_bar_mitzvah_wedding_mc_will_deutsch.jpg" buylink: "http://store.notesfromthetribe.com/product/8-5x11-jewish-art-mc-print" postDate: "06.22.10" layout: post ---
Any given Saturday night, somebody, somewhere, is dancing to the B-52’s ‘Love Shack’.
They are wearing some combination of plastic fedora hat, glowsticks, novelty sunglasses, mardi gras beads, and playing an inflatable instrument.
When the song reaches it’s climax at the bridge, this person will ball up both their hands into fists and pump them into the air chanting ‘‘BANG BANG ON THE DOOR BABY!” So will everyone else around them.
This is no accident. It isn’t a coincidence. These things don’t just happen.
He makes it happen.
Not a Rabbi.
Not a Cantor.
But just as important to the success of your simcha.
The MC.


Hi, I'm Ravi Ojha
Software Engineer with 4 years of experience. A product person, cares immensely about user experience and believes in data-driven decisions. Delves into graphic designs on lazy weekends or writes blog posts about software engineering and life experiences. Retired competitive programmer.
professional
linkedin • github • blog • résumésocial
facebook • twitter • quoracontact *
<EMAIL_ADDRESS>•


| trim {diffobj} | R Documentation |
diff*
methods, in particular diffPrint
,
modify the text representation of an object prior to running the diff to
reduce the incidence of spurious mismatches caused by unsemantic differences.
For example, we look to remove matrix row indices and atomic vector indices
(i.e. the [1,] or [1] strings at the beginning of each display
line).
trimPrint(obj, obj.as.chr) ## S4 method for signature 'ANY,character' trimPrint(obj, obj.as.chr) trimStr(obj, obj.as.chr) ## S4 method for signature 'ANY,character' trimStr(obj, obj.as.chr) trimChr(obj, obj.as.chr) ## S4 method for signature 'ANY,character' trimChr(obj, obj.as.chr) trimDeparse(obj, obj.as.chr) ## S4 method for signature 'ANY,character' trimDeparse(obj, obj.as.chr) trimFile(obj, obj.as.chr) ## S4 method for signature 'ANY,character' trimFile(obj, obj.as.chr)
obj |
the object |
obj.as.chr |
character the |
Consider:
> matrix(10:12) [,1] [1,] 10 [2,] 11 [3,] 12 > matrix(11:12) [,1] [1,] 11 [2,] 12
In this case, the line by line diff would find all rows of the matrix to be mismatched because where the data matches (rows containing 11 and 12) the indices do not. By trimming out the row indices before the diff, the diff can recognize that row 2 and 3 from the first matrix should be matched to row 1 and 2 of the second.
These methods follow a similar interface as the guide*
methods, with one available for each diff*
method except for
diffCsv
since that one uses diffPrint
internally. The
unsemantic differences are added back after the diff for display purposes,
and are colored in grey to indicate they are ignored in the diff.
Currently only trimPrint
and trimStr
do anything meaningful.
trimPrint
removes row index headers provided that they are of the
default un-named variety. If you add row names, or if numeric row indices
are not ascending from 1, they will not be stripped as those have meaning.
trimStr
removes the ..$, ..-, and ..@ tokens
to minimize spurious matches.
You can modify how text is trimmed by providing your own functions to the
trim
argument of the diff*
methods, or by defining
trim*
methods for your objects. Note that the return value for these
functions is the start and end columns of the text that should be
kept and used in the diff.
As with guides, trimming is on a best efforts basis and may fail with “pathological” display representations. Since the diff still works even with failed trimming this is considered an acceptable compromise. Trimming is more likely to fail with nested recursive structures.
a length(obj.as.chr)
row and 2 column integer matrix with the
start (first column) and end (second column) character positions of the sub
string to run diffs on.
obj.as.chr
will be as processed by
strip_hz_control
and as such will not be identical to the
captured output if it contains tabs, newlines, or carriage returns.


Are you sure you want to logout?
Doing so will clear any progress in any scenarios you have started, and will destroy the resources allocated for the scenarios.
HobbyFarm was lovingly crafted by @ebauman and @Oats87 from @RancherLabs
UI Version: {{version}}


data(retirementLoc)
The data may be grouped using the variable cbsa_desig
. “CBSA” is an abbreviation for “Core Based Statistic Area” and has been in use since 2000. Of the 3100+ counties in the United States, the Office of Management and Budget classifies 1888 of them into metropolitan and micropolitan statistical areas based on population density. Many of these designated areas consist of an urban core where people work and outlying, adjacent counties where people reside. The US Census Bureau describes the history and criteria on its website.
When these were merged with the retirementLoc
dataset, a number of “NA”s were generated. The missing values were assigned the character string rural-faraway
. The different areas often have different characteristics and outcomes. For that reason, this vignette was written to draw readers’ attention to this important and useful variable.
df <- retirementLoc |>
dplyr::filter(cbsa_desig %in% c("metro-central", "rural-faraway")) |>
select(fips, cbsa_desig, pop_2020, pct_pop_change,
partisan_lean:prim_care_dr_rate) |>
pivot_longer(!c(fips, cbsa_desig),
names_to = "key",
values_to = "value",
values_drop_na = TRUE)
p <- ggplot(df) +
aes(value, color = cbsa_desig) +
geom_density() +
facet_wrap(vars(key), scales = "free", ncol = 3)
p


Ruby is an Object Oriented programming language. An object-oriented program involves classes and objects. Class is a blueprint, the blueprint tells Ruby how class should be structured and what it should do. We are working usually with strings, arrays, hashes, in Ruby we call these things classes. In Ruby everything is an Object. When we instantiate a new instance of a class my_name = NewClass.new(“Iulia”) this thing my_name is called Object. Every object is an instance of a class.
Let’s take a car to see how it works in a real world. Prototype of a car - is a class. In prototype I mean that every car has 4 wheels, steering wheel, transmission. When we are creating a new object, we take class as an example, we take properties of a car from our class, and create a new car, that may have another color, another size and etc. new_car = Car(“Audi”).
It is very easy to create a new class, we will use just 3 words:
When we call this class using method “new”, it means we are creating a new object:
Inside of our class we can write methods. Writing methods is very powerful, because they apply only to the individual instance that we are working on. The initialize method is a special type of method. In order to start using your object, it must first be initialized what means that it has any instance variables that needs initializing. Let’s take our Car class as an example:
Now we will write a class with different methods inside of it. For this example we will take a bank account. Bank account is responsible for all data of a person that has this bank account. It could be person’s first name, last name, transactions that he has made, and the balance.
Looks complicated from first sight? Ok, let’s take a look at it step by step.
1)We are creating a class BankAccount. Naming class we have to write a capital letter first, and if we have 2 words in class name, we capitalize second word too (Bank or BankAccount). It is not necessary to capitalize second word, but it is how most Ruby programmers do.
2)We create initialize method, what is called when we instantiate our class. We take first and last name of the person as attributes of this method. And we are creating instance variables inside as well.
3)So what are instance variables? Instance variable - are variables that are available across different methods inside our class. We create this variable starting with “@” sign followed by the variable name (@variable).
4)Then we create new method called “transaction” because we want to show the person what transactions were made to his bank account. As arguments we take amount and location where this transaction was made.
5)New method earn_money keeps information of amount of money that was transferred to your account, and were did they come from.
6)New method spend money keeps information of spent amount of money (that’s why we use “-” sign before the amount word), and place where did you spend your money.
7)Every person wants to know how much money left on his bank account, so we create a method called “your_balance”, where we iterate through our transactions, since this variable is an array. And we add or deduct amount that was earned or spent, and return balance to the screen.
8)We want to have something like a summary, to show person’s name and his balance on the screen, so that’s why we created method “print_out_info”.
9)After we close our class with “end” word, we want to call this class creating an object bank_account. As arguments I took my first and last names. Then when we call earn_money method “bank_account.earn_money(500, "Work place”)” we will see amount added to our bank account, and where did money come from at this example we add a paycheck from your Work place with amount of 500 dollars.Then we call “spend_money” method “bank_account.spend_money(100, "Trader Joe’s”)” and we see how much money I spent, and where I spent them. Then we display balance on the bank account “bank_account.your_balance” and we print this information to the screen calling “print_out_info” method.
=> "Name: Iulia Soimaru, your balance is: 400"
All in all class is like a constructor that builds object. An object built by a specific class is called an instance of this class. Our object bank_account can’t do very much, but instances of classes like Array, String or Hash can do a lot :)
Finally I finished this blog post. Honestly it wasn’t easy to write all of this!
Thank you for attention
Best,
Iulia


Please do have a look at ActiveRecord::Validations::ClassMethods for a higher level of validations.
Active Records implement validation by overwriting Base#validate (or the variations, validate_on_create and validate_on_update). Each of these methods can inspect the state of the object, which usually means ensuring that a number of attributes have a certain value (such as not empty, within a given range, matching a certain regular expression).
Example:
class Person < ActiveRecord::Base protected def validate errors.add_on_empty %w( first_name last_name ) errors.add("phone_number", "has invalid format") unless phone_number =~ /[0-9]*/ end def validate_on_create # is only run the first time a new object is saved unless valid_discount?(membership_discount) errors.add("membership_discount", "has expired") end end def validate_on_update errors.add_to_base("No changes have occurred") if unchanged_attributes? end end person = Person.new("first_name" => "David", "phone_number" => "what?") person.save # => false (and doesn't do the save) person.errors.empty? # => false person.errors.count # => 2 person.errors.on "last_name" # => "can't be empty" person.errors.on "phone_number" # => "has invalid format" person.errors.each_full { |msg| puts msg } # => "Last name can't be empty\n" + # "Phone number has invalid format" person.attributes = { "last_name" => "Heinemeier", "phone_number" => "555-555" } person.save # => true (and person is now saved in the database)
An Errors object is automatically created for every Active Record.
- errors
- invalid?
- save_with_validation
- save_with_validation!
- valid?
- validate
- validate_on_create
- validate_on_update
| VALIDATIONS | = | %w( validate validate_on_create validate_on_update ) |
Returns the Errors object that holds all information about attribute error messages.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/validations.rb, line 1049 1049: def errors 1050: @errors ||= Errors.new(self) 1051: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/validations.rb, line 1044 1044: def invalid? 1045: !valid? 1046: end
The validation process on save can be skipped by passing false. The regular Base#save method is replaced with this when the validations module is mixed in, which it is by default.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/validations.rb, line 1007 1007: def save_with_validation(perform_validation = true) 1008: if perform_validation && valid? || !perform_validation 1009: save_without_validation 1010: else 1011: false 1012: end 1013: end
Attempts to save the record just like Base#save but will raise a RecordInvalid exception instead of returning false if the record is not valid.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/validations.rb, line 1017 1017: def save_with_validation! 1018: if valid? 1019: save_without_validation! 1020: else 1021: raise RecordInvalid.new(self) 1022: end 1023: end
Runs validate and validate_on_create or validate_on_update and returns true if no errors were added otherwise false.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/validations.rb, line 1026 1026: def valid? 1027: errors.clear 1028: 1029: run_callbacks(:validate) 1030: validate 1031: 1032: if new_record? 1033: run_callbacks(:validate_on_create) 1034: validate_on_create 1035: else 1036: run_callbacks(:validate_on_update) 1037: validate_on_update 1038: end 1039: 1040: errors.empty? 1041: end
Overwrite this method for validation checks on all saves and use Errors.add(field, msg) for invalid attributes.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/validations.rb, line 1055 1055: def validate 1056: end
Overwrite this method for validation checks used only on creation.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/validations.rb, line 1059 1059: def validate_on_create 1060: end
Overwrite this method for validation checks used only on updates.
[ show source ]
# File vendor/rails/activerecord/lib/active_record/validations.rb, line 1063 1063: def validate_on_update 1064: end


Live Writer is now Open Source
Windows Live Writer has been turning blogging up to 11 since 2007, but since 2012 things have been a bit quiet with the application itself. However over the past few months I have had the pleasure working with a very pasionate group of engineers volunteering their time to ensure that Live Writer has a sustainable future. I'm pleased to announce that today the .NET Foundation welcomes a new project - Open Live Writer. One of the great things about Live Writer has always been the passionate community behind it and I can't wait to see what that community does now everying is open source and on GitHub.
In this guest post from Rob Dolin, he explains more about the new project and how to get started with the new, Open Live Writer which is available to download now.
-- Martin
Windows Live Writer Released as the open source Open Live Writer
It’s a great day for bloggers who have a favorite tool for creating content. Today Microsoft announced that Open Live Writer was released and has been contributed to the .NET Foundation. Open Live Writer is an open source application enabling users to author, edit, and publish blog posts. It is based on a fork of the well-loved but not actively developed Windows Live Writer code. Scott Hanselman helped carry the torch at Microsoft on this project, and I’ve been proud to be part of the all-volunteer team to make it happen.
History of Windows Live Writer
The product that became Live Writer was originally created by a small, super-talented team of engineers including Jeremy Allaire, JJ Allaire, Joe Cheng, Charles Teague, and Spike Washburn. The team joined Microsoft through an acquisition in 2006 and organized with the Spaces team where I was working. Becky Pezely joined the team and over time, the team grew and shipped many popular releases of Windows Live Writer.
As Microsoft was planning for the version of Windows Live that would coincide with the Windows 8 operating system release, the teams that built the Windows Live client apps for Windows were encouraged to focus on building a smaller set of Windows 8 apps designed to work well with both traditional PC input mechanisms and touch. The original team concluded their work on Windows Live Writer with Windows Live Writer 2012.
Reviving Live Writer
Even though there was no active development, Windows Live Writer continued to be a favorite tool of a passionate community of Windows PC users for authoring, editing, and publishing blog posts. Data from WordPress.com at the time suggested that Windows Live Writer (even two years after active development ended) was the #1 app for authoring a blog post to WordPress.com on a Windows PC. In fact, some of our technical evangelists were actively using Windows Live Writer for publishing on WordPress-powered blogs. A few team members from my former MS Open Tech team took an early interest in joining Scott Hanselman to revive Live Writer as an open source project.
By January 2015, a group of about a half-dozen engineers interested in spending some of their volunteer time to help release an updated version of Live Writer had found each other. Jon Gallant sent an email to a few large group email lists at Microsoft soliciting volunteers and we collected about 50 people interested in helping. Anne Legato, Ed Essey, and the team at The Garage were most helpful in sharing advice on launching external projects. Scott Guthrie also agreed to be Open Live Writer’s sponsor.
Why v0.5
You might wonder why we’re releasing a version 0.5 now instead of waiting to get to a v0.9 or a v1.0. A few considerations went into this. First, we wanted to get this out as an open source project as quickly as possible so people outside of Microsoft could start participating. Second, we suspect many people may be taking some vacation around the end of December and we wanted to make sure the project was available. Third, Eddie Kessler and the folks on Google’s Blogger team asked us to ship no later than early December 2015 so they could turn-off an old API that Windows Live Writer was dependent on. Eddie and team originally had planned to turn-off the API earlier and we are thankful for their collaboration and partnership in extending its life until we could release Open Live Writer.
Why .NET Foundation
The volunteer team considered a few options for releasing Open Live Writer. Ultimately, we found a great partnership in the .NET Foundation to support our goals around growing community participation for the project. Martin Woodward, Robin Ginn, and the team has been super-helpful in many matters including open source governance and administrative support, to marketing and communications.
And Open Live Writer is many thousands of lines of C# code, so the .NET Foundation is a good technical match too. J
Enough Background, SHOW ME THE BITS!
To download the latest version of Open Live Writer, visit our website: http://www.OpenLiveWriter.org/. Open Live Writer is designed to sit side-by-side with Windows Live Writer so installing Open Live Writer won’t impact your existing version of Windows Live Writer.
For the latest news and updates about Open Live Writer, you can follow us on Twitter as @OpenLiveWriter and find other ways to connect on: http://www.OpenLiveWriter.org/.
Help Wanted
Open Live Writer is brought to you by a volunteer team and continued improvements are dependent on volunteers. The code is available on GitHub: http://www.github.com/OpenLiveWriter/ and we welcome pull requests and open issues.
However, we’re not just looking for developers. Anyone who wants to test early bits, help with visual design, interactive design, technical writing, partnership negotiation, product management, marketing, digital media, and more would be welcomed. You can find ways to plug-in to the community at: http://www.OpenLiveWriter.org/.
Thank You
Thanks very much for your interest in Open Live Writer and many happy blog posts—
--Rob
Rob Dolin (@RobDolin)
Senior Program Manager, Microsoft Cross-Platform and Open Tools team
(On behalf of the Open Live Writer committers)


Check out our expansive line of skateboards, longboards, and apparel to make every day a fun day!
Landyachtz has been providiong quality skateboards since 2007. Utilizing top quality components and environmentally friendly materials we make sure that every board can shred forever...
This board really is the best of both worlds. Any opportunity I get I’m out cruising. -Jessica
“This drop board is so stable and rides so smooth. I think I may prefer it over my first love sector nine.” -Josh S
Buy a Board!
1221 Glen DR
Vancouver, BC
V6A 3M8
1-855-758-4627
<EMAIL_ADDRESS>Mon-Fri: 9-5 PST


I first came up with the codes for this website after learning all the basic html needs that are needed such as attributes,
elements, styles and more.Then, I used visual studio code as my text editor to write out all the codes.Initially,index which became my home page
and then subsequently added on the 'about','contact' and 'project' pages.Then, within the project page, I separated the page into 4 subpages to the 4 main topics in digfab.I then formed a css code
in which I used to add in the background images, colours, font sizing, font family and all the accessories needed to
make the webpage more appealing. Lastly, I transferred all my files onto github so that I can store my data there and keep updating it.


HiTS stands for High Throughput Screening. Its main goal is to support the analysis of the collected screen data with powerful data manipulation, visualisation and mining tools. This is why we have chosen KNIME and cellHTS2 as the base softwares.
If not yet familiar with KNIME you may find these useful:
That section of the wiki page describes the installation procedure. It worth taking a look at it, because it adds some tips how to set up your environment.
Describes some of the common concepts used in the documentation.
Enumerates the actual feature list of HiTS.
If you find bugs, please take some time and report it on this page. Please check the list of bugs reported after your actual version before reporting new bugs.
You find something could be improved? Please tell us. Use the this page.
There is a mailing list for the users of HiTS. You may discuss your problems with other users, or share your ideas how you use it. Web page or directly: HiTSusers@googlegroups.com


Ph.D. in Electrical and Computer Engineering
Technical University of Munich Munich, GermanyMember of the TUM-Graduate School within the Neuroscientific System Theory Group (NST), Department of Electrical and Computer Engineering
Member of the TUM-Graduate School within the Neuroscientific System Theory Group (NST), Department of Electrical and Computer Engineering


| 1 | package fr.sii.ogham.email.sender.impl.javamail; | |
| 2 | ||
| 3 | import javax.mail.Multipart; | |
| 4 | import javax.mail.internet.MimePart; | |
| 5 | ||
| 6 | import org.slf4j.Logger; | |
| 7 | import org.slf4j.LoggerFactory; | |
| 8 | ||
| 9 | import fr.sii.ogham.core.message.content.Content; | |
| 10 | import fr.sii.ogham.email.attachment.Attachment; | |
| 11 | import fr.sii.ogham.email.exception.javamail.ContentHandlerException; | |
| 12 | import fr.sii.ogham.email.message.Email; | |
| 13 | import fr.sii.ogham.email.message.content.ContentWithAttachments; | |
| 14 | ||
| 15 | public class ContentWithAttachmentsHandler implements JavaMailContentHandler { | |
| 16 | private static final Logger LOG = LoggerFactory.getLogger(ContentWithAttachmentsHandler.class); | |
| 17 | | |
| 18 | /** | |
| 19 | * The content handler used for sub content | |
| 20 | */ | |
| 21 | private JavaMailContentHandler delegate; | |
| 22 | ||
| 23 | public ContentWithAttachmentsHandler(JavaMailContentHandler delegate) { | |
| 24 | super(); | |
| 25 | this.delegate = delegate; | |
| 26 | } | |
| 27 | ||
| 28 | @Override | |
| 29 | public void setContent(MimePart message, Multipart multipart, Email email, Content content) throws ContentHandlerException { | |
| 30 |
2
1. setContent : All method instructions removed → NO_COVERAGE 2. setContent : All method instructions removed → KILLED |
ContentWithAttachments cwa = (ContentWithAttachments) content; |
| 31 | for(Attachment attachment : cwa.getAttachments()) { | |
| 32 | LOG.debug("Attaching {} to email", attachment); | |
| 33 | email.attach(attachment); | |
| 34 | } | |
| 35 | delegate.setContent(message, multipart, email, cwa.getContent()); | |
| 36 | } | |
| 37 | ||
| 38 | } | |
Mutations | ||
| 30 |
1.1 2.2 |


-
More Birthdays For Kids Under 5 Around The World
www.npr.org
The number of deaths of children under 5 has dropped by 49 percent since 1990. There are many reasons why, from better vaccines and health workers to ...
-
Going—and Listening—to India
www.gatesnotes.com
Bill and Melinda Gates are headed to India, whose government has made ambitious commitments in a lot of the areas where the Gates Foundation works. ...
-
+SocialGood | Backplane
plussocialgood.org
PlusSocialGood.org is powered by the unique insights and experiences of its members. It’s a place where the global community of connectors comes ...
-
The Deadliest Animal in the World
www.gatesnotes.com
Bill Gates introduces Mosquito Week on his personal blog, the Gates Notes. Everything posted this week is dedicated to this deadly creature. ...
-
How to manage all your financial affairs from a $20 mobile phone
qz.com
"I feel like a caveman who’s just been handed a Bic lighter," reported Charles Graeber, a writer for Bloomberg Businessweek who recently went to ...
-
Pay-as-you-go solar startup signs up 100K solar users in East Africa
gigaom.com
Mobile payment enabled solar is working its way across rural Africa and India.
-
Inspiring Quotes From Social Good Summit 2014
mashable.com
These thought-provoking quotes represent key takeaways from this year's Social Good Summit.
-
Water for Ethiopia
give.water.org
Help John Green forever change the lives of 4,000 people. Contribute
-
Join the fight against extreme poverty
www.one.org
Take action now and join the fight against extreme poverty and preventable diseases.
-
Extreme Poverty: Choices
www.youtube.com
Extreme poverty is commonly defined as living on less than $1.25 per day. But extreme poverty is more than just a measure of daily income - it is the ...
 Hans Rosling, with his famous charts of global population, health and income data (and an extra-extra-long ...
 Hans Rosling, with his famous charts of global population, health and income data (and an extra-extra-long ...
-
How the global banana industry is killing the world’s favorite fruit
qz.com
During harvest last year, banana farmers in Jordan and Mozambique made a chilling discovery. Their plants were no longer bearing the soft, creamy ...
-
After the Ice Bucket
www.gatesnotes.com
Steve Gleason is a former NFL player with ALS. He met with Bill Gates and shared with him what it will take to stop the disease and what he’s doing ...
-
Bill Gates and John Green Discuss Global Health
www.youtube.com
A special bonus video in which John Green and Microsoft founder Bill Gates talk about how Ethiopia has reduced its infant mortality dramatically in ...
-
When A Home Poses Health Risks, The Floor May Be The Culprit
www.npr.org
Homes with dirt floors can make people sick. Replacing them with concrete floors helps cut risks but isn't always affordable. A new project in Rwanda ...
-
Crash Course Big History: The Big Bang
www.youtube.com
CrashCourse is a fast, funny, irreverent look at history. In this episode, brothers John and Hank Green gives us their take on what makes Big History ...
-
Teachers at Their Best | Bill & Melinda Gates Foundation
www.youtube.com
To improve the educational system in the United States we need to focus on helping teachers do their best work.
-
Food Is Weird: Understanding Agriculture in the Developing World
www.youtube.com
In which John Green flies in a helicopter with Bill Gates in Ethiopia, investigates a new form of cursing, and discusses agricultural ...
-
Big History Project
www.bighistoryproject.com
Big questions about our Universe, our planet, life, and humanity. From the Big Bang to where we are going in the future, Big History covers it all.
-
The Growth Mindset
www.youtube.com
Sal talks with Stanford Professor Carol Dweck about her research on the Growth Mindset. Join the You Can Learn Anything movement at ...
-
How to Make a Teacher’s Day
www.gatesnotes.com
You can help a teacher start the school year off right. Make a donation via DonorsChoose.org, and the Bill and Melinda Gates Foundation will meet you ...
-
Smart Phones for Smart Kids
www.kpcb.com:80
In the coming weeks, 55 million U.S. students in grades K-12 will go back to school. In their backpacks they will carry pens, No. 2 pencils, 3-ring ...
-
Discover the best edtech products.
www.graphite.org
Graphite - Teacher Reviewed Apps, Games, & Websites Discover apps, games, and websites that will help your students learn. Graphite, from Common ...
-
6 Tools for Teachers
www.gatesnotes.com
Bill Gates highlights six promising apps and websites for making your teacher’s job easier: BetterLesson, Lightsail, ThinkCERCA, FineTune, Edmondo, ...
-
How Teachers Learn
www.gatesnotes.com
Melinda Gates recently met with a group of teachers to discuss what gets them excited about their job—and what they struggle with. Six of them shared ...
-
How Teachers Spend Their Summer
www.youtube.com
Melinda Gates has learned that a lot of what she’s heard about the profession of teaching is wrong. For example, the myth that teacher’s get summers ...
-
“It’s Like You’re Conducting an Orchestra”
www.gatesnotes.com
Bill Gates shares what he learned from Katie Brown, Washington state’s 2014 Teacher of the Year.
-
Bill Gates Meets with Katie Brown, Washington State Teacher of the Year
www.youtube.com
From the minute you meet Katie Brown, you get the feeling she’s an amazing teacher. You immediately think: I would love for my kids to be in her ...


Tests that command-line API methods behave similarly to native code by returning '[Command Line API]' via toString().


| PERLDEBGUTS(1) | Perl Programmers Reference Guide | PERLDEBGUTS(1) |
For example, whenever you call Perl's built-in "caller" function from the package "DB", the arguments that the corresponding stack frame was called with are copied to the @DB::args array. These mechanisms are enabled by calling Perl with the -d switch. Specifically, the following additional features are enabled (cf. "$^P" in perlvar):
Values in this array are magical in numeric context: they compare equal to zero only if the line is not breakable.
The same holds for evaluated strings that contain subroutines, or which are currently being executed. The $filename for "eval"ed strings looks like "(eval 34)".
If the call is to an lvalue subroutine, and &DB::lsub is defined &DB::lsub(args) is called instead, otherwise falling back to &DB::sub(args).
Note that if &DB::sub needs external data for it to work, no subroutine call is possible without it. As an example, the standard debugger's &DB::sub depends on the $DB::deep variable (it defines how many levels of recursion deep into the debugger you can go before a mandatory break). If $DB::deep is not defined, subroutine calls are not possible, even though &DB::sub exists.
The "PERL5DB" environment variable can be used to define a debugger. For example, the minimal "working" debugger (it actually doesn't do anything) consists of one line:
sub DB::DB {}
It can easily be defined like this:
$ PERL5DB="sub DB::DB {}" perl -d your-script
Another brief debugger, slightly more useful, can be created with only the line:
sub DB::DB {print ++$i; scalar <STDIN>}
This debugger prints a number which increments for each statement encountered and waits for you to hit a newline before continuing to the next statement.
The following debugger is actually useful:
{ package DB; sub DB {} sub sub {print ++$i, " $sub\n"; &$sub} }
It prints the sequence number of each subroutine call and the name of the called subroutine. Note that &DB::sub is being compiled into the package "DB" through the use of the "package" directive.
When it starts, the debugger reads your rc file (./.perldb or ~/.perldb under Unix), which can set important options. (A subroutine (&afterinit) can be defined here as well; it is executed after the debugger completes its own initialization.)
After the rc file is read, the debugger reads the PERLDB_OPTS environment variable and uses it to set debugger options. The contents of this variable are treated as if they were the argument of an "o ..." debugger command (q.v. in "Configurable Options" in perldebug).
Debugger Internal Variables
In addition to the file and subroutine-related variables mentioned above, the debugger also maintains various magical internal variables.
Values in this array are magical in numeric context: they compare equal to zero only if the line is not breakable.
As previously noted, individual entries (as opposed to the whole hash) are settable. Perl only cares about Boolean true here, although the values used by perl5db.pl have the form "$break_condition\0$action".
Debugger Customization Functions
Some functions are provided to simplify customization.
Note that any variables and functions that are not documented in this manpages (or in perldebug) are considered for internal use only, and as such are subject to change without notice.
$ perl -de 42 Stack dump during die enabled outside of evals. Loading DB routines from perl5db.pl patch level 0.94 Emacs support available. Enter h or 'h h' for help. main::(-e:1): 0 DB<1> sub foo { 14 } DB<2> sub bar { 3 } DB<3> t print foo() * bar() main::((eval 172):3): print foo() + bar(); main::foo((eval 168):2): main::bar((eval 170):2): 42
with this one, once the "o"ption "frame=2" has been set:
DB<4> o f=2 frame = '2' DB<5> t print foo() * bar() 3: foo() * bar() entering main::foo 2: sub foo { 14 }; exited main::foo entering main::bar 2: sub bar { 3 }; exited main::bar 42
By way of demonstration, we present below a laborious listing resulting from setting your "PERLDB_OPTS" environment variable to the value "f=n N", and running perl -d -V from the command line. Examples using various values of "n" are shown to give you a feel for the difference between settings. Long though it may be, this is not a complete listing, but only excerpts.
entering main::BEGIN entering Config::BEGIN Package lib/Exporter.pm. Package lib/Carp.pm. Package lib/Config.pm. entering Config::TIEHASH entering Exporter::import entering Exporter::export entering Config::myconfig entering Config::FETCH entering Config::FETCH entering Config::FETCH entering Config::FETCH
entering main::BEGIN entering Config::BEGIN Package lib/Exporter.pm. Package lib/Carp.pm. exited Config::BEGIN Package lib/Config.pm. entering Config::TIEHASH exited Config::TIEHASH entering Exporter::import entering Exporter::export exited Exporter::export exited Exporter::import exited main::BEGIN entering Config::myconfig entering Config::FETCH exited Config::FETCH entering Config::FETCH exited Config::FETCH entering Config::FETCH
in $=main::BEGIN() from /dev/null:0 in $=Config::BEGIN() from lib/Config.pm:2 Package lib/Exporter.pm. Package lib/Carp.pm. Package lib/Config.pm. in $=Config::TIEHASH('Config') from lib/Config.pm:644 in $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0 in $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from li in @=Config::myconfig() from /dev/null:0 in $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574 in $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574 in $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574 in $=Config::FETCH(ref(Config), 'PERL_SUBVERSION') from lib/Config.pm:574 in $=Config::FETCH(ref(Config), 'osname') from lib/Config.pm:574 in $=Config::FETCH(ref(Config), 'osvers') from lib/Config.pm:574
in $=main::BEGIN() from /dev/null:0 in $=Config::BEGIN() from lib/Config.pm:2 Package lib/Exporter.pm. Package lib/Carp.pm. out $=Config::BEGIN() from lib/Config.pm:0 Package lib/Config.pm. in $=Config::TIEHASH('Config') from lib/Config.pm:644 out $=Config::TIEHASH('Config') from lib/Config.pm:644 in $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0 in $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/ out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/ out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0 out $=main::BEGIN() from /dev/null:0 in @=Config::myconfig() from /dev/null:0 in $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574 out $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574 in $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574 out $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574 in $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574 out $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574 in $=Config::FETCH(ref(Config), 'PERL_SUBVERSION') from lib/Config.pm:574
in $=main::BEGIN() from /dev/null:0 in $=Config::BEGIN() from lib/Config.pm:2 Package lib/Exporter.pm. Package lib/Carp.pm. out $=Config::BEGIN() from lib/Config.pm:0 Package lib/Config.pm. in $=Config::TIEHASH('Config') from lib/Config.pm:644 out $=Config::TIEHASH('Config') from lib/Config.pm:644 in $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0 in $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/E out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/E out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0 out $=main::BEGIN() from /dev/null:0 in @=Config::myconfig() from /dev/null:0 in $=Config::FETCH('Config=HASH(0x1aa444)', 'package') from lib/Config.pm:574 out $=Config::FETCH('Config=HASH(0x1aa444)', 'package') from lib/Config.pm:574 in $=Config::FETCH('Config=HASH(0x1aa444)', 'baserev') from lib/Config.pm:574 out $=Config::FETCH('Config=HASH(0x1aa444)', 'baserev') from lib/Config.pm:574
in $=CODE(0x15eca4)() from /dev/null:0 in $=CODE(0x182528)() from lib/Config.pm:2 Package lib/Exporter.pm. out $=CODE(0x182528)() from lib/Config.pm:0 scalar context return from CODE(0x182528): undef Package lib/Config.pm. in $=Config::TIEHASH('Config') from lib/Config.pm:628 out $=Config::TIEHASH('Config') from lib/Config.pm:628 scalar context return from Config::TIEHASH: empty hash in $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0 in $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/Exporter.pm:171 out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/Exporter.pm:171 scalar context return from Exporter::export: '' out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0 scalar context return from Exporter::import: ''
In all cases shown above, the line indentation shows the call tree. If bit 2 of "frame" is set, a line is printed on exit from a subroutine as well. If bit 4 is set, the arguments are printed along with the caller info. If bit 8 is set, the arguments are printed even if they are tied or references. If bit 16 is set, the return value is printed, too.
When a package is compiled, a line like this
Package lib/Carp.pm.
is printed with proper indentation.
If your perl is compiled with "-DDEBUGGING", you may use the -Dr flag on the command line, and "-Drv" for more verbose information.
Otherwise, one can "use re 'debug'", which has effects at both compile time and run time. Since Perl 5.9.5, this pragma is lexically scoped.
Compiling REx '[bc]d(ef*g)+h[ij]k$' size 45 Got 364 bytes for offset annotations. first at 1 rarest char g at 0 rarest char d at 0 1: ANYOF[bc](12) 12: EXACT <d>(14) 14: CURLYX[0] {1,32767}(28) 16: OPEN1(18) 18: EXACT <e>(20) 20: STAR(23) 21: EXACT <f>(0) 23: EXACT <g>(25) 25: CLOSE1(27) 27: WHILEM[1/1](0) 28: NOTHING(29) 29: EXACT <h>(31) 31: ANYOF[ij](42) 42: EXACT <k>(44) 44: EOL(45) 45: END(0) anchored 'de' at 1 floating 'gh' at 3..2147483647 (checking floating) stclass 'ANYOF[bc]' minlen 7 Offsets: [45] 1[4] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 5[1] 0[0] 12[1] 0[0] 6[1] 0[0] 7[1] 0[0] 9[1] 8[1] 0[0] 10[1] 0[0] 11[1] 0[0] 12[0] 12[0] 13[1] 0[0] 14[4] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 18[1] 0[0] 19[1] 20[0] Omitting $` $& $' support.
The first line shows the pre-compiled form of the regex. The second shows the size of the compiled form (in arbitrary units, usually 4-byte words) and the total number of bytes allocated for the offset/length table, usually 4+"size"*8. The next line shows the label id of the first node that does a match.
The
anchored 'de' at 1 floating 'gh' at 3..2147483647 (checking floating) stclass 'ANYOF[bc]' minlen 7
line (split into two lines above) contains optimizer information. In the example shown, the optimizer found that the match should contain a substring "de" at offset 1, plus substring "gh" at some offset between 3 and infinity. Moreover, when checking for these substrings (to abandon impossible matches quickly), Perl will check for the substring "gh" before checking for the substring "de". The optimizer may also use the knowledge that the match starts (at the "first" id) with a character class, and no string shorter than 7 characters can possibly match.
The fields of interest which may appear in this line are
If a substring is known to match at end-of-line only, it may be followed by "$", as in "floating 'k'$".
The optimizer-specific information is used to avoid entering (a slow) regex engine on strings that will not definitely match. If the "isall" flag is set, a call to the regex engine may be avoided even when the optimizer found an appropriate place for the match.
Above the optimizer section is the list of nodes of the compiled form of the regex. Each line has format
" "id: TYPE OPTIONAL-INFO (next-id)
# TYPE arg-description [num-args] [longjump-len] DESCRIPTION # Exit points END no End of program. SUCCEED no Return from a subroutine, basically. # Line Start Anchors: SBOL no Match "" at beginning of line: /^/, /\A/ MBOL no Same, assuming multiline: /^/m # Line End Anchors: SEOL no Match "" at end of line: /$/ MEOL no Same, assuming multiline: /$/m EOS no Match "" at end of string: /\z/ # Match Start Anchors: GPOS no Matches where last m//g left off. # Word Boundary Opcodes: BOUND no Like BOUNDA for non-utf8, otherwise match "" between any Unicode \w\W or \W\w BOUNDL no Like BOUND/BOUNDU, but \w and \W are defined by current locale BOUNDU no Match "" at any boundary of a given type using /u rules. BOUNDA no Match "" at any boundary between \w\W or \W\w, where \w is [_a-zA-Z0-9] NBOUND no Like NBOUNDA for non-utf8, otherwise match "" between any Unicode \w\w or \W\W NBOUNDL no Like NBOUND/NBOUNDU, but \w and \W are defined by current locale NBOUNDU no Match "" at any non-boundary of a given type using using /u rules. NBOUNDA no Match "" betweeen any \w\w or \W\W, where \w is [_a-zA-Z0-9] # [Special] alternatives: REG_ANY no Match any one character (except newline). SANY no Match any one character. ANYOF sv Match character in (or not in) this class, charclass single char match only ANYOFD sv Like ANYOF, but /d is in effect charclass ANYOFL sv Like ANYOF, but /l is in effect charclass ANYOFPOSIXL sv Like ANYOFL, but matches [[:posix:]] charclass_ classes posixl ANYOFH sv 1 Like ANYOF, but only has "High" matches, none in the bitmap; non-zero flags "f" means "f" is the first UTF-8 byte shared in common by all code points matched ANYOFM byte 1 Like ANYOF, but matches an invariant byte as determined by the mask and arg NANYOFM byte 1 complement of ANYOFM # POSIX Character Classes: POSIXD none Some [[:class:]] under /d; the FLAGS field gives which one POSIXL none Some [[:class:]] under /l; the FLAGS field gives which one POSIXU none Some [[:class:]] under /u; the FLAGS field gives which one POSIXA none Some [[:class:]] under /a; the FLAGS field gives which one NPOSIXD none complement of POSIXD, [[:^class:]] NPOSIXL none complement of POSIXL, [[:^class:]] NPOSIXU none complement of POSIXU, [[:^class:]] NPOSIXA none complement of POSIXA, [[:^class:]] CLUMP no Match any extended grapheme cluster sequence # Alternation # BRANCH The set of branches constituting a single choice are # hooked together with their "next" pointers, since # precedence prevents anything being concatenated to # any individual branch. The "next" pointer of the last # BRANCH in a choice points to the thing following the # whole choice. This is also where the final "next" # pointer of each individual branch points; each branch # starts with the operand node of a BRANCH node. # BRANCH node Match this alternative, or the next... # Literals EXACT str Match this string (preceded by length). EXACTL str Like EXACT, but /l is in effect (used so locale-related warnings can be checked for). EXACTF str Match this string using /id rules (w/len); (string not UTF-8, not guaranteed to be folded). EXACTFL str Match this string using /il rules (w/len); (string not guaranteed to be folded). EXACTFU str Match this string using /iu rules (w/len); (string folded iff in UTF-8; non-UTF8 folded length <= unfolded). EXACTFAA str Match this string using /iaa rules (w/len) (string folded iff in UTF-8; non-UTF8 folded length <= unfolded). EXACTFUP str Match this string using /iu rules (w/len); (string not UTF-8, not guaranteed to be folded; and its Problematic). EXACTFLU8 str Like EXACTFU, but use /il, UTF-8, folded, and everything in it is above 255. EXACTFAA_NO_TRIE str Match this string using /iaa rules (w/len) (string not UTF-8, not guaranteed to be folded, not currently trie-able). EXACT_ONLY8 str Like EXACT, but only UTF-8 encoded targets can match EXACTFU_ONLY8 str Like EXACTFU, but only UTF-8 encoded targets can match EXACTFU_S_EDGE str /di rules, but nothing in it precludes /ui, except begins and/or ends with [Ss]; (string not UTF-8; compile-time only). # Do nothing types NOTHING no Match empty string. # A variant of above which delimits a group, thus stops optimizations TAIL no Match empty string. Can jump here from outside. # Loops # STAR,PLUS '?', and complex '*' and '+', are implemented as # circular BRANCH structures. Simple cases # (one character per match) are implemented with STAR # and PLUS for speed and to minimize recursive plunges. # STAR node Match this (simple) thing 0 or more times. PLUS node Match this (simple) thing 1 or more times. CURLY sv 2 Match this simple thing {n,m} times. CURLYN no 2 Capture next-after-this simple thing CURLYM no 2 Capture this medium-complex thing {n,m} times. CURLYX sv 2 Match this complex thing {n,m} times. # This terminator creates a loop structure for CURLYX WHILEM no Do curly processing and see if rest matches. # Buffer related # OPEN,CLOSE,GROUPP ...are numbered at compile time. OPEN num 1 Mark this point in input as start of #n. CLOSE num 1 Close corresponding OPEN of #n. SROPEN none Same as OPEN, but for script run SRCLOSE none Close preceding SROPEN REF num 1 Match some already matched string REFF num 1 Match already matched string, using /di rules. REFFL num 1 Match already matched string, using /li rules. REFFU num 1 Match already matched string, usng /ui. REFFA num 1 Match already matched string, using /aai rules. # Named references. Code in regcomp.c assumes that these all are after # the numbered references NREF no-sv 1 Match some already matched string NREFF no-sv 1 Match already matched string, using /di rules. NREFFL no-sv 1 Match already matched string, using /li rules. NREFFU num 1 Match already matched string, using /ui rules. NREFFA num 1 Match already matched string, using /aai rules. # Support for long RE LONGJMP off 1 1 Jump far away. BRANCHJ off 1 1 BRANCH with long offset. # Special Case Regops IFMATCH off 1 1 Succeeds if the following matches; non-zero flags "f", next_off "o" means lookbehind assertion starting "f..(f-o)" characters before current UNLESSM off 1 1 Fails if the following matches; non-zero flags "f", next_off "o" means lookbehind assertion starting "f..(f-o)" characters before current SUSPEND off 1 1 "Independent" sub-RE. IFTHEN off 1 1 Switch, should be preceded by switcher. GROUPP num 1 Whether the group matched. # The heavy worker EVAL evl/flags Execute some Perl code. 2L # Modifiers MINMOD no Next operator is not greedy. LOGICAL no Next opcode should set the flag only. # This is not used yet RENUM off 1 1 Group with independently numbered parens. # Trie Related # Behave the same as A|LIST|OF|WORDS would. The '..C' variants # have inline charclass data (ascii only), the 'C' store it in the # structure. TRIE trie 1 Match many EXACT(F[ALU]?)? at once. flags==type TRIEC trie Same as TRIE, but with embedded charclass charclass data AHOCORASICK trie 1 Aho Corasick stclass. flags==type AHOCORASICKC trie Same as AHOCORASICK, but with embedded charclass charclass data # Regex Subroutines GOSUB num/ofs 2L recurse to paren arg1 at (signed) ofs arg2 # Special conditionals NGROUPP no-sv 1 Whether the group matched. INSUBP num 1 Whether we are in a specific recurse. DEFINEP none 1 Never execute directly. # Backtracking Verbs ENDLIKE none Used only for the type field of verbs OPFAIL no-sv 1 Same as (?!), but with verb arg ACCEPT no-sv/num Accepts the current matched string, with 2L verbar # Verbs With Arguments VERB no-sv 1 Used only for the type field of verbs PRUNE no-sv 1 Pattern fails at this startpoint if no- backtracking through this MARKPOINT no-sv 1 Push the current location for rollback by cut. SKIP no-sv 1 On failure skip forward (to the mark) before retrying COMMIT no-sv 1 Pattern fails outright if backtracking through this CUTGROUP no-sv 1 On failure go to the next alternation in the group # Control what to keep in $&. KEEPS no $& begins here. # New charclass like patterns LNBREAK none generic newline pattern # SPECIAL REGOPS # This is not really a node, but an optimized away piece of a "long" # node. To simplify debugging output, we mark it as if it were a node OPTIMIZED off Placeholder for dump. # Special opcode with the property that no opcode in a compiled program # will ever be of this type. Thus it can be used as a flag value that # no other opcode has been seen. END is used similarly, in that an END # node cant be optimized. So END implies "unoptimizable" and PSEUDO # mean "not seen anything to optimize yet". PSEUDO off Pseudo opcode for internal use.
Following the optimizer information is a dump of the offset/length table, here split across several lines:
Offsets: [45] 1[4] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 5[1] 0[0] 12[1] 0[0] 6[1] 0[0] 7[1] 0[0] 9[1] 8[1] 0[0] 10[1] 0[0] 11[1] 0[0] 12[0] 12[0] 13[1] 0[0] 14[4] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 18[1] 0[0] 19[1] 20[0]
The first line here indicates that the offset/length table contains 45 entries. Each entry is a pair of integers, denoted by "offset[length]". Entries are numbered starting with 1, so entry #1 here is "1[4]" and entry #12 is "5[1]". "1[4]" indicates that the node labeled "1:" (the "1: ANYOF[bc]") begins at character position 1 in the pre-compiled form of the regex, and has a length of 4 characters. "5[1]" in position 12 indicates that the node labeled "12:" (the "12: EXACT <d>") begins at character position 5 in the pre-compiled form of the regex, and has a length of 1 character. "12[1]" in position 14 indicates that the node labeled "14:" (the "14: CURLYX[0] {1,32767}") begins at character position 12 in the pre-compiled form of the regex, and has a length of 1 character---that is, it corresponds to the "+" symbol in the precompiled regex.
"0[0]" items indicate that there is no corresponding node.
If the regex engine was entered, the output may look like this:
Matching '[bc]d(ef*g)+h[ij]k$' against 'abcdefg__gh__' Setting an EVAL scope, savestack=3 2 <ab> <cdefg__gh_> | 1: ANYOF 3 <abc> <defg__gh_> | 11: EXACT <d> 4 <abcd> <efg__gh_> | 13: CURLYX {1,32767} 4 <abcd> <efg__gh_> | 26: WHILEM 0 out of 1..32767 cc=effff31c 4 <abcd> <efg__gh_> | 15: OPEN1 4 <abcd> <efg__gh_> | 17: EXACT <e> 5 <abcde> <fg__gh_> | 19: STAR EXACT <f> can match 1 times out of 32767... Setting an EVAL scope, savestack=3 6 <bcdef> <g__gh__> | 22: EXACT <g> 7 <bcdefg> <__gh__> | 24: CLOSE1 7 <bcdefg> <__gh__> | 26: WHILEM 1 out of 1..32767 cc=effff31c Setting an EVAL scope, savestack=12 7 <bcdefg> <__gh__> | 15: OPEN1 7 <bcdefg> <__gh__> | 17: EXACT <e> restoring \1 to 4(4)..7 failed, try continuation... 7 <bcdefg> <__gh__> | 27: NOTHING 7 <bcdefg> <__gh__> | 28: EXACT <h> failed... failed...
The most significant information in the output is about the particular node of the compiled regex that is currently being tested against the target string. The format of these lines is
" "STRING-OFFSET <PRE-STRING> <POST-STRING> |ID: TYPE
The TYPE info is indented with respect to the backtracking level. Other incidental information appears interspersed within.
Assume that an integer cannot take less than 20 bytes of memory, a float cannot take less than 24 bytes, a string cannot take less than 32 bytes (all these examples assume 32-bit architectures, the result are quite a bit worse on 64-bit architectures). If a variable is accessed in two of three different ways (which require an integer, a float, or a string), the memory footprint may increase yet another 20 bytes. A sloppy malloc(3) implementation can inflate these numbers dramatically.
On the opposite end of the scale, a declaration like
sub foo;
may take up to 500 bytes of memory, depending on which release of Perl you're running.
Anecdotal estimates of source-to-compiled code bloat suggest an eightfold increase. This means that the compiled form of reasonable (normally commented, properly indented etc.) code will take about eight times more space in memory than the code took on disk.
The -DL command-line switch is obsolete since circa Perl 5.6.0 (it was available only if Perl was built with "-DDEBUGGING"). The switch was used to track Perl's memory allocations and possible memory leaks. These days the use of malloc debugging tools like Purify or valgrind is suggested instead. See also "PERL_MEM_LOG" in perlhacktips.
One way to find out how much memory is being used by Perl data structures is to install the Devel::Size module from CPAN: it gives you the minimum number of bytes required to store a particular data structure. Please be mindful of the difference between the size() and total_size().
If Perl has been compiled using Perl's malloc you can analyze Perl memory usage by setting $ENV{PERL_DEBUG_MSTATS}.
$ PERL_DEBUG_MSTATS=2 perl -e "require Carp" Memory allocation statistics after compilation: (buckets 4(4)..8188(8192) 14216 free: 130 117 28 7 9 0 2 2 1 0 0 437 61 36 0 5 60924 used: 125 137 161 55 7 8 6 16 2 0 1 74 109 304 84 20 Total sbrk(): 77824/21:119. Odd ends: pad+heads+chain+tail: 0+636+0+2048. Memory allocation statistics after execution: (buckets 4(4)..8188(8192) 30888 free: 245 78 85 13 6 2 1 3 2 0 1 315 162 39 42 11 175816 used:<PHONE_NUMBER> 111 26 22 11 27 2 1 1<PHONE_NUMBER> 798 39 Total sbrk(): 215040/47:145. Odd ends: pad+heads+chain+tail: 0+2192+0+6144.
It is possible to ask for such a statistic at arbitrary points in your execution using the mstat() function out of the standard Devel::Peek module.
Here is some explanation of that format:
The line above describes the limits of buckets currently in use. Each bucket has two sizes: memory footprint and the maximal size of user data that can fit into this bucket. Suppose in the above example that the smallest bucket were size 4. The biggest bucket would have usable size 8188, and the memory footprint would be 8192.
In a Perl built for debugging, some buckets may have negative usable size. This means that these buckets cannot (and will not) be used. For larger buckets, the memory footprint may be one page greater than a power of 2. If so, the corresponding power of two is printed in the "APPROX" field above.
For example, suppose under the previous example, the memory footprints were
free: 8 16 32 64 128<PHONE_NUMBER> 2048 4096 8192 4 12 24 48 80
With a non-"DEBUGGING" perl, the buckets starting from 128 have a 4-byte overhead, and thus an 8192-long bucket may take up to 8188-byte allocations.
Memory allocated by external libraries is not counted.
| 2019-10-21 | perl v5.30.3 |


ASP.Net Core project.json
Class Libraries: netstandard1.6
Libraries are based on a standard .net API (does not apply to Consoles and ASP/MVC, which are also consoles)
The standard .net API at release is 1.6.0 (there is a 1.6.1 but "there is no benefit in referencing it for libraries")
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
Consoles (incl ASP, Tests): netcoreapp1.0
Executables (consoles and ASP websites) need a concrete framework to run them, not an API. A simple console looks like this (ASP has more specific dependencies)
This is the standard console project.json at RTM. In consoles, the framework import "dnxcore50" allows old RC1 packages to be used; the ASP template imports "dotnet5.6" for RC2 packages.
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
netcoreapp1.1 (Nov 2016)
A version bump- netcoreapp1.0 to 1.1, dependency Microsoft.NETCore.App goes to 1.1.0
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
}
}
}
If you multi-target (net4.6 and Core 1.0, for instance), you'll need to push the core dependency (Microsoft.NETCore.App) under the core framework (netcoreapp1.0). If you have older code (not netstandard1.6), you quickly run into conflicts and have to start #if /#endif through your code.