Around 8:40 AM yesterday I took a magnesium supplement and 30mg of 2C-E. 9:15 I felt very very nauseas and vomited. I vomited again around 9:30. First alerts were noticed around 9:20 or so, as I was coming back from the bathroom. I was chatting with some goons on irc when it started to come on strong. Around 10:00 AM things were getting very weird. I decided to drop off the computer for a bit, although I would check in peridically throughout the trip. Smoked a bowl at this time.
I layed on the couch for a bit. There was definitely some physical discomfort. Stomach pains, tight chest, raised temperature. It really felt like I had the flu or something. I kept forgetting that I had taken 2C-E and for some reason I believed I had taken some potion made from plants in the jungle. I was having CEV of jungle vines growing through my vision. Very disorientated. Smoked a bowl of cannabis to relieve some of the tension and unpleasantness.
I went into my bedroom and put a Grateful Dead show (Cornell 5/8/77) in my CD player and put on my headphones. After about 15 minutes or so of listening to the show, I was AT the show. I mean, I felt as though I was standing in crowd at a Grateful Dead show. It was like a completely real lucid dream. I could look around, see the stage, smell the pot and patchouli in the air. Amazing! I stayed in this little trance for the majority of the first set, right up until the end of Dancing in the Streets. When they left the stage, I came out of it, visuals were phenomenal with open eyes; Merging, morphing, rainbows and fractals on everything in the room. Put in Shpongle - Are You Shpongled to see what would happen. Closed eye visuals were 3D and morphing to the beat of the music. It was very intense! It was almost abrasive. After awhile of that I had to turn off the music. It was too much of a burden on me.
I found when I would just lie down with no light or sound and let myself go I could easily go out of body, or go to another world, or create a movie, anything seemed possible. The control I had was amazing. I spent up until around 2:00 just lying in my bed exploring these new worlds. Every now and then I'd get jolted back into reality for some reason or another.
I was still tripping quite hard after 2:00 when I finally decided to leave the bed for good. Meditated for around 15 minutes at this time. It was almost like instanteous bliss. Dropped right into nothingness. Excellent...
Took some 5-HTP and then played with this program called ZoneRings for awhile and watched some ridiculous TV. Chatted on IRC and a friend came by. We chatted and smoked for a bit. I was very hungry at this time. Ate some crackers and a granola bar. Came back down to baseline around 5:00 or so. Although, throughout the night colors were much more pronounced. The afterglow stays for quite awhile.
I found this dose to be very intense at times, but also allows me to 'get some work done.' I had many revalations about all aspects of my life. The introspection is great. I'd rate this chemical up there with lsd and psilocybin. It's one of the magical ones.
The only down side to the trip was the nausea and vomiting as well as some physical discomfort. Other than that it was a wonderful experience.
This dose is probably not right for everyone, but it's just right for me I'll probably take 50mg of phenegren suppositories next time to combat the nausea. Will definitely be doing more work with substance in the future.
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.


--- layout: apidoc title: Tile5 API Documentation ---
extends: T5.ViewLayer
The AnimatedPathLayer is way cool :) This layer allows you to supply an array of screen / grid coordinates and have that animated using the functionality T5.Animation module. Any type of T5.PathLayer can generate an animation.
new T5.AnimatedPathLayer(params);
path
(T5.Vector[], default = []) - An array of screen / grid coordinates that will
be used as anchor points in the animation.id
(String, default = 'pathAni%autoinc') - The id of of the animation layer. The id will start with
pathAni1 and then automatically increment each time a new AnimatedPathLayer is created unless the id is
manually specified in the constructor parameters.easing
(easing function, default = COG.easing('sine.inout')) - the easing function to use for the animationdrawIndicator
(callback, default = defaultDraw) - A callback function that is called every time the indicator for
the animation needs to be drawn. If the parameter is not specified in the constructor the default callback
is used, which simply draws a small circle at the current position of the animation.duration
(int, default = 2000) - The animation duration. See T5.Animation module information for more details.function(context, viewRect, xy, theta)
The drawIndicator parameter in the constructor allows you to specify a particular callback function that is used when drawing the indicator. The function takes the following arguments:
context
- the canvas context to draw to when drawing the indicatorviewRect
- the current viewRect to take into account when drawingxy
- the xy position where the indicator should be drawn theta
- the current angle (in radians) given the path positioning.


you can start making and uploading your posts NOW!!!!
TO UPVOTE OR DOWNVOTE A QUOTE,CLICK EITHER THE THUMBS-UP OR THUMBS-DOWN ICONS RESPECTIVELY
posted by {{quote.name}} :{{quote.completeDate|dateCount}}


Speak No Evil
Speak No Evil
For nearly ten years, through high school and into university, I blogged nightly. Most of the writing was trite and self-aggrandizing, but every once in a while I would recount a story of some noteworthy merit.
I happened to uncover some of my old writing, and re-reading it has been very fulfilling. It’s interesting to see how far one has come, and I’m fortunate enough to have a huge portal into a younger me.
As I can, I’m going to post some of the more intruging old pieces. This one is from October 24, 2006, when I was working in Scarborough during a co-op term.  Some of the original language may be offensive.)
Sometimes, the ironies I encounter in my life seem so ridiculously well placed that I’m almost tempted to believe in fate. Normally I don’t feel that everyone’s “path” is mapped out by some greater power, but rather we’re all meant to experience X amount of a given life event: disappointment, victory, defeat, love, etc. However, on days like today, it’s hard to ignore the coincidences that life always seems to manifest.
What am I talking about, you question? Well, today was my 22nd birthday, and it was today that I finally realized how “real” life is in the fair city of Toronto. I know that sounds strange, but it was only today that I really realized where I am in the grand scheme of things and how the world really is. What’s strange is that my day — and perhaps even my year — was defined by a single solitary passing of about 30 seconds or so on the bus ride home today. The event which I am referring to was over before I could even appreciate what had happened, and yet the reprecussions of what happened would leave me thinking about so much.
But enough explanation: on with the story.
A somber, lonely and long day of work was coming to a close. I’d accomplished a pretty fair amount during my time at the TDSB today, and so I was feeling fairly good as I storde out of the office and into the Sun. Though the day was coming to an end, I couldn’t help but marvel at how long it had been. It seemed like years ago that I woke up at 6 am and headed to the GO Train. It seemed like ages ago that I sat in Union awaiting the next ride east at the hands of the cancelled 7:30 train. But, all this thought was for not: the day was over and I was heading home.
As I headed into the Scarborough RT station, flashing my pass to the attendant, I noticed a young slender girl in front of me. Her body and manner seemed young, but her face appeared old and tarnished with the apparent wear that her life wrought upon her.
She proceeded down the stairs in front of me, and continued to shadow my path right up to the very bus stop where I needed to wait. We stood together, in silence, and we boarded together, seperately. I sat on one end of the three-person bench, she on the other. I surveyed the bus, as I tend to do, and my eyes fell upon hers: a smile was shared and then instantly hidden again in the frown of every-day life.
As it does most days, the bus began rolling along the urban rails of the Scarborough mid-town. People returned to their cell phones and their conversations, drowning out my thoughts. I occasionally decide to head to the station without my music on — days that I want to play the DS on the train, I tend to forego the music for battery life, and with my recent acquiring of Contact, I decided today would be such a day. Typically, this proves to be a bad decision, as the bus quickly fills with the sounds of angsty teenagers, angry and eager-to-impress urban trogldytes and the typical array of “bus characters”.
Strangely, none of the typical characters were there: the guy who picks up the trash on the bus, the crazy old man who talks to himself, the young asian kid who sells chronic over the phone as though he was making legitimate business calls, the old brown woman who absolutely cannot stand and will go out of her way to find a seat at the front of the bus, the strange skinny tall white woman who stands at the front of the bus and bottlenecks the incoming passenger traffic regardless of how many stops she has to go, the slutty high-school chica who comes on to a different prepubescent boy with each ride — all were absent on this day.
Indeed, it seemed that today’s ride would be the most dull and quick trip of the year. For almost the entire trip, the ride was relatively easy and I remained positioned a seat down from the worn girl.
Eventually, the bus came to the biggest stop on the circut: Bellamy and Ellesmere. Typically a very large transfer point for people getting on and off, only one person boarded: a mid-20s asian thug with a small mp3 player hanging from his neck and an all-around rugged and dishelved appearance. I wouldn’t have paid any special attention to him were it not for the fact that he broke the cardinal rule of male bus-goers: he sat in the middle seat between the girl and I, thus rendering me — and surely himself — uncomfortable.
Little did I know that his intentions were to do just that, very purposefully.
Within moments of the bus’ resumed driving, the man turned to the girl and quickly looked her over. As he was within earshot, I could hear everythign he was saying — despite the fact that he was doing his best to speak privately to the girl (regardless of the current surroundings). He began talking to her, and naturally I began ease-dropping. They hadn’t shown any signs of acknowledgement of each other before he sat down, so I wondered what the story was. Given the relatively impersonal tone that their conversation took to begin, I concluded that he was merely trying to woo her with his asian thug charm.
I was dead wrong.
After a few short sentences of conversation, I quickly realized that their talk had taken a turn for the worse. His mumbling became much less audible, until he uttered the sentence that would stick in my head for the rest of the day.

At first, I did a mental double-take. Did he really just say that? Was it a joke? Are they friends and he’s just playing around? When I saw her face, though, every question was answered.  Her eyes hinted with a slight touch of disbelief and she looked towards the bus driver, as though she was looking for a safety net.
The asian was quick to remove any such luxury from her mind, though, as he looked towards the bus driver and scoffed, “He won’t be able to stop me. It’ll be done before anyone notices.”
He then paused and looked towards a big white gangster-looking guy in an Echo jacket towards the front of the bus, only to remark to her “Even that big cracker won’t be able to stop me.”
At this point, I’d heard and comprehended the entire situation, and I felt that same feeling as I did oh so long agao when the slipper-criminal alerted the bus Ian and I were on that he was robbing us. A surge of adrenaline and a rush of quick planning. Should I say something? No, it isn’t my place. Yea, but that’s not right. And if he has a knife, or a gun? I really doubt that he does. Well, say you say something and a fight starts; good luck taking this bus unscathed for the rest of the semester — my mind was a volley of dedication and courage, fright and despair.
I knew in my heart of hearts that I really couldn’t do anything but look somewhat imposing and hope for the best, so I looked at her again with the grimmest face I could muster, and when she made eye contact with me, he took notice.
He turned to me and with the most scornful eyes I’ve seen in my life, did a once over of me. Clad in my business-casual attire, I surely didn’t look the role of one who would pose a fight, though surely my size did me a service that many do not have the luxury of having; it paid to be a big guy today.
Not one to look away, I stared right back at him for what seemed like an eternity. Sensing her desperation, I allowed my eyes to shift back to her, and then him again, noticing that he’d locked on me and seemed to offer no chance of letting go. I then looked towards the big white gangster guy who the asian had called out earlier, and he looked back at me — he was aware of what was going on, and had heard the cracker remark.
Not a single word punctured the tense air. The asian followed my eyes and then smirked. He stood, fixed his mp3 player, tapped the girl on the face and then headed for the front of the bus, saying thank you to the bus driver before looking back and exiting the bus.
With door closed and bus in motion, I looked towards the girl. Her dam finally burst and she began sniffling and quickly swabbing the tears from her eyes. The white gangster relinquished his interest and returned to his cell phone, but I wasn’t so quick to let the preceeding air dissapate. The entire bus was oblivious to the goings-on.
It was now just her and I.
I couldn’t help but watch her cry; it was such a surreal moment — perhaps the most uncanny of my entire life. It was then that I realized how sheltered my life truly had been. What crime had I seen? What reality had I ever witnessed?
 I saw no violence today, but merely the threat and feeling of impending violence was enough to jar me out of the complacency, the naivity that shrouded my life.
It was only today, on my 22nd birthday, that I realized just how real the world is. For all I know, that girl could be dead now. All for just a bag of coke, or a turned-down trick.
Her sadness engulfed me, and I felt incredibly ashamed of not being able to do anything. With eyes still locked on her, she turned to me and sought consolment without saying a word. I mustered a short blast of speech into the air, though quickly locked up not a moment later: “Are you okay?” Unable to produce any vocalization of the terror and fear that was so visibly evident in her quaking frame, she simply nodded and resumed her tears. It was then that I recalled I had some kleenex in my bag, so I reached in and passed her a handful. She dried her eyes, but they remained so only for a moment before the next tide commenced. For the remainder of the trip, not a word was said. To me, it seemed as though the once fury-inducing air pollution of the bus chatter had grown silent: all that remained was my incredibly loud thoughts.
 She didn’t look back, even as the bus passed over the horizon: never looking back, just staring ever-forward as though she’d already been killed and buried.
So was the trip home today; a tiny incident that had huge reprecussions.  I’m no Joyce. I’ve spent too many words on this already. I’m tired.
Unlike previous years, I have no giant recap and projections for the coming year; that complacent routine has been rumbled right out of me. Perhaps I’ll say something tomorrow, perhaps not.
For now, all I can think about is the look on that girl’s face. The look of hopless, utter desperation — forever stained on the canvas of my mind — tjat looked so frightening familiar, as though I’d seen it somewhere before, looking back at me.


| Action | Status |
|
Tap repeatedly to emphasize pausing. |
|
Notice how speed-wise, it varies quite a bit. In fact, in some cases, it is actually slower to execute a worker because it is quite expensive to copy over a dataset from the browser into a worker, and then back from a worker into the browser. That said, workers really help not annoy your users with slow, blocking processing, and boost the perceived speed of your application. Heh, cool.
Further reading: there's more kinds of workers and a lot more to read and explore. I hope this helped you!


Unfortunately, your browser is currently unsupported by our web application. We are sorry for the inconvenience. Please use one of the supported browsers listed below, or draw the image you want using an offline tool.
Supported browsers: Chrome, Firefox, Safari


Contact Now
Ownership
Amjad Ali
Data Entry Operator
Dairy and Rural Development Foundation (USAID PROJECT)
159/4 Lalaz Colony
Vehari Punjab
Pakistan
Email<EMAIL_ADDRESS>Mobile: +92<PHONE_NUMBER>
skype: amjad.vehari2
ALl right reserved to Amjad Ali


Mesh Component
A mesh component is used to instantiate a mesh asset. Mesh components are purely visual, they have no physical interaction, so other physical objects cannot collide with them. To add physical interaction capabilities, an object has to have an additional collision shape and a static or dynamic physics actor.
Mesh components will cast shadows when the CastShadow
tag is set on the owner game object. The referenced mesh is rendered according to the used materials, which determine lighting and other visual effects.
Component Properties
Mesh
: The mesh asset to render.Color
: A tint color for the mesh instance. Typically this is just multiplied into the diffuse color of the mesh materials, though if the material uses a visual shader (TODO), the mesh color can be used to represent arbitrary input data, for example to blend between material states.Materials
: By default the referenced mesh is rendered with the materials that are set up inside the mesh asset. However, the mesh component can override the materials. Each mesh has one or many sub-meshes, meaning mesh parts that use different materials. This array allows to set an override for each of those sub-meshes.


The Robot kit Assembly Guide
Like the picture shows, the Livera Robot kit ccomes with several conponents that you need you assemble and make it to a fully functional robot. This toturial would get you through all the process of physical building and wiring,
it might take around 25 minutes
to make the robot alive. Clear up your desk, unpack the Robot kit and let begin the journey.
Parts list
The Livera Robot kit comes with following parts:
- Boards: HICAT.Livera Boardx1 Livera Motor Driver Boardx1
- Camera: Livera Camera Extend Cablex1 Livera Camera Modulex1
- Storage:2G SD Card with firmware built in
- Guidebook: Livera GuideBookx1 Livera Robot Assembly GuideBookx1
- Power: 9V Lipo Battery and Bat Carrier
- Motor: E-MAX SERVOx1 DC Gear Motor set(Motor + Motor Carrier + Wheels)x2
- Structure bits: Robot Base Acrylic Panels set, Omni-directional Wheel Set
- Screws: M2x15(+6)mm Nylon Studx4, M2x6mm Nylon Studx4, M2x6(+6)mm Nylon Studx8, M2x10(+6)mm Nylon Studx8, M2 Nylon Nutx4
- OUTPUT: LASER Beanx1
- Accessories: Stickersx1, USB Cablex1, Screwdriver(+,-)x1
Video Tutorial
We've also created a video toturial to give you a more detailed, much clear step by step toturial, would help you with:
- Pyhsical Assembly
- Webapp Guide
Step 1: Base panel build
Unpack the Livera Robot kit package, Find out the following conponents in order to build the base panel of the Robot.
- Robot Base Acrylic Panel x1
- DC Motor + Motor Carrier x2
- Omni-directional Wheel Set x1
- M2x15(+6)mm Nylon Stud x4
- M2x6mm Nylon Stud x4
- M2x6(+6)mm Nylon Stud x4
- M2 Nylon Nut x4
Notice: All the Stud could be install by hand, doesn't require and tools.
Caution:
Don't make it too tight while screwing with the Livera and Livera Motor Driver
, might have a small chance to cause damage to the board if you screw it too hard.
Assemble up the Omni-direction Wheel Set
like the picture shows, then close up with the Cover bit
, waiting for screw on the Base Panel.
- Install the motor on base panel: carefully place the
M2 Nut
onto theMotor Carrier's slot
, than catch theDC Motor
and match to the hole on theBase Panle
, notice to keep the+
sign on top as the left top of the pic shows, usingM2x6(+6) Stud
to screw through from the other side of the panel. - Install the Structure bit: place the
M2x15(+6) Stud
on top of theBase panel
, then let the6mm screw bit
through the hole and screw into theM2x6mm Stud.
Step 2: Body build
- Install the Livera Motor Driver: simply place by matching to the
Stud.
- Install the Structure bit: Screw
M2x10(+6)mm Stud
on top.
Caution:
Don't make it too tight while screwing with the Livera and Livera Motor Driver
, might have a small chance to cause damage to the board if you screw it too hard.
- Install HICAT.Livera with Extend Cable: carefully stack
Livera
on top ofLivera Motor Driver,
do check for theI/O ports
and theoutline
to see weather it is matched to theLivera Motor Driver.
- Install the Structure bit: Screw
M2x10(+6)mm Stud
on top of Livera.
Caution:
Don't make it too tight while screwing with the Livera and Livera Motor Driver
, might have a small chance to cause damage to the board if you screw it too hard.
Step 3: Top build
- Install the top Acrylic Panel: place the
Top Acrylic Panel
, fix the panle by screw theM2x6(+6)mm Stud
on top. - Stick the Power case and Servo: unpack the
3M Sticker,
stick the conponents as the image shows. - Connect Power: connect the 2.54mm Power connector from
Power case
toLivera Motor Driver.
- Install the Camera pan-tilt: screw the Servo Arm Set form the
EMAX Servo set
on theCamera Pan-tilt.
- Install Camera Module: carefully place the camera module on the
Acrylic Camera Pan-tilt
, usingM2 Rivet
to fix it. - Install Camera Extend Cable and Laser Bean: install the conponents as the picture shows, notice that the
direction
of the camera module should bematch together
according to theindicate drawings.
Step 4: Wiring
- Wiring: wire up all the electronics(Motors, Laser, Servo) as the picture shows, for the
DC Motor
wring, you would need to use the screwdriver to fix the wire into the adapter. - Install SD card: put the
SD card
into the SD slot.
- Install Battery: put the
9v chargable battery
into thePower Case.
- Power up to init the Servo: switch on the
Power Switch
From the Motor Driver, wait until heardtwo movement
from theServo,
then put theCamera Pan-tilt
on theServo
in ahorizon direction,
screw it up using the smallest screw from the Servo Box. - Enjoy: pick up you cell phone, connect to the
Livera's wifi
,
ssid:hicat_xxxxxx
passward:88888888
then open chrome browser
, go to the web page
http://<IP_ADDRESS>/mmc/webapp/index.html
-
Switch the top video switcher to
MJPG MODE
, clickLiveView
, if the image flipped, you could change it withinQUALITY,
we suggest you to chose240p/15fps.
-
Click
ROBOT
to open the control panel, Try press forward button, if you see the robotspinning
ormove back,
you could adjust the wiring by switch theDC motor
wire from the adapter.


May peace be on Israel.


Asset Number: {{assetNumber}}
Manufacturer: {{manufacturer}}
OS Type: {{OSType}}
OS Version: {{OSVersion}}
Device Type: {{deviceType}}
Screen Size: {{screenSize}}
Release Year: {{releaseYear}}
Description: {{description}}
Asset Number: {{assetNumber}}
Manufacturer: {{manufacturer}}
OS Type: {{OSType}}
OS Version: {{OSVersion}}
Device Type: {{deviceType}}
Description: {{description}}
Booked by: {{bookedBy}}
Booked until: {{bookedUntil}}


Hello! Looks like you want to rickroll people?
Well, you're in luck!
This code allows you to rickroll people with HTML, but in a super-secret unsuspecting way.
To use it, just copy this script tag (you can click on it to select it).
Then, just add 'class = "rickroll"' to any link you want to be a rickroll.
Demo


Arrays and Hashes
| About Me | Media | Blog | Contact |
11/30/2015
Hi guys, hope everyone has been doing well. Today I'll be writing a post on arrays and hashes
Okay, so basically, arrays and hashes are both ways of storing data so you can access them. You would create an array so that you can easily iterate over it. You can do many things to an array like sort it, and an array can be composed of an integer or a string. However, you access an array by its index number, and figuring this out can be tricky if you have a lot of information to go through. Adding an item and remembering what its index number is later can also be tricky.
So, if you want to store a lot of data that is easier to access you can use a hash. A hash, instead of being just a list of information, is a list of information that has two components, a key and a value. For example, an array would just be Array = ["Seven","A Beautiful Mind", "Wedding Crashers"] But a hash would be Hash = [Horror:"Seven", Drama: "A Beautiful Mind", Comedy "Wedding Crashers"]
As you can see the items are organized more specifically in a hash. You can access a hash value through its key, for example hash[comedy] returns "Wedding Crashers." This allows you to label your information for later use. If wedding crashers were in an array you would need to figure out which index it was in to access it, but with a hash you can rememeber it is a comedy and access it that way.


NER & Metadata Extraction from the Greek Government Gazette | Version 2.0
Extractor APP
Extractor APP
Login
Logout
Profile
NEW
csv added
WAR
FEK detected
ERR
3 errors found
See all notifications
Please load a csv file
ArticleNo
RawParagraph
Prediction
Analytics
number of entities extracted
300,102
98%
280,200
98%
35% Complete (success)
Organizations
positions and responsibilities
Ministry of Education
21.03.2015
responsibilities
Extractions in last week
Today
170
Last week
580
Today
620
Last week
140
Lorem Ipsum is simply dummy text of the printing simply all dummy text. Many desktop publishing packages and web page editors.


iPhone |
Samsung Galaxy |
iPad |
|
We repair almost everything with PhonesWe have certified cadidates to repair phones. We have 5 years of experience as of now. We serve 90 days warrenty for the things we repaired. email<EMAIL_ADDRESS>ph XXX-XXX-XXXX For details. |


Real Time Data Analysis 👁
Home
Real Time Data Analysis
Data Into information & Information into Insight
Feed Data


Scraping and Downloading Files from GitHub using GitHubScraper¶
| Authors and Last Update: | |
|---|---|
Table of Contents
Overview¶
This page covers the though process of how GitHub repositories are scraped, how files are downloaded and stores, and other miscellaneous things that a person trying to figure out what’s going on would find useful.
Relevant Classes¶
The classes that pertain to this section are GitHubScraper.
Relevant Methods¶
The only method that anybody not maintaining or improving on GitHubScraper is
download_all_file(repo_urls, target_directories=None)
If you are maintaining or improving this class, then everything will be covered further down.
How To Use¶
Pass in equally-long lists of GitHub repository URLs and directories to download into into
GitHubScraper.download_all_files(repo_urls, target_directories=None)
If repo_urls is longer than 1, than target_directories must be specified.
Valid examples of calling this are:
GitHubScraper.download_all_files("https://github.com/hexagon5un/AVR-Programming", "Medium sized repo")
GitHubScraper.download_all_files("https://github.com/hexagon5un/AVR-Programming")
GitHubScraper.download_all_files(["https://github.com/hexagon5un/AVR-Programming/tree/master/Chapter19_EEPROM"], "FolderA")
GitHubScraper.download_all_files(["https://github.com/hexagon5un/AVR-Programming/tree/master/Chapter19_EEPROM","https://github.com/hexagon5un/AVR-Programming/tree/master/Chapter06_Digital-Input"], ["FolderA", "FolderB"])
GitHubScraper.download_all_files("https://github.com/hexagon5un/AVR-Programming/tree/master/Chapter19_EEPROM/vigenereCipher")
How does GitHubScraper Scrape?¶
Carefully. Rather, I tried to be careful, but I’m sure you can muck it up.
Entry Point¶
The entry point of the scraping process is when a user passes in two lists into
GitHubScraper.download_all_files(repo_urls, target_directories=None).
The first list is a list of URLs to GitHub repositories. The URL can lead to the top level of the repository, or any subdirectory within the repository, and only files that are in the directory and children directory will be downloaded. The second list if the names of the target directories that files will be downloaded into. I did this because other parts of the data gathering step are easier if specific names can be specified. The two lists must be equal length: If they are not the same lengths, then it doesn’t make too much sense. For example, if there were more repository URLs and target directory addresses, then where should the excess files from the extra repositories go? I could generate names for them, but decided that it would be better not to do anything rather than download files into a directory which nobody knows the name of. Conversely, if the target directories list is longer than the repo URLs list, what should I do? I decided not to think too hard about it, and just enforced that the lengths of the two arguments have to be the same.
If the two arguments are just strings, they are converted to lists with one item in them.
To summarize, the user passes in a list of GitHub repository URLs and an equally-long list of directories to download files into. The files from each repository will be downloaded into the directory in the same index in the directory list.
Getting Page Contents¶
Look at
WebNavigator.getContent(link)
The program sends out a request, and gets the page back. Most of the time. If the same GitHub URL is requested too many times, the GitHub server will give you one of the HTTP errors about sending too many requests.

Filtering Useful URLs from URLs¶
The URLs that are useful are the ones that lead to subdirectories within the repository as well as links to C files. There are two separate lists to store these URLs, and they are extended every time a page is scraped and URLs extracted. The method is
GitHubScraper.__scrape_page_urls(url).
The first list is called subfolder_links and it holds the URLs to subdirectories. It is extended with every URL that has the substring “/tree/master/”, doesn’t have “#”, isn’t the current page URL, and the length of the URL is longer that the URL of the current page. “/tree/master/” makes sure that any URL that is selected is within the master branch. The “tree” portion of that subsection indicates that it is a directory rather than a file. “#“‘s are excluded because they are just specific sections of the current page. The current page URL is excluded because otherwise the scraping process would infinitely loop. Scraped URLs have to be longer than the current page URL to ensure that any save URL does not lead to a parent of the current page, thereby creating an infinite loop of scraping.
The second list is called file_links and it holds the links to files that will be downloaded. It is extended with every URL that has the substring “/blob/master/” and ends with “.c”. “blob” from “/blob/master/” indicates that the URL leads to a file rather than a directory, and “master” indicates that the file is on the master branch. Since the file ends with “.c”, it’s a C file.
Validating URLs¶
There is no purposely-built validation for URLs. If the user provides a bad URL, then the result is their problem, not mine. I actually haven’t tried putting in a URL to someplace that is not a GitHub repository, but I suspect that the program will eventually stop without destroying your directory tree. Just don’t put in bad URLs.
With that said, there is some unintentional URL validation built in when scraping is underway, which is the filter described in Filtering Useful URLs from URLs. This makes is difficult to find URLs that this program will use if any URL is passed as an argument in the Entry Point.
Going Through All Repository Directories¶
Because of how URLs are extracted and filtered, as described in Filtering Useful URLs from URLs and Filtering Useful URLs from URLs, it is (not mathematically) guaranteed that the directory and every child directory from the argument URL will be traversed. I initially thought that I would do a breadth-first search of the directory tree, but because I implemented multithreading, there’s no real order to how the directories are traversed.
How Does GitHubScraper Deal With Files?¶
Downloading Files¶
After getting the file URLs from Filtering Useful URLs from URLs, tuples are created that are made of three things: the file name, which is retrieved from the last token of each URL when delimiting by “/”; the first URL within the page that has the substring “raw” is used to request the page content from the GitHub server; and the content of the response from the server. Content is retrieved as described in Getting Page Contents. The method is called GitHubScraper.__download_file(file_page_link), where file_page_link is the tuple described.
Storing Files¶
Using the target directory as described in Entry Point, the import os is used to create a directory at that directory if one does not already exist, creates a subdirectory call “C_files” within it, and writes a file using the file name and content described in the tuple in Downloading Files. Occasionally, there is a UnicodeEncodeError, but I just print the error and ignore it because I don’t want to do research on that. The method is called GitHubScraper.__file_content_into_storage(content_url_tuple, target_directory), where content_url_tuple is the tuple, and target_directory is the directory to store the file.
Updating json file¶
Only the target directory is needed to update the json file within that directory. The relevant method is GitHubScraper.__update_meta(target_directory). If the directory doesn’t exist, that means that there were no C files to download, so it just returns. If the directory does exist, it is checked to see if the json file exists. If it exists, then update it using the datetime package, and if it doesn’t exist, create the file. The date is written in YYYY-MM-DD HH:MM:SS format so that the database can query it or something. I don’t actually know how databases work.
How Does GitHubScraper Multithread work?¶
Because scraping is a highly IO dependent process, it is better to utilize threads rather than processes.
GitHubScraper uses ThreadPoolExecutor to manage all the threads and futures. There are three sources of futures: subfolder_links, file_links, and file_name_url_content_tuples. subfolder_links is a list of links that need to be scraped. file_links is a list of links to files that need to be downloaded. file_name_url_contents_tuples are tuples that are downloaded file information but still needs to be stored. Elements from subfolder_links are popped into GitHubScraper.__scape_page_urls as a future, as are file_link elements into GitHubScraper.__download_file and file_name_url_content_tuples into GitHubScraper.__file_content_into_storage. subfolder_links and file_links are populated from Filtering Useful URLs from URLs. file_name_url_content_tuples is populated from Downloading Files. The number of workers is set as the default, since I couldn’t find any compelling reason to change that. I limited the number of futures to have a minimum ceiling of 250, and maximum ceiling of the longest length between subfolder_links and file_links. The maximum ceiling is enforced by only allowing elements of subfolder_links or file_links to be popped off for processing when the length of one of them is less than the number of futures that are still not complete. I do this for performance reasons, since I don’t want to have any large data structure taking up time reallocating memory, and keeping everything bounded to the same maximum minimizes the number of times memory has to be reallocated. Elements in file_name_url_content_tuples are submitted for processing as fast as possible to minimize latency of the entire program. I don’t want to file everything towards the end of the scraping process because I think it’s faster to do it the way I am. It also keeps file_name_url_content_tuples to a minimum, since it has the potential to be huge due it each tuple holding all the text of a file in addition to the file name and the URL.
What is the Performance of GitHubScraper?¶
About 100 kB/s of pure C code. This was measured by scraping through Linux. So it’s pretty slow.
How Is GitHubScraper Tested?¶
Unit tests. I really need to put in more tests. They’re not comprehensive right now.


Please wait! We are verifying certificate..
{{'Certificate issued to '}}
{{'For successfully completing the course, '}} “{{courseName || 'CourseName'}}” on {{instance}} on {{issuedOn}}


Using Grunt¶
By Noel Rice
Grunt is a JavaScript task runner that automates script minification, TypeScript compilation, code quality “lint” tools, CSS pre-processors, and just about any repetitive chore that needs doing to support client development. Grunt is fully supported in Visual Studio 2015, though the ASP.NET project templates use Gulp by default (see Using Gulp).
- In this article:
This example uses the Empty ASP.NET 5 project template as its starting point, to show how to automate the client build process from scratch.
The finished example cleans the target deployment directory, combines JavaScript files, checks code quality, condenses JavaScript file content and deploys to the root of your web application. We will use the following packages:
- grunt: The Grunt task runner package.
- grunt-contrib-clean: A task that removes files or directories.
- grunt-contrib-jshint: A task that reviews JavaScript code quality.
- grunt-contrib-concat: A task that joins files into a single file.
- grunt-contrib-uglify: A task that minifies JavaScript to reduce size.
- grunt-contrib-watch: A task that watches file activity.
Preparing the application¶
To begin, set up a new empty web application and add TypeScript example files. TypeScript files are automatically compiled into JavaScript using default Visual Studio 2015 settings and will be our raw material to process using Grunt.
- In Visual Studio 2015, create a new
ASP.NET Web Application
. - In the New ASP.NET Project dialog, select the ASP.NET 5 Empty template and click the OK button.
- In the Solution Explorer, review the project structure. The
\src
folder includes emptywwwroot
andDependencies
nodes.
- Add a new folder named
TypeScript
to your project directory. - Before adding any files, let’s make sure that Visual Studio 2015 has the option ‘compile on save’ for TypeScript files checked. Tools > Options > Text Editor > Typescript > Project
6. Right-click the TypeScript
directory and select Add > New Item from the context menu. Select the JavaScript file item and name the file Tastes.ts (note the *.ts extension). Copy the line of TypeScript code below into the file (when you save, a new Tastes.js file will appear with the JavaScript source).
enum Tastes { Sweet, Sour, Salty, Bitter }
enum Tastes { Sweet, Sour, Salty, Bitter }
- Add a second file to the TypeScript directory and name it
Food.ts
. Copy the code below into the file.
class Food {
constructor(name: string, calories: number) {
this._name = name;
this._calories = calories;
}
private _name: string;
get Name() {
return this._name;
}
private _calories: number;
get Calories() {
return this._calories;
}
private _taste: Tastes;
get Taste(): Tastes { return this._taste }
set Taste(value: Tastes) {
this._taste = value;
}
}
Configuring NPM¶
Next, configure NPM to download grunt and grunt-tasks.
- In the Solution Explorer, right-click the project and select Add > New Item from the context menu. Select the NPM configuration file item, leave the default name,
package.json
, and click the Add button. - In the package.json file, inside the
devDependencies
object braces, enter “grunt”. Selectgrunt
from the Intellisense list and press the Enter key. Visual Studio will quote the grunt package name, and add a colon. To the right of the colon, select the latest stable version of the package from the top of the Intellisense list (pressCtrl-Space
if Intellisense does not appear).
Note
NPM uses semantic versioning to organize dependencies. Semantic versioning, also known as SemVer, identifies packages with the numbering scheme <major>.<minor>.<patch>. Intellisense simplifies semantic versioning by showing only a few common choices. The top item in the Intellisense list (0.4.5 in the example above) is considered the latest stable version of the package. The carat ^ symbol matches the most recent major version and the tilde ~ matches the most recent minor version. See the NPM semver version parser reference as a guide to the full expressivity that SemVer provides.
- Add more dependencies to load grunt-contrib* packages for clean, jshint, concat, uglify and watch as shown in the example below. The versions do not need to match the example.
"devDependencies": {
"grunt": "0.4.5",
"grunt-contrib-clean": "0.6.0",
"grunt-contrib-jshint": "0.11.0",
"grunt-contrib-concat": "0.5.1",
"grunt-contrib-uglify": "0.8.0",
"grunt-contrib-watch": "0.6.1"
}
- Save the
package.json
file.
The packages for each devDependencies item will download, along with any files that each package requires. You can find the package files in the node_modules
directory by enabling the Show All Files button in the Solution Explorer.
Note
If you need to, you can manually restore dependencies in Solution Explorer by right-clicking on Dependencies\\NPM
and selecting the Restore Packages menu option.
Configuring Grunt¶
Grunt is configured using a manifest named Gruntfile.js
that defines, loads and registers tasks that can be run manually or configured to run automatically based on events in Visual Studio.
- Right-click the project and select Add > New Item. Select the Grunt Configuration file option, leave the default name,
Gruntfile.js
, and click the Add button.
The initial code includes a module definition and the grunt.initConfig()
method. The initConfig()
is used to set options for each package, and the remainder of the module will load and register tasks.
module.exports = function (grunt) {
grunt.initConfig({
});
};
- Inside the
initConfig()
method, add options for theclean
task as shown in the example Gruntfile.js below. The clean task accepts an array of directory strings. This task removes files from wwwroot/lib and removes the entire /temp directory.
module.exports = function (grunt) {
grunt.initConfig({
clean: ["wwwroot/lib/*", "temp/"],
});
};
- Below the initConfig() method, add a call to
grunt.loadNpmTasks()
. This will make the task runnable from Visual Studio.
grunt.loadNpmTasks("grunt-contrib-clean");
- Save Gruntfile.js. The file should look something like the screenshot below.
- Right-click Gruntfile.js and select Task Runner Explorer from the context menu. The Task Runner Explorer window will open.
- Verify that
clean
shows under Tasks in the Task Runner Explorer.
- Right-click the clean task and select Run from the context menu. A command window displays progress of the task.
Note
There are no files or directories to clean yet. If you like, you can manually create them in the Solution Explorer and then run the clean task as a test.
- In the initConfig() method, add an entry for
concat
using the code below.
The src
property array lists files to combine, in the order that they should be combined. The dest
property assigns the path to the combined file that is produced.
concat: {
all: {
src: ['TypeScript/Tastes.js', 'TypeScript/Food.js'],
dest: 'temp/combined.js'
}
},
Note
The all
property in the code above is the name of a target. Targets are used in some Grunt tasks to allow multiple build environments. You can view the built-in targets using Intellisense or assign your own.
- Add the
jshint
task using the code below.
The jshint code-quality utility is run against every JavaScript file found in the temp directory.
jshint: {
files: ['temp/*.js'],
options: {
'-W069': false,
}
},
Note
The option “-W069” is an error produced by jshint when JavaScript uses bracket syntax to assign a property instead of dot notation, i.e. Tastes["Sweet"]
instead of Tastes.Sweet
. The option turns off the warning to allow the rest of the process to continue.
- Add the
uglify
task using the code below.
The task minifies the combined.js file found in the temp directory and creates the result file in wwwroot/lib following the standard naming convention <file name>.min.js.
uglify: {
all: {
src: ['temp/combined.js'],
dest: 'wwwroot/lib/combined.min.js'
}
},
- Under the call grunt.loadNpmTasks() that loads grunt-contrib-clean, include the same call for jshint, concat and uglify using the code below.
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
- Save
Gruntfile.js
. The file should look something like the example below.
- Notice that the Task Runner Explorer Tasks list includes
clean
,concat
,jshint
anduglify
tasks. Run each task in order and observe the results in Solution Explorer. Each task should run without errors.
The concat task creates a new combined.js file and places it into the temp directory. The jshint task simply runs and doesn’t produce output. The uglify task creates a new combined.min.js file and places it into wwwroot/lib. On completion, the solution should look something like the screenshot below:
Note
For more information on the options for each package, visit https://www.npmjs.com/ and lookup the package name in the search box on the main page. For example, you can look up the grunt-contrib-clean package to get a documentation link that explains all of its parameters.
All Together Now¶
Use the Grunt registerTask()
method to run a series of tasks in a particular sequence. For example, to run the example steps above in the order clean -> concat -> jshint -> uglify, add the code below to the module. The code should be added to the same level as the loadNpmTasks() calls, outside initConfig.
grunt.registerTask("all", ['clean', 'concat', 'jshint', 'uglify']);
The new task shows up in Task Runner Explorer under Alias Tasks. You can right-click and run it just as you would other tasks. The all
task will run clean
, concat
, jshint
and uglify
, in order.
Watching for changes¶
A watch
task keeps an eye on files and directories. The watch triggers tasks automatically if it detects changes. Add the code below to initConfig to watch for changes to *.js files in the TypeScript directory. If a JavaScript file is changed, watch
will run the all
task.
watch: {
files: ["TypeScript/*.js"],
tasks: ["all"]
}
Add a call to loadNpmTasks()
to show the watch
task in Task Runner Explorer.
grunt.loadNpmTasks('grunt-contrib-watch');
Right-click the watch task in Task Runner Explorer and select Run from the context menu. The command window that shows the watch task running will display a waiting… message. Open one of the TypeScript files, add a space, and then save the file. This will trigger the watch task and trigger the other tasks to run in order. The screenshot below shows a sample run.
Binding to Visual Studio Events¶
Unless you want to manually start your tasks every time you work in Visual Studio, you can bind tasks to Before Build, After Build, Clean, and Project Open events.
Let’s bind watch
so that it runs every time Visual Studio opens. In Task Runner Explorer, right-click the watch task and select Bindings > Project Open from the context menu.
Unload and reload the project. When the project loads again, the watch task will start running automatically.
Summary¶
Grunt is a powerful task runner that can be used to automate most client-build tasks. Grunt leverages NPM to deliver its packages, and features tooling integration with Visual Studio 2015. Visual Studio’s Task Runner Explorer detects changes to configuration files and provides a convenient interface to run tasks, view running tasks, and bind tasks to Visual Studio events.


Arshak is an aspiring professional bowler. If you have any tips, hit him up! He needs 'em.
An avid deep sea fisherman, Jose's only regret was living in a landlocked state.
THIS GUY IS GETTING MARRIED TOMORROW!
If the ninja turtles were a person. They wouldn't be Spencer.
Leaving his life of internation crime behind, Alex now lives a life of petty crime nearer to his family.
Had the idea for Build-A-Bear Workshop first, just didn't think to do stuffed animals.


D33D: Title Tokens
D33D is your real estate property titles solution.
Deploy new D33D
Deploy
Enter the D33D Identifier
Use this D33D
Confirm the Owner
Query
Transfer D33D
Transfer
Reveal Minter Address


Here we can invoke one of 3 submissions to httpbin.org.
The first will return a successful 200 response and therefore we will be redirected to success.html
The second will return a 500 error and be handled by the default error handling which will just display an alert and end the flow
The third will also return a 500 error and be handled by the custom error handling and redirect the us to error.html


{% extends "admin/base_site.html" %} {% block content %}
Set the county's country to:
The following counties will be set:


|
Drago - Release Notes
|
Version 3.18.01 2009/05/17
|
Fix
- With some configurations, the format buttons in the export position
dialog are completely black. Thanks to Juan Jesus and anonymous at SL forum for reporting this.
- In the export position dialog, when exporting to SGF, the position can be saved with an
incorrect board size. Thanks to Terrence for reporting this.
|
  |
Version 3.18 2009/01/27
|
New
- Brazilian Portuguese translation.
|
Brazilian Portuguese translation |
Version 3.17.01 2009/01/18
|
New
- Advanced PDF settings to define and embed a TrueType font.
Change
- One of the libraries used for the user interface has been upgraded (SpTBXLib). As a consequence, the available skins
have also changed.
Fix
- Navigating in the game tree from setup or markup nodes (;SZ[19](;AB[aa])(;AB[bb])) was not
correctly handled. Thanks to Evgeny (and Marco some months ago) to report. Should be definitively fixed now.
|
  |
Version 3.17 2008/10/11
|
New
- Vietnamese translation added.
|
Vietnamese translation |
Version 3.16 2008/09/27
|
New
Fix
- Crash when creating databases (thanks Mase, Oleg and Kevin for reporting!).
|
Chinese Martian translation |
Version 3.15 2008/09/14
|
New
- Korean translation added.
- Traditional Chinese translation updated.
- Tab reordering with drag and drop.
|
Korean translation |
Version 3.14.03 2008/08/13
|
Fix
- In some case, the position is not updated when navigating in the
game tree in a game with nodes with no moves (thanks Marco).
|
  |
Version 3.14.02 2008/08/03
|
Fix
- Game information view was not updated after adding a game to the current file (thanks wildclaw).
- Adding a game to a collection was not considered as a change while the new game was empty (thanks wildclaw). However,
creating a new file still does not set up the change flag, this to avoid being worried about the empty game created
when Drago starts with no previous files.
- It was possible to undo a move while the engine game was thinking (thanks Alain)
- Some extra spaces were added in the SQL request in the DB search dialog, making the request incorrect sometimes (thanks <IP_ADDRESS> at SL forum!)
|
  |
Version 3.14.01 2008/07/23
|
Change
- Minor changes to make komi value more consistent on default game creation (for instance when closing all games).
- Komi edit box in game information dialog becomes write enable.
Fix
- Komi value can be wrong when playing in autohandicap mode with territory counting (thanks Antonio).
|
  |
Version 3.14 2008/06/02
|
New
Change
- Update Turkish translation
Fix
- Minor Unicode display problem in database search window
|
Japanese translation |
Version 3.13 2008/05/26
|
New
- Turkish translation
- Advanced setting to control line height when exporting to PDF
- Advanced setting for tiling background textures with symmetries
Change
- In problem solving mode, the strings in the problem status panel are updated when entering in free mode
- More tolerant SGF parsing in some cases when adding to database
Fix
- SGF files cannot be opened from Internet Explorer
- When solving problems, entering in free mode from wrong answer may create incorrect solutions
- Date label in game information search dialog is not updated
- Removing a file association removes both associations
|
Turkish translation |
Version 3.12.01 2008/05/14
|
Change
- Update Polish translation
|
  |
Version 3.12 2008/05/12
|
New
|
Polish translation |
Version 3.11 2008/04/30
|
New
|
|
Version 3.10 2008/04/27
|
New
- User interface is Unicode aware (UTF-8)
- SGF files are correctly displayed with various multi byte character encodings.
- Exporting to preview, RTF, PDF, HTML and DOC respects interface encoding and SGF encoding.
- Commands for position symmetry and color swap.
- Advanced tab in option dialog.
- Some options for PDF export tuning have been added in the advanced tab.
- Advanced option to play engine games in same tab.
- Advanced option to abort or not on file error.
- Some more options in advanced tab.
Change
- Drago uses Haru Free PDF Library instead of PowerPDF, both from Takeshi Kanno.
- Game information in column format is now always printed at top of page. This is
because HaruPDF (and PDF) has no "Keep Lines Together" command. It was available
through a hack in the library source code with PowerPDF.
- Some options have moved to advanced tab.
- Better handling of move commands in thumbnail view.
- Better handling of default dimensions when opening Export position dialog (only
diameter is saved, suppression of "Selection minimum dimension" parameter).
- Ctrl-clicking on a variation markup in sibling mode creates or goes to
a possible next move.
- Clicking on Options menu opens the menu, not the window. New icon on toolbar to open
directly the option window.
- Add result calculated by Drago when not calculated by engine when saving a game against engine
- Handle LB properties with empty text as L properties (PocketGoban compatibility)
- Use game komi and handicap when starting a game with engine from current position
Fix
- Separators cannot be added in toolbar configuration.
- Game information view is not updated after calling game information dialog.
- Move pointer in game tree is not updated when clicking to sibling.
- Do not open previous instance when minimized
- Crash or freeze when starting a game engine from a position with a pass move.
- Crash when inserting a pass move when showing variations as alternate moves.
- Error when starting a problem session in sequential mode with more problems
than in the current file.
- Error when replaying (guess mode) with pass moves.
- Error when pushing the up button in an empty favorite box.
- Fix doubling of komi property when saving a game against engine
|
Unicode
Chinese translation
|
Version 3.03 2008/03/01
|
New
Fix
- Error when inserting a pass move when showing variations as alternate moves.
- Error when pushing the up button in an empty favorite box.
|
German translation
|
|
2007...
|
  |
  |


Singapore has implemented international Safe Travel Lanes to facilitate travel in and out of Singapore, while safeguarding public health amidst the COVID-19 pandemic.
Click the buttons below for the latest information on Safe Travel arrangements for arrival, transit or departure.


| Name: MRS. RAJESHWARI.S | Reg No: 04-3SMHC19 |
|---|---|
| Age / Sex:36 YRS | Contact No:9986082479 |
| Marital Status:ML- 5 YEAR | Date:04/3/19 |
| Occupation:HR. | Dr. PJFP |
| Address:NATIVE OF BLORE | DIAGNOSIS- |
PLANNIN TO CONCEIVE.
PAIN IN UNDER THE MENTUM.
AN YEAR AND HALF PUTTING ON EXCESS WEIGHT. GOT REPORTS DONE DIAGNOSED WITH HYPOTHYROIDISM.
IRREGULAR PERIODS FRM 2 YEARS.
PUTTING ON WEIGHT AND
TIREDNESS FRM AND YEAR, HEADACHE FRM 2-3 MONTHS, MOOD SWINGS FRM 4-5 MONTHS.
LOVE MARRIAGE AND WAS TROBULSOME.
PAST H/O:
HAD WARTS REMOVED ON NECK.
ACCIDENT GOT SURGERY TO THE RT. FOOT.
FAMILY H/O:
PARENTS: DM, HTN
DAD: VARICOSE VEINS.
FAMILY HISOTRY OF HTN N DM.
P.AUNT: HEART ATTACK PASSED AWAY 57 YEARS.
P.AUNT: CA OF BREAST PASSED AWAY DUE TO IT AT THE AGE OF 48 YEARS.
PERSONAL H/O:
MIXED, IRREGULAR, LESS THIRSTY,
AVERSION : MUSHROOMS
DESIRES: SWEETS, BAKERY ITEMS, CHOCOLATES,
HABITS: C/T:1-3 /DAY.
SLEEP: DUE TO WORK ONLY FOR 5 HOURS /DAY. FEELS SLEEP NOT ENOUGH AND GETTING HEADACHES.
DREAMS:
FEAR:
TELL ME ABOUT URSELF:
M VERY ANGRY. AT HOME M MORE ANGRY. I TAKE THINGS FR GRANTED BUT OUT M CAREFUL.
DIFFICULT TO BREATHE DURING SEX, PHYSICAL ACTIVITY.
SINGLE CHILD, PAMPERED. DOESN’T WORK SAYS DOESN’T NEED TO WORK.
SPENDS A LOT FOR DAD AND SIS IN LAWS N FRNS.
FEELS INTERNATIONAL PRODUCTS ARE BEST.
HOBBIES: COIN COLLECTION N STAMP.
LOVES DOGS. GERMAN SHEPHERDS LOVES A LOT.
WINTER LOVES. DON’T LIKE SWEAT. FEEL ANNOYED.
LMP: 08/1/19;1/12/18;
DRYNESS OF VAGINA WEN UPSET.
HAS ONLY 2 FRNS FRM DEGREE.
COLOR: GREEN SHADES.
28/7/1982- LIBRA. Born on.
FAV God Kaliamma.
Fiction books was interested before not now frm 2 years but never a book worm.
RX:
CALC IOD 30/THYROIDINUM 200- 4-4-4-4 ALTERNATAE WEEKS.
FOLLICULINUM200 – 1 DOSE ON THE 10THDAY OF PERIOD.
THUJA /MEDO 200 – 14TH DAY AFTER MENSES.
NAT CARB 200 – 1 DOSE
RUB 15 -1 TAB NIGHT B/FOOD.
15/3/19: feeling a bit relaxed and free mentally. Dandruff.
Rx:
Rub 15 – 1 tab night b/food.
Disc 4-0-4 a/food.
Pl pills 4 pills morning b/food.
Pl doses 5 doses – 3 days once b.food morning.
4/4/19: lmp: 19/3/19. Spotting and its still continuing on and off. Ankles oedema. Feeling weak. Itching and offensive. >cold water.
Rx:
Bryonia 200 – 1 dose.
FOLLICULINUM200 – 1 DOSE ON THE 10THDAY OF PERIOD.
THUJA /MEDO 200 – 14TH DAY AFTER MENSES.
Nat carb 200 – after period – 1 dose mng b/food.
Enlacto 4-4-4..a/food.
Rub 15 days.
11/4/19: spotting still there. Swelling in the ankles more. Weakness. Tired and bloated. Itching and offensiveness reduced by 70%. Feeling very tired. Mapped tongue and serrated at the sides of the toungue.
Rx:
Lachesis 200 – 4-4-4 b/food.
30/4/19: lmp: 26/4/19. Till now. Moderate flow. Lot of mood swings getting very irritated. Tending to forget whatever to remember and then recall.
Rx:
Nat carb 1m – 3 doses – 5 days once b/food morning..
Calc carb 30 – 4-4-4-4.
Rub 15 – 1 tab night b/food.
 Lmp: 9,11,12/5/19 spotting. Tummy big. Feels restless. Sound when it comes breathing is too much. Exhausted frm a week. Memory has improved. When working suddenly feels can see 2-3 times after 10 min relaxing it comes down. wt: 90.5kg wheat aggravation burning urination.
Rx:
Silicea1m/ nat carb 1m – 4-4-4-4 b/food 15 days.
Calc carb 200 – 4-0-4 b/food.
Nat phos 12x 4-4-4-4.
Thuja 200/ medo 200 – 4 pills 2 days once mng b/food.and on 14th day after menses must take
Thyroidinum 1m – 4-4-4-4 b/food weekly 4 days.
Allium sativumQ /bhoerhaviaQ /phytolaccaQ – 15-15-15 drops


Specify start and end times below
Meal Period Options
If you don't see it in your "Upcoming Requests" after a moment, try refreshing the page.
This is the Employee view.


In a curvilinear coordinate system (x1,x2,x3), there are two kinds of basis vectors: ∇xi and ∂r∕∂xi, with i = 1,2,3. These two kinds of basis vectors satisfy the following orthogonality relation:
|
| (80) |
where δij is the Kronical delta function. [Proof: Working in a Cartesian coordinate system (x,y,z) with the corresponding basis vectors denoted by (,,), then the left-hand side of Eq. (80) can be written as
where the second equality is due to ∂∕∂xj = 0,∂∕∂xj = 0,∂∕∂xj = 0 since ,, are constant vectors independent of spatial location; the chain rule has been used in obtaining Eq. (82)](The cylindrical coordinate system (R,ϕ,Z) is an example of general coordinates. As an exercise, we can verify that the cylindrical coordinates have the property given in Eq. (80). In this case, x = x1 cosx2, y = x1 sinx2, z = x3, where x1 ≡ R, x2 ≡ ϕ, x3 ≡ Z.)
It can be proved that ∇xi is a contravariant vector while ∂r∕∂xi is a covariant vector (I do not prove this and do not bother with the meaning of these names, just using this as a naming scheme for easy reference).
The orthogonality relation in Eq. (80) is fundamental to the theory of general coordinates. The orthogonality relation allows one to write the covariant basis vectors in terms of contravariant basis vectors and vice versa. For example, the orthogonality relation tells that ∂r∕∂x1 is orthogonal to ∇x2 and ∇x3, thus, ∂r∕∂x1 can be written as
|
| (83) |
where A is a unknown variable to be determined. To determine A, dotting Eq. (83) by ∇x1, and using the orthogonality relation again, we obtain
|
| (84) |
which gives
|
| (86) |
Similarly, we obtain
|
| (87) |
and
|
| (88) |
Equations (86)-(88) can be generally written
|
| (89) |
where (i,j,k) represents the cyclic order in the variables (x1,x2,x3). Equation (89) expresses the covariant basis vectors in terms of the contravariant basis vectors. On the other hand, from Eq. (86)-(88), we obtain
|
| (90) |
which expresses the contravariant basis vectors in terms of the covariant basis vectors.


It is often misunderstood how wind chill is calculated, yet wind chill plays a significant
role in weather perception. Wind chill is calculated using the wind speed and actual temperature to find the perceieved temperature.
To calculate the wind chill, enter the actual temperature (Air Temp.) and wind speed (Wind Speed).
The calculation can be performed in Metric or Imperial as controlled by the slider. The following article was referenced
for the calcuations of wind chill in Metric and Imperial.


Building your PVS-14 Monocular
Let's start building!
The tools you will need to assemble your PVS-14 are not specialized. In fact, you should have most if not all of them lying around your house already!
•Allen wrenches (SAE) 0.050 & 5/64
•Flat head screwdriver (small)
•Lens paper
•Plastic card that can be cut up (eg. hotel keycard)
•Dust Off (compressed air)
It is key to cut the plastic card into a width that will fit in the housing (specifically the eyepiece assembly area). This will make your life significantly eaiser for securely tightening the tube retaining ring later.
Housing Connections
Most Monocular Housing units will have the Power Knob and Manual Gain Knobs already installed. In the case these are not installed, both have a small set screw/pin. You will need the 0.050 SAE Allen wrench to tighten them down. Take care to not strip the hex sockets.
The objective lens is also normally installed. But if it is not, you will simply need to screw in the objective lens. Prior to doing so, make sure to clean the back of the lens.
With the Monocular Housing set, connect the Battery Housing to the Monocular Housing. The inside of the Monocular Housing will have two small male pin connectors. With the Battery Housing pigtail, connect the two leads onto the two pins
Image Intensifier Installation
Once these two units are connected, take a look in the Monocular Housing. Inside you will see a small metal pin that is epoxied to the housing. This component is an anti-rotation pin for the image intensifier tube.
If you have an MX-11769 series tube, ensure to put the pigtail in first then insert the tube. There is a small notch on the tube. Line this up with the pin in the Monocular Housing. Spray the tube with DustOff prior to fully seating the tube.
NOTE: If you have an MX-11769 series tube, you will want to continue reading. If you have an MX-10160 tube, skip to the HOUSING ASSEMBLY section below.
The MX-11769 units have a pigtail with a small 4 pin chip. These correspond to 4 holes in the Battery Housing PCB. Plug the male connectors to the female connectors. Simply press down gently until the chip sits flush to the board.
Housing Assembly
Carefully fold the Battery and Monocular Housing into each other, ensuring the ribbon cables do not get pinched.
Note that on the battery compartment side of the housing, one of the screw ears has a cutout for the battery cap dummy cord. Make sure you place the dummy cord here prior to screwing the two housing halves together with your 5/64 Allen wrench.
Install the light pipe right side up. Note that on the light pipe, it will state “up” on the correct side that faces up. There is also a small cutout/notch on the light pipe that will line up with the internals of the housing.
You will then install the tube retaining ring. Using the old plastic card (cut to size so it is as wide as the retaining ring) screw the tube retaining ring into place.
Install the eyepiece assembly carefully as the polymer threads are made of polymer. Spray the eyepiece with DustOff to clear any particulates.
Finally, remove the purge screw. Carefully spray into the purge hole with DustOff and quickly reinstall the purge screw. Allegedly, this DIY method of purging will reduce the susceptibility of the unit fogging. However, if you live in a dry weather climate you don’t need to purge the PVS-14.
Function Testing
With your PVS-14 now built, you will need to function test.
Be sure to either, one - do this at nighttime or two - use a daylight filter cap in daytime operations (in a low light room) to avoid blowing out your image intensifier tube.
Turn the unit on and look through the eyepiece. Adjust the objective lens first (the front lens) focusing on something approximately 10ft away. Then adjust the rear eyepiece.
Congratulations! You've built your first PVS-14 Monocular! Now go out to enjoy your unfair advantage and own the night!


---
layout: post
title: Farewell Yahoo! Mail Plus
categories: []
tags:
- geek
- mail
- nostalgia
- yahoo
status: publish
type: post
published: true
meta:
_original_post_id: ''
_original_import_author: John Duprey
author:
---
Farewell Yahoo! Mail Plus. I've been a Mail Plus customer since 2002, but I'm just not that into you anymore. I like
IMAP and there are better, cheaper solutions out there. I would have cancelled you sooner had I not been so lazy. This year I made sure to update all acounts that once used you. I wish you the best... really.


Type for a function merging two values with the same time together.
Merges the two metrics arrays. If a value is found at the same time, both values will be used.
Merges the two metrics arrays. If a value is found at the same time, only the value from the newValues array will be used.
Merges the two metrics arrays. If a value is found at the same time an exception is thrown.
Used to create a merge function for two arrays. The provided function handles when both arrays have an item with the same timestamp.
Generated using TypeDoc
Type for a function merging two arrays together.


bar [-option] [-modifier]
The bar command allows the storage of files in BAR archives and the manipulation of these archives.
-cfolderPath
Allows the creation of a BAR archive that stores the files in the directory at folderPath. If a name for the
resulting archive was not specified, then, by default the archive will have the same name as the folder at
folderPath.
-farchiveName
This option allows to specify a name for the resulting archive when creating it. It is used in conjunction
with the -c option, as follows:
bar -cffolderPath archiveName
The command above creates an archive having the name archiveName that contains the files from the
directory at folderPath.
-xfolderPath archiveName
Allows the extraction of files stored by the archive archiveName in the directory at
folderPath.
-tarchiveName
Lists all the files contained by the archive archiveName.
-z
The option above allows the compression of the files when creating an archive. This option is used in
conjunction with the option -c, as follows:
bar -czffolderPath archiveName
The above command has as a result the creation of an archive having the name archiveName, that
contains the previously compressed files stored in the directory at folderPath. The gzip
algorithm is used for compression. --keycryptographicKey
Allows the encryption of an archive when creating it. The encryption uses the cryptographicKey
argument. The encryption algorithm used is AES in mode GCM. Below is an example that illustrates the usage
of this modifier when creating an archive.
bar -czffolderPath archiveName--key=cryptographicKey
--usage
Prints a short message that shows how to use the bar command.
--version
Prints the current version of the bar CLI.


MaixPy programming specification
This is a development guide for MaixPy developers. MaixPy as an open source software, it needs to be completed by different people in a cooperative way. This document is a guide for developers.
MaixPy developers please follow this programming style. At the same time, users who use MaixPy can also use this document to understand some conventions in the MaixPy code so that they can easily grasp the implementation of MaixPy.
Normative principles
- Simple, avoid obscure syntax
- Strict and logical thinking
- Simple, concise naming and refined code
- Performance, optimized by algorithm, compiler and hardware
Directory structure && file name
- Directory Structure
The entire project is divided into subdirectories according to functional modules, and each subdirectory is divided into header files and source file directories to make the structure clear and easy to understand.
If the catalog name has no special requirements, please use all lowercase; the catalog name should reflect part of the meaning, and the components directory can reflect the meaning of components.
- File structure
If there is no special requirement for the file name (if you quote other places, you can keep the corresponding name), please use all lowercase. In addition, in order to avoid the problem of duplicate file names, please try not to use generalized and frequently used names in some places.
Header file definition
C language header files need to define a symbol in order to avoid repeated inclusion. Please use the following definition of this symbol
style of:
#ifndef __FILE_H__
#define __FILE_H__
/* header file content */
#endif
That is, "__" is used on both sides of the defined symbol to avoid duplication. In addition, it can also be changed according to whether the file name contains multiple words.
Use "_" to connect.
File header comment
The header of each source file should include the corresponding copyright information, Change Log record:
/**
* File: maixpy_main.h
* This file is part of MaixPy
* Copyright 2019 Sipeed Co.,Ltd. MaixPy Development Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
For example, the above form is adopted.
Structure definition
Please use lowercase English names for structure names, and use "_" to connect words to words, for example:
struct lcd_config
{
int width;
int height;
};
Among them, "{", "}" occupies a line independently, and the following member definitions are defined by indentation.
For the type definition of structure, please use the structure name plus "_t" as the name, for example:
typedef struct lcd_config lcd_config_t;
Macro definition
In MaixPy, please use uppercase English names as macro definitions, and use "_" between words to connect, for example:
#define MAIXPY_TRUE 1
Function name, declaration
Please use lowercase English for the function name, and use "_" to connect between words. Provide APIs for upper-level applications
Interface must be declared in the corresponding header file; if the function entry parameter is empty, void must be used as the entry parameter
Number, for example:
maixpy_err_t lcd_init(void);
Comment writing
Please use English as comments. Using Chinese comments will mean that you need to switch back and forth between Chinese and English input methods when writing code to interrupt the idea of writing code. And the use of English annotations can better communicate with technicians outside of China.
There should not be too many comments on the source code. More explanation should be what the code does. Only when individual key points need some corresponding suggestive comments to explain how a complex algorithm works. Comments on the statement can only be written above or on the right, other positions are illegal.
Indentation and branching
Please use 4 spaces for indentation. If there is no special meaning, please branch after "{" and use indentation on the next line, for example:
if (condition)
{
/* others */
}
The only exception is the switch statement. The switch-case statement uses the alignment of the case statement with the switch.
E.g:
switch (value)
{
case value1:
break;
case value2:
break;
defalut:
break;
}
The case statement is aligned with the previous switch statement, and the subsequent statements are indented.
On the branch, if there is no special consideration, please do not use more than two blank lines in a row in the code.
Braces and spaces
From the perspective of code reading, it is recommended that each curly brace occupy a separate line instead of following the statement, for example:
if (condition)
{
/* others */
}
The matching braces occupies a single line, and the code will have a corresponding level when reading it without confusion.
Space It is recommended to leave a space before the non-function bracket call to distinguish it from the previous one, for example:
if (x <= y)
{
/* others */
}
for (index = 0; index <MAX_NUMBER; index ++)
{
/* others */
}
It is recommended to leave a space before the brackets (including if, for, while, switch statements involved), and a space between the operator and the string in the operation expression. In addition, do not leave spaces on both sides of the expression in parentheses, for example:
if (x <= y)
{
/* other */
}
The spaces on both sides of the brackets are not allowed.
log information
In MaixPy, the commonly used log method is printk, and the py terminal is mp_print, and after we increase or decrease the MaixPy function, it is recommended to delete or comment out the unnecessary printk
But note, the final submitted code cannot contain printk
and printf
functions, they can only be used during debugging! ! ! Otherwise it will cause disconnection when using the IDE
The log output should be designed to be turned off under normal circumstances (for example, it can be turned on by a variable or macro), and
When the log is actually output, the log is an easy way to understand and locate the problem. The "heavenly book" log system is bad and unreasonable.
Function
In kernel programming, functions should be as concise as possible and only complete relatively independent simple functions. The implementation of the function should not be too long, and the implementation of the function should be too long. You should reflect on how you can modify (or split) the function to make the function more concise and understandable.
Use astyle to format code automatically
parameter:
--style=allman
--indent=spaces=4
--indent-preproc-block
--pad-oper
--pad-header
--unpad-paren
--suffix=none
--align-pointer=name
--lineend=linux
--convert-tabs
--verbose
Specification Reference
AliOS-Things - 《AliOS Things Coding Style Guide》
RT-Thread - 《RT-Thread Programming Style》


Superhero Form
About the Superhero
Real Name
Superhero Name
Age
About
Photo:
Powers
Telecinesis
Super strength of speed
Shapeshifting
Flight
Elemental control
Other
Level of control:
Origin of Powers
Unknown
Freak lab accident
Chusen by an ancient wise being
The superhero is not human
Other
CLEAR
SEND


- p_task_bidprice - Static variable in class project301.R.id
-
- p_task_destination - Static variable in class project301.R.id
-
- p_task_detail - Static variable in class project301.R.id
-
- p_task_idealprice - Static variable in class project301.R.id
-
- p_task_location - Static variable in class project301.R.id
-
- p_task_lowestbid - Static variable in class project301.R.id
-
- p_task_mybid - Static variable in class project301.R.id
-
- p_task_name - Static variable in class project301.R.id
-
- p_task_status - Static variable in class project301.R.id
-
- packed - Static variable in class project301.R.id
-
- paddingBottomNoButtons - Static variable in class project301.R.attr
-
May be a dimension value, which is a floating point number appended with a
unit such as "14.5sp
".
- paddingEnd - Static variable in class project301.R.attr
-
May be a dimension value, which is a floating point number appended with a
unit such as "14.5sp
".
- paddingStart - Static variable in class project301.R.attr
-
May be a dimension value, which is a floating point number appended with a
unit such as "14.5sp
".
- paddingTopNoTitle - Static variable in class project301.R.attr
-
May be a dimension value, which is a floating point number appended with a
unit such as "14.5sp
".
- panelBackground - Static variable in class project301.R.attr
-
May be a reference to another resource, in the form
"@[+][package:]type/name
" or a theme
attribute in the form
"?[package:]type/name
".
- panelMenuListTheme - Static variable in class project301.R.attr
-
May be a reference to another resource, in the form
"@[+][package:]type/name
" or a theme
attribute in the form
"?[package:]type/name
".
- panelMenuListWidth - Static variable in class project301.R.attr
-
May be a dimension value, which is a floating point number appended with a
unit such as "14.5sp
".
- parallax - Static variable in class project301.R.id
-
- parent - Static variable in class project301.R.id
-
- parent_matrix - Static variable in class project301.R.id
-
- parentPanel - Static variable in class project301.R.id
-
- password - Static variable in class project301.R.string
-
- password_toggle_content_description - Static variable in class project301.R.string
-
- passwordToggleContentDescription - Static variable in class project301.R.attr
-
May be a string value, using '\\;' to escape characters such as
'\\n' or '\\uxxxx' for a unicode character;
- passwordToggleDrawable - Static variable in class project301.R.attr
-
May be a reference to another resource, in the form
"@[+][package:]type/name
" or a theme
attribute in the form
"?[package:]type/name
".
- passwordToggleEnabled - Static variable in class project301.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- passwordToggleTint - Static variable in class project301.R.attr
-
May be a color value, in the form of "#rgb
",
"#argb
", "#rrggbb
", or
"#aarrggbb
".
- passwordToggleTintMode - Static variable in class project301.R.attr
-
Must be one of the following constant values.
- path_password_eye - Static variable in class project301.R.string
-
- path_password_eye_mask_strike_through - Static variable in class project301.R.string
-
- path_password_eye_mask_visible - Static variable in class project301.R.string
-
- path_password_strike_through - Static variable in class project301.R.string
-
- pay_button - Static variable in class project301.R.id
-
- phone - Static variable in class project301.R.string
-
- Photo - Class in project301
-
Photo class contains information for an array of base string64 bitmaps.
- Photo() - Constructor for class project301.Photo
-
- photoTest - Class in project301
-
This is the test for photo handling methods.
- photoTest() - Constructor for class project301.photoTest
-
- picture - Static variable in class project301.R.string
-
- pin - Static variable in class project301.R.id
-
- pink1 - Static variable in class project301.R.color
-
- place_autocomplete_button_padding - Static variable in class project301.R.dimen
-
- place_autocomplete_clear_button - Static variable in class project301.R.id
-
- place_autocomplete_clear_button - Static variable in class project301.R.string
-
- place_autocomplete_fragment - Static variable in class project301.R.layout
-
- place_autocomplete_item_powered_by_google - Static variable in class project301.R.layout
-
- place_autocomplete_item_prediction - Static variable in class project301.R.layout
-
- place_autocomplete_powered_by_google - Static variable in class project301.R.id
-
- place_autocomplete_powered_by_google_height - Static variable in class project301.R.dimen
-
- place_autocomplete_powered_by_google_start - Static variable in class project301.R.dimen
-
- place_autocomplete_prediction_height - Static variable in class project301.R.dimen
-
- place_autocomplete_prediction_horizontal_margin - Static variable in class project301.R.dimen
-
- place_autocomplete_prediction_primary_text - Static variable in class project301.R.color
-
- place_autocomplete_prediction_primary_text - Static variable in class project301.R.dimen
-
- place_autocomplete_prediction_primary_text - Static variable in class project301.R.id
-
- place_autocomplete_prediction_primary_text_highlight - Static variable in class project301.R.color
-
- place_autocomplete_prediction_secondary_text - Static variable in class project301.R.color
-
- place_autocomplete_prediction_secondary_text - Static variable in class project301.R.dimen
-
- place_autocomplete_prediction_secondary_text - Static variable in class project301.R.id
-
- place_autocomplete_progress - Static variable in class project301.R.id
-
- place_autocomplete_progress - Static variable in class project301.R.layout
-
- place_autocomplete_progress_horizontal_margin - Static variable in class project301.R.dimen
-
- place_autocomplete_progress_size - Static variable in class project301.R.dimen
-
- place_autocomplete_search_button - Static variable in class project301.R.id
-
- place_autocomplete_search_hint - Static variable in class project301.R.color
-
- place_autocomplete_search_hint - Static variable in class project301.R.string
-
- place_autocomplete_search_input - Static variable in class project301.R.id
-
- place_autocomplete_search_text - Static variable in class project301.R.color
-
- place_autocomplete_separator - Static variable in class project301.R.color
-
- place_autocomplete_separator - Static variable in class project301.R.id
-
- place_autocomplete_separator_start - Static variable in class project301.R.dimen
-
- PlaceArrayAdapterController - Class in project301.controller
-
Calls Google Place API to get suggestions for requester when posting
a new task
- PlaceArrayAdapterController(Context, int, LatLngBounds, AutocompleteFilter) - Constructor for class project301.controller.PlaceArrayAdapterController
-
Constructor
- PlaceArrayAdapterController.PlaceAutocomplete - Class in project301.controller
-
- placeId - Variable in class project301.controller.PlaceArrayAdapterController.PlaceAutocomplete
-
- places_ic_clear - Static variable in class project301.R.drawable
-
- places_ic_search - Static variable in class project301.R.drawable
-
- Platform_AppCompat - Static variable in class project301.R.style
-
- Platform_AppCompat_Light - Static variable in class project301.R.style
-
- Platform_ThemeOverlay_AppCompat - Static variable in class project301.R.style
-
- Platform_ThemeOverlay_AppCompat_Dark - Static variable in class project301.R.style
-
- Platform_ThemeOverlay_AppCompat_Light - Static variable in class project301.R.style
-
- Platform_V21_AppCompat - Static variable in class project301.R.style
-
- Platform_V21_AppCompat_Light - Static variable in class project301.R.style
-
- Platform_V25_AppCompat - Static variable in class project301.R.style
-
- Platform_V25_AppCompat_Light - Static variable in class project301.R.style
-
- Platform_Widget_AppCompat_Spinner - Static variable in class project301.R.style
-
- popupMenuStyle - Static variable in class project301.R.attr
-
May be a reference to another resource, in the form
"@[+][package:]type/name
" or a theme
attribute in the form
"?[package:]type/name
".
- popupTheme - Static variable in class project301.R.attr
-
May be a reference to another resource, in the form
"@[+][package:]type/name
" or a theme
attribute in the form
"?[package:]type/name
".
- PopupWindow - Static variable in class project301.R.styleable
-
Attributes that can be used with a PopupWindow.
- PopupWindow_android_popupAnimationStyle - Static variable in class project301.R.styleable
-
This symbol is the offset where the
R.attr.popupAnimationStyle
attribute's value can be found in the
R.styleable.PopupWindow
array.
- PopupWindow_android_popupBackground - Static variable in class project301.R.styleable
-
This symbol is the offset where the
R.attr.popupBackground
attribute's value can be found in the
R.styleable.PopupWindow
array.
- PopupWindow_overlapAnchor - Static variable in class project301.R.styleable
-
This symbol is the offset where the
com.example.project301.R.attr#overlapAnchor
attribute's value can be found in the
R.styleable.PopupWindow
array.
- PopupWindowBackgroundState - Static variable in class project301.R.styleable
-
Attributes that can be used with a PopupWindowBackgroundState.
- PopupWindowBackgroundState_state_above_anchor - Static variable in class project301.R.styleable
-
- popupWindowStyle - Static variable in class project301.R.attr
-
May be a reference to another resource, in the form
"@[+][package:]type/name
" or a theme
attribute in the form
"?[package:]type/name
".
- post_button - Static variable in class project301.R.id
-
- post_list - Static variable in class project301.R.id
-
- post_new_task - Static variable in class project301.R.string
-
- postal_address - Static variable in class project301.R.string
-
- powered_by_google_dark - Static variable in class project301.R.drawable
-
- powered_by_google_light - Static variable in class project301.R.drawable
-
- preserveIconSpacing - Static variable in class project301.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- pressedTranslationZ - Static variable in class project301.R.attr
-
May be a dimension value, which is a floating point number appended with a
unit such as "14.5sp
".
- primary_dark_material_dark - Static variable in class project301.R.color
-
- primary_dark_material_light - Static variable in class project301.R.color
-
- primary_material_dark - Static variable in class project301.R.color
-
- primary_material_light - Static variable in class project301.R.color
-
- primary_text_default_material_dark - Static variable in class project301.R.color
-
- primary_text_default_material_light - Static variable in class project301.R.color
-
- primary_text_disabled_material_dark - Static variable in class project301.R.color
-
- primary_text_disabled_material_light - Static variable in class project301.R.color
-
- print1 - Static variable in class project301.R.id
-
- print10 - Static variable in class project301.R.id
-
- print12 - Static variable in class project301.R.id
-
- print14 - Static variable in class project301.R.id
-
- print3 - Static variable in class project301.R.id
-
- print4 - Static variable in class project301.R.id
-
- print6 - Static variable in class project301.R.id
-
- print7 - Static variable in class project301.R.id
-
- print9 - Static variable in class project301.R.id
-
- print_my_bid - Static variable in class project301.R.id
-
- print_name - Static variable in class project301.R.id
-
- print_passward - Static variable in class project301.R.id
-
- print_phone - Static variable in class project301.R.id
-
- profile_button - Static variable in class project301.R.id
-
- progress_circular - Static variable in class project301.R.id
-
- progress_horizontal - Static variable in class project301.R.id
-
- progressBarPadding - Static variable in class project301.R.attr
-
May be a dimension value, which is a floating point number appended with a
unit such as "14.5sp
".
- progressBarStyle - Static variable in class project301.R.attr
-
May be a reference to another resource, in the form
"@[+][package:]type/name
" or a theme
attribute in the form
"?[package:]type/name
".
- project301 - package project301
-
- project301.ActivityTest - package project301.ActivityTest
-
- project301.allUserActivity - package project301.allUserActivity
-
- project301.controller - package project301.controller
-
- project301.providerActivity - package project301.providerActivity
-
- project301.requesterActivity - package project301.requesterActivity
-
- project301.utilities - package project301.utilities
-
- provider - Static variable in class project301.R.string
-
- provider_bid_button - Static variable in class project301.R.id
-
- provider_bid_history - Static variable in class project301.R.id
-
- provider_bid_history - Static variable in class project301.R.layout
-
- provider_bid_lkist - Static variable in class project301.R.id
-
- provider_button - Static variable in class project301.R.id
-
- provider_icon - Static variable in class project301.R.drawable
-
- provider_list - Static variable in class project301.R.id
-
- provider_list_name - Static variable in class project301.R.id
-
- provider_main - Static variable in class project301.R.layout
-
- provider_map_button - Static variable in class project301.R.id
-
- provider_task_bid - Static variable in class project301.R.layout
-
- provider_task_finish - Static variable in class project301.R.layout
-
- provider_task_list - Static variable in class project301.R.id
-
- ProviderActivityTest - Class in project301.ActivityTest
-
Test for all provider activities.
- ProviderActivityTest() - Constructor for class project301.ActivityTest.ProviderActivityTest
-
- ProviderAdapter - Class in project301.providerActivity
-
This class is an adapter for the task arrayList to show on the UI
- ProviderAdapter(Context, ArrayList<Task>) - Constructor for class project301.providerActivity.ProviderAdapter
-
- ProviderAssignedAdapter - Class in project301.providerActivity
-
This class is an adapter for the assigned task arrayList to show on the UI
- ProviderAssignedAdapter(Context, ArrayList<Task>) - Constructor for class project301.providerActivity.ProviderAssignedAdapter
-
- ProviderBiddenAdapter - Class in project301.providerActivity
-
This class is an adapter for the bidden task arrayList to show on the UI
- ProviderBiddenAdapter(Context, ArrayList<Task>) - Constructor for class project301.providerActivity.ProviderBiddenAdapter
-
- ProviderBidHistoryActivity - Class in project301.providerActivity
-
This class shows a list of task that the status of the tasks are bidden, assigned or done
- ProviderBidHistoryActivity() - Constructor for class project301.providerActivity.ProviderBidHistoryActivity
-
- ProviderEditInfoActivity - Class in project301.providerActivity
-
This class used to change profile of the user, such as user name.
- ProviderEditInfoActivity() - Constructor for class project301.providerActivity.ProviderEditInfoActivity
-
- providerGetBiddenTasks() - Constructor for class project301.controller.TaskController.providerGetBiddenTasks
-
- ProviderMainActivity - Class in project301.providerActivity
-
User could change profile, see bid history, as well as look into a requesting task.
- ProviderMainActivity() - Constructor for class project301.providerActivity.ProviderMainActivity
-
- ProviderMainActivity.searchAllBiddenRequestingTasks - Class in project301.providerActivity
-
method search of entend asyntask
- ProviderMapActivity - Class in project301.providerActivity
-
ProviderMapActivity handles the map activity for the provider.
- ProviderMapActivity() - Constructor for class project301.providerActivity.ProviderMapActivity
-
- ProviderMapSpecActivity - Class in project301.providerActivity
-
Detail : Click the view on map on a specific task, we can see the location of the specific task on the map.
- ProviderMapSpecActivity() - Constructor for class project301.providerActivity.ProviderMapSpecActivity
-
- providerSetBid(Task, Bid) - Constructor for class project301.controller.TaskController.providerSetBid
-
- providerSetBidTest() - Method in class project301.TaskTest
-
A static class to test providerSetBid in taskcontroller
- ProviderTaskBidActivity - Class in project301.providerActivity
-
This is the Activity class for user to bid on an exsiting task
- ProviderTaskBidActivity() - Constructor for class project301.providerActivity.ProviderTaskBidActivity
-
- ProviderTaskFinishActivity - Class in project301.providerActivity
-
After a task finished (or assigned), this Activity class shows the detail of the task
- ProviderTaskFinishActivity() - Constructor for class project301.providerActivity.ProviderTaskFinishActivity
-
- purple1 - Static variable in class project301.R.color
-
- purple2 - Static variable in class project301.R.color
-


The GitHub site (https://github.com/berkeley-scf/r-bootcamp-fall-2021) is the main site for the bootcamp. It has information on logistics, software installation, and is the master repository for materials for the modules.
If you have an administrative question, email<EMAIL_ADDRESS>The campus WiFi is now eduroam, not AirBears. Follow these instructions for how to set up your eduroam account. If you need wireless access as a guest (i.e., you don't have a CalNet ID), connect to 'CalVisitor'.
The bootcamp will be organized in modules, each of which will be a combination of lecture/demo presentation concluded by a breakout session in which you'll work on a variety of problems of different levels of difficulty. The idea is for each person to find problems that challenge them but are not too hard. Solutions to the breakout problems will be presented before the start of the next module.
Many of the modules will use a common dataset as an example on which to carry out various operations. We'll focus on dataset of demographic/economic information (population, GDP per capita, life expectancy) for many of the countries in the world every five years, provided by the Gapminder project. (Note that this is almost the full population of countries – I'll fit some statistical models but the interpretation is tricky as we are not working with a sample from a well-defined population.)
Counselors will be available to help answer any questions you have (just wave to one of them if you're in person), or feel free to just ask the presenter during the presentation. The counselors will also be monitoring the Piazza site and the D-Lab virtual fontdesk, so feel free to type in a question there (or send email to<EMAIL_ADDRESS>and one of the counselors will answer the question. Or if you know the answer, help us out by answering it yourself or adding your thoughts. Please don't use the Zoom chat except for pointing out any quick logistical issues.
Your counseloRs are: Your counseloRs are: Alice Cima (Statistics), Aaron Culich (D-Lab), Andrew Do (Statistics), Corrine Elliott (Statistics), Hikari Murayama (D-Lab), Avery Richards (D-Lab), Alex Stephenson (D-Lab), and Sean Wu (SPH PhD alum).
I encourage you to:
This is a bootcamp. So there may be some pain involved! If you find yourself not following everything, that's ok. You may miss some details, but try to follow the basics and the big picture.
A few additional thoughts on my pedagogical philosophy here:
We'll present most of the material from within RStudio, using R Markdown documents with embedded R code. R Markdown is an extension to the Markdown markup language that makes it easy to write HTML in a simple plain text format. This allows us to both run the R code directly as well as compile on-the-fly to an HTML file that can be used for presentation. All files will be available on GitHub.
Note: The files named moduleX_blah.html have individual slides, while the files named moduleX_blah_onepage.html have the same content but all on one page.
Warning: in some cases the processing of the R code in the R Markdown is screwy and the slides have error messages that do not occur if you just run the code directly in R or RStudio.
To download the files from GitHub, you can do the following.
Within RStudio go to File->New Project->Version Control->Git and enter:
Then to update from the repository to get any changes we've made, you can select (from within RStudio): Tools->Version Control->Pull Branches
or from the Environment/History/Git window, click on the Git tab and then on the blue down arrow.
Be warned that you probably do not want to make your own notes or changes to the files we are providing. Because if you do, and you then do a “Git Pull” to update the materials, you'll have to deal with the conflict between your local version and our version. You probably will want to make a personal copy of such files in another directory or by making copies of files with new names.
Run the following commands:
cd /directory/where/you/want/repository/located
git clone https://github.com/berkeley-scf/r-bootcamp-fall-2021
Then to update from the repository to get any changes we've made:
cd /directory/where/you/put/the/repository/r-bootcamp-fall-2021
git pull
If you don't want to bother using Git or have problems, simply download a zip file with all the material from https://github.com/berkeley-scf/r-bootcamp-fall-2021/archive/master.zip.
The pieces of an R session include:
RStudio provides an integrated development environment in which all of these pieces are in a single application and tightly integrated, with a built-in editor for your code/scripts.
Other software is better than R at various tasks
E.g., Python is very good for text manipulation, interacting with the operating system, and as a glue for tying together various applications/software in a workflow
R can be much slower than compiled languages (but is often quite fast with good coding practices!)
R's packages are only as good as the person who wrote them; no explicit quality control
R is a sprawling and unstandardized ecosystem
In addition to learning some R, this workshop will expose you to a way of thinking about doing your computational work.
The building blocks of scientific computing include:
During the afternoon break tomorrow, we'll ask everyone to fill out a feedback form, but if you leave early, please see Piazza for the link. In order to view the recordings after the last day of the bootcamp, you'll need to fill out the feedback form!


You are not an event organizer.


{% extends 'base.html' %} {% block title %}Ticket detail{% endblock title %} {% block content %}
Opened by {{ ticket.owner }}
{% if ticket.assigned_user %}Assigned to {{ ticket.assigned_user }}
{% endif %}Priority: {{ ticket.priority }}
Status: {{ ticket.status }}
Classification: {{ ticket.classification }}


Scr
Chk
Inp
Na
Ref
Edges:
Corners:
Check my memo!
Input from Nano Timer
Built by
Pandu Rendradjaja
on top of the work of
Joe Whitfield-Seed
.


Upon catching wind that the huge tree, which stands almost 12 metres high with wide branches spreading above Mpaka Road and Waiyaki Way junction, would be felled, residents and conservationists took to the streets in protest..