whY mountain
1,2,4,8,10,7,12,14,12
Extract Diagonal
Clear
Hide
1,2,4,8,10,7,12,14,12
Mode: once
Close
Show
H:
W:
font size:
font thickness:
line place:
line thickness:
Y sequence by Yukito
Version upper-branching diagonal-extracting.2


---
sort_order: 28
tei_id: rdx_b5j2m.p.idm206197104
annotation_count: 0
images:
small-thumbnail: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p748p/mini-thumbnail/
json: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p748p/info/
full: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p748p/fs/
page: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p748p/single-page/
thumbnail: http://readux.library.emory.edu/books/emory:b5j2m/pages/emory:p748p/thumbnail/
title: Page 28
number: 28
---
{% raw %}24 MRS. H. BEECHER STOWE's " UNCLE TOM."{% endraw %}
{% raw %}young buck, and running over with animal spirits.{% endraw %}
{% raw %}I could run faster, wrestle better, and jump higher{% endraw %}
{% raw %}than anybody about me, and at an evening shake¬{% endraw %}
{% raw %}down in our own or a neighbour's kitchen, my feet{% endraw %}
{% raw %}became absolutely invisible from the rate at which{% endraw %}
{% raw %}they moved. All this caused my master and my{% endraw %}
{% raw %}fellow-slaves to look upon me as a wonderfully smart{% endraw %}
{% raw %}fellow, and prophecy the great things I should do{% endraw %}
{% raw %}when I became a man. My vanity became vastly{% endraw %}
{% raw %}inflamed, and I fully coincided in their opinion.{% endraw %}
{% raw %}Julius Cocsar never aspired and plotted for the im¬{% endraw %}
{% raw %}perial crown more ambitiously than did I to out-hoe,{% endraw %}
{% raw %}out-reap, out-husk, out-dance, out-strip every com¬{% endraw %}
{% raw %}petitor ; and from all I can learn he never enjoyed{% endraw %}
{% raw %}his triumph half as much. One word of commen¬{% endraw %}
{% raw %}dation from the petty despot who ruled over us{% endraw %}
{% raw %}would set me up for a month.{% endraw %}
{% raw %}God be praised, that, however hedged in by cir¬{% endraw %}
{% raw %}cumstances, the joyful exuberance of youth will{% endraw %}
{% raw %}bound at times over them all. Ours is a light-{% endraw %}
{% raw %}hearted race. The sternest and most covetous{% endraw %}
{% raw %}master cannot frighten or whip the fun out of us;{% endraw %}
{% raw %}certainly old Riley never did out of me. In those{% endraw %}
{% raw %}days I had many a merry time, and would have had,{% endraw %}
{% raw %}had I lived with nothing but moccasins and rattle¬{% endraw %}
{% raw %}snakes in Okafenoke swamp. Slavery did its best to{% endraw %}
{% raw %}make me wretched, but, along with memories of miry{% endraw %}
{% raw %}cabins, frosted feet, weary toil under the blazing{% endraw %}
{% raw %}sun, curses and blows, there flock in others, of{% endraw %}
{% raw %}jolly Christmas times, dances before old massa's door{% endraw %}
{% raw %}for the first drink of egg-nog, extra meat at holiday{% endraw %}
{% raw %}times, midnight-visits to apple-orchards, broiling{% endraw %}


milsa buttons
Pear
Free download
Solaris
Start your trial
Blazed
Get started
Metoxy
Get started
Krabis
Try it free
Trammy
Sign up
Pimeo
Sign up
Deeper
Click here
Jolly
Subscribe
Elasti
Download
Dank
Sign Up


Welcome!
Welcome to the official site of Moon Bootz!
Product Details
Waiver
High Jump
Richard Kelland
Source
License


Tutorial : Scenes and Scene Jumping
Objects: VSceneJumpTrack, VSceneJumpEvent
A Scene Jump Event will shift the position of the root Controller upon triggering. Scenes are defined in the sequences Director Track. If no Director Track exists, or the scene you are attempting to jump to is invalid, then no jump will occur.
You can use this Event type to loop sections of your sequence or create interactive or branched sequences.
How to Use:
To use Scene Jump events, you must first add a VSceneJumpTrack to your sequence's Director Group.If you are unsure of how to create or validate a Group, click here.
You must also set up your sequence to use Scene Labels. Scenes are defined by the labels given to Director Events in your sequence. When your Director cuts or changes camera views, you can define the segment as a new Scene. For more information, see the documentation for the Director Group.
Right-Click on the Group, go to "Add Track" and select "Add Scene Jump Track".
Right-Click on the Track and select "Add Event".
Select the newly created Event. The Property List window will refresh and inspect the Event. To change which Scene you would like to jump to once the Event has been triggered, select a valid Scene from the dropdown menu for the Event's "Target" property.


[§150A-5.6] Exceptions to the right to import. Nothing in this chapter shall permit the importation of any animal or article if the same, or any of them, has, by rule of the department been prohibited. [L 1985, c 133, §5]


Communication between integrated clients objects¶
As shown in Sending/receiving tables and images over SAMP, the SAMPIntegratedClient
class can be
used to communicate with other SAMP-enabled tools such as TOPCAT, SAO Ds9, or Aladin Desktop.
In this section, we look at how we can set up two SAMPIntegratedClient
instances and communicate between them.
First, start up a SAMP hub as described in Starting and stopping a SAMP hub server.
Next, we create two clients and connect them to the hub:
>>> client1 = samp.SAMPIntegratedClient(name="Client 1", description="Test Client 1",
... metadata = {"client1.version":"0.01"})
>>> client2 = samp.SAMPIntegratedClient(name="Client 2", description="Test Client 2",
... metadata = {"client2.version":"0.25"})
>>> client1.connect()
>>> client2.connect()
We now define functions to call when receiving a notification, call or response:
>>> def test_receive_notification(private_key, sender_id, mtype, params, extra):
... print("Notification:", private_key, sender_id, mtype, params, extra)
>>> def test_receive_call(private_key, sender_id, msg_id, mtype, params, extra):
... print("Call:", private_key, sender_id, msg_id, mtype, params, extra)
... client1.ereply(msg_id, SAMP_STATUS_OK, result = {"txt": "printed"})
>>> def test_receive_response(private_key, sender_id, msg_id, response):
... print("Response:", private_key, sender_id, msg_id, response)
We subscribe client 1 to "samp.*"
and "samp.app.*"
and bind them to the
related functions:
>>> client1.bind_receive_notification("samp.app.*", test_receive_notification)
>>> client1.bind_receive_call("samp.app.*", test_receive_call)
We now bind message tags received by client 2 to suitable functions:
>>> client2.bind_receive_response("my-dummy-print", test_receive_response)
>>> client2.bind_receive_response("my-dummy-print-specific", test_receive_response)
We are now ready to test out the clients and callback functions. Client 2 notifies all clients using the “samp.app.echo” message type via the hub:
>>> client2.enotify_all("samp.app.echo", txt="Hello world!")
['cli#2']
Notification: 0d7f4500225981c104a197c7666a8e4e cli#2 samp.app.echo {'txt':
'Hello world!'} {'host': 'antigone.lambrate.inaf.it', 'user': 'unknown'}
We can also find a dictionary giving the clients that would currently receive
samp.app.echo
messages:
>>> print(client2.getSubscribedClients("samp.app.echo"))
{'cli#2': {}}
Client 2 calls all clients with the "samp.app.echo"
message type using
"my-dummy-print"
as a message-tag:
>>> print(client2.call_all("my-dummy-print",
... {"samp.mtype": "samp.app.echo",
... "samp.params": {"txt": "Hello world!"}}))
{'cli#1': 'msg#1;;cli#hub;;cli#2;;my-dummy-print'}
Call: 8c8eb53178cb95e168ab17ec4eac2353 cli#2
msg#1;;cli#hub;;cli#2;;my-dummy-print samp.app.echo {'txt': 'Hello world!'}
{'host': 'antigone.lambrate.inaf.it', 'user': 'unknown'}
Response: d0a28636321948ccff45edaf40888c54 cli#1 my-dummy-print
{'samp.status': 'samp.ok', 'samp.result': {'txt': 'printed'}}
Client 2 then calls client 1 using the "samp.app.echo"
message type,
tagging the message as "my-dummy-print-specific"
:
>>> try:
... print(client2.call(client1.getPublicId(),
... "my-dummy-print-specific",
... {"samp.mtype": "samp.app.echo",
... "samp.params": {"txt": "Hello client 1!"}}))
... except SAMPProxyError as e:
... print("Error ({0}): {1}".format(e.faultCode, e.faultString))
msg#2;;cli#hub;;cli#2;;my-dummy-print-specific
Call: 8c8eb53178cb95e168ab17ec4eac2353 cli#2
msg#2;;cli#hub;;cli#2;;my-dummy-print-specific samp.app.echo {'txt': 'Hello
Cli 1!'} {'host': 'antigone.lambrate.inaf.it', 'user': 'unknown'}
Response: d0a28636321948ccff45edaf40888c54 cli#1 my-dummy-print-specific
{'samp.status': 'samp.ok', 'samp.result': {'txt': 'printed'}}
We can now define a function called to test synchronous calls:
>>> def test_receive_sync_call(private_key, sender_id, msg_id, mtype, params, extra):
... import time
... print("SYNC Call:", sender_id, msg_id, mtype, params, extra)
... time.sleep(2)
... client1.reply(msg_id, {"samp.status": SAMP_STATUS_OK,
... "samp.result": {"txt": "printed sync"}})
We now bind the samp.test
message type to test_receive_sync_call
:
>>> client1.bind_receive_call("samp.test", test_receive_sync_call)
>>> try:
...  # If timeout expires than a SAMPProxyError is returned
... print("Error ({0}): {1}".format(e.faultCode, e.faultString))
SYNC Call: cli#2 msg#3;;cli#hub;;cli#2;;sampy::sync::call samp.test {'txt':
'Hello SYNCRO Cli 1!'} {'host': 'antigone.lambrate.inaf.it', 'user':
'unknown'}
{'samp.status': 'samp.ok', 'samp.result': {'txt': 'printed sync'}}
Finally, we disconnect the clients from the hub at the end:
>>> client1.disconnect()
>>> client2.disconnect()


--- layout: page title: "About" description: "Hey, this is hbkim." header-img: "img/about-bg-rwd.jpg" permalink: /about/ ---
Everyone thinks of changing the world, but no one thinks of changing himself.
- Leo Tolstoy
꼭 개발만이 아니라 무언가를 만드는 것을 좋아합니다.
서비스를 직접 기획하고 개발하는 것이 가장 즐겁고 지금은 덕업일치를 실현중입니다 :)
프로젝트 내용이 궁금하신 분은 링크를 참고해주세요.
Everyone thinks of changing the world, but no one thinks of changing himself.
- Leo Tolstoy
Hi, I am Kim Heebeom，you can call me hbkim. I am an iOS software engineer and currently working in NHN. My personal hobbies are reading and programming.


Response
public extension Response
This is the extension of Response
class in the BMSCore
.
It is used to handle the responses from the push REST API calls.
-
This methode will convert the response that get while calling the
retrieveSubscriptionsWithCompletionHandler
in `BMSPushClient’ class into an array of Tags and send to the Client app.This will use the public property
responseText
in theResponse
Class.Declaration
Swift
func subscriptions() -> NSMutableArray
-
This methode will convert the response that get while calling the
subscribeToTags
in `BMSPushClient’ class into an Dictionary of details and send to the Client app.This will use the public property
responseText
in theResponse
Class.Declaration
Swift
func subscribeStatus() -> NSMutableDictionary
-
This methode will convert the response that get while calling the
unsubscribeFromTags
in `BMSPushClient’ class into an Dictionary of details and send to the Client app.This will use the public property
responseText
in theResponse
Class.Declaration
Swift
func unsubscribeStatus() -> NSMutableDictionary
-
This methode will convert the response that get while calling the
retrieveAvailableTagsWithCompletionHandler
in `BMSPushClient’ class into an array and send to the Client app.This will use the public property
responseText
in theResponse
Class.Declaration
Swift
func availableTags() -> NSMutableArray


I decided to send this experience report into Erowid because I believe others can truly benefit from the experience and advice described within. So, with no further ado, enjoy!
Out of any entheogen I have ever tried, psiloscin/psilocybin mushrooms have remained my favorite ever since my first experience with them. In my entire life, (also over this past year) I have orally ingested mushrooms 5 times, amounting to 3/8ths of an ounce. The first four times I tripped, I had 1/16th of an ounce each time. The fifth and last, however, was a full 1/8th of an ounce.
It was a Sunday evening, about 6:00 P.M., and I was very bored, sitting at my computer and exchanging instant messages with my friends. At some point, my friend Jake sent me a message asking me if I wanted to buy some mushrooms off of him. Jake is known for being a) loaded, b) generous, and c) incredibly well connected to many local sources of many different kinds of drugs. Thus, he was willing to sell me an eighth of the ounce he had just bought for a mere 35 dollars. Aside from a generosity, the large amount of drugs in my upper-middle class suburban town somewhat diminishes the price of any drug around here.
 I just happened to also be meeting my neighbor Jake along the way and picking up psychotropic mushrooms from him. When I got home, about 30 minutes later, I pulled the mushrooms from my pocket and looked at them. Trustworthy Jake had yet again pleased me greatly. I had in my possession a 'large' eighth, moderately crushed inside the sandwich bag. There were several moderately large caps in the bag, and with satisfaction I put them in my stash box.
Over the next several hours, a small desire to trip grew. I kept telling myself I shouldn't take mushrooms on a Sunday night by myself in my room, seeing as I would be practically dead in school the next day, not to mention the fact that being alone on mushrooms can be a very bad idea for some. I also thought it might be bad to take the mushrooms because my girlfriend was decidedly anti-drug at the time, and me taking any drugs could greatly upset her and send her into a deep fit of depression and self-abuse that used to be part of her everyday life.
At about 9:30, however, my desire to trip grew large enough to eclipse my good judgement. I promised myself I would take a full eighth of an ounce at 10:30, and I made all the necessary preparations. I dressed in very comfortable clothing, in layers so I could take off some clothing as my body heat rose (as it tends to do while tripping). I also got some vitamin C lozenges, orange juice, and water to help get the mushrooms down.
By 10:35, my parents were asleep, and I took the mushrooms. I poured the entire contents of the bag into my mouth and chewed. I have found that chewing mushrooms before 10 minutes before swallowing made my trip much more intense and profound, with pronounced visuals. I also ate with them the vitamin c lozenges and drank a glass of orange juice. I experienced almost nonexistent nausea, which only lasted for a few minutes. I then put on some John Coltraine, turned on all my colored lights, and turned off my regular lights. After this favorite setting of mine was prepared, I lay down on my bed and waited for the mushrooms to take effect.
It is at this point that the mindset responsible for the characteristics of my trip was created. As I relaxed and did nothing, before the effects were felt, I thought it might have been a bad idea to take the mushrooms, that I should have just taken some Benadryl to get to bed early.  This part tried to push the other part out of my head, but with each effort to forget about my concerns and anxieties, the doubt grew in my head.
In order to relieve my anxiety and get myself pumped for the trip, I called my friend Nick. He and I have taken mushrooms together before, as we have with many other drugs. Nick and I essentially have a connection and chemistry that makes us feel so comfortable around each other. I went to Nick's phone number on my cell phone's speed dial and I called him up. Nick thought it was incredibly brave that I had taken such a large dose, and I agreed with him. He eventually decided that because I was going to be tripping, he should get his 2 grams of mushrooms and take them as well, alone, in his room, while talking with me on the phone.
Over this period of time, I could feel the mushrooms taking effect. Colors appeared very bright, and my depth perception was somewhat skewed. Time also began to slow down a little bit. I also looked at pictures and posters on my wall, and they seemed to be rippling on the surface of water. My sentences became less coherent as my conversation with Nick progressed, and I became giddy with excitement to the point where I couldn't help but giggle as I spoke to him about how tonight was going to rock, and all things regarding drugs, etc.
At around 11:00, my visual perception was considerably distorted, and I was feeling incredibly euphoric. Looking at different sections of my wall, they had the appearance that they were falling off and floating into black, empty space. These were the most intense experiences I had on mushrooms up to that moment, and I hadn't even peaked yet.
At this point, I heard my mother open the door of my parents' bedroom, which is adjacent to mine. She opened the door, and in an annoyed voice she said, 'Andy, go to bed.'
Nervously, I told nick that I had to go and I closed my phone very slowly. Could my mom have heard what I was saying and known that I had taken mushrooms? Was she going to then sit me down after school tomorrow? This must be the explanation for why she was so annoyed, because she seemed considerably more upset than she usually did when I was on the phone too late. My mind began to race and for a short eternity I was so completely confused and anxious. I knew what to do! I could text message Nick, and ask him if I had been talking too loudly. I was sure he would reassure me, and I could continue on with what had started as a good trip.
I text messaged Nick with the words 'Was I talking too loudly?' I waited for what seemed like hours for a reply, but soon enough (after only several minutes had passed, according to my clock) my phone made a soft, muted sound as the text message was received. I opened up my phone, and I directed myself to where I could read the message. It was one word:
'Possibly'
I stared at the phone for what seemed like forever. She heard me. I knew it. I was done for. I was busted.
The increasing negativity of my experience seemed to flow through me like a horrible current, electrifying my body with more strength each second. Frantically, I tried sending Nick another message. I could barely get to the place where I could compose a message. I tried in vain to say something to Nick, but I failed. All the while, every time I pressed a button on my phone, a faint beep was emitted from the speakers. This became the phone's voice, and it began to speak to me in its language of beeps. My phone was very disappointed, and it was almost mocking me. 'doot doot doot doot doot doot,' it said, jabbing its finger at me.  The phone reminded me of some little child who didn't understand the world, and was simply parroting what it had heard from the media, its parents, etc regarding drugs. I connected this with my mother, who I often think of in the same way when it comes to drugs.
I couldn't take the phone's scolding any longer. I shut it, and put it on my bedside table. I tried to relax, but I could only think about what I had done wrong.
I looked around my room, and it seemed completely alien, unfamiliar, and discomforting. My guitar had become a sickening creature, and my Black Sabbath poster stared malevolently at me from its position on my wall. Most of the walls were falling away, breaking physical bonds and reforming them at every moment. This time I was sure the physical world was falling apart, as was my life now. I thought I was going to suffer a fate worse than death, and at some points I wanted to kill myself.
At some point during this I had gotten up and changed my music to Pink Floyd - Animals. This did not help my state I became continuously more depressed, and my experience became continuously more horrific. Minutes seemed to pass like hours, and every second I wanted the trip to just end so I could get to sleep. Several times I left my bed and got out of my room to use the bathroom. Each time, the banister posts on my stairs looked like wooden snakes standing on end, squirming and writhing violently to keep themselves vertical. The colors in this scene were so vibrant that I could not help but be amazed. I also had the sensation that the floor under my feet was rippling and shaking violently, and I had to keep stretching my legs and jumping to maintain my footing on the uneven, constantly changing terrain.
I took a piss and flushed the toilet, after which I decided to take a look in the mirror. My face was fluid, and it seemed to drip into the sink below. I touched it, and it felt like a viscous, oily substance that could get very messy.  Colors also seemed to dance around my body. These must have been the symbolization that I was on mushrooms and not any other object or person I was in contact with.
Upon the return to my room, the anxiety continued to build. I tried putting on different music--didn't help. I had no idea what to do, but I knew I wanted it all to stop, to end, to just fade away. There was no solution though, except to crawl into my mom's arms, crying, pleading for forgiveness and asking the heavens why I took mushrooms. I almost got up to do this when my racing mind came to a halt.
Jake!
Even though it felt like days had passed, I was sure it wasn't too late to call Jake, seeing as he is often up very late. I looked at my clock, and the twisted, almost unrecognizable numbers said the time was 11:40. I knew I could call Jake. I searched for my cell phone, but it was nowhere to be found. Again the fear grew within me, but I soon realized what became my savior that night: things make sense. I realized that on some basic level, things make sense. Thus I knew how to find my phone. I located the charger cable and followed it to the power socket, from where I followed it back to its end, in my bed. There was no phone on the end of it, but I knew this must mean that it was on my bedside table. How I knew this, I cannot explain. I just knew it.
I called Jake, and he picked up, sounding tired. 'Duuuuude,' I said, in a long, moaning drawl. 'I ate all those mushrooms, maaaan. The full eighth.' I could barely put these sentences together, but somehow I managed to.
'All of them?' he asked.
'Yeah, man.
'I ingested at 10:35'
'Well, all I can tell you is that you'll be going really strong till about 1 in the morning, at which point you can probably fall asleep. For now, just put on some Grateful Dead, and just relax.  Don't try to deny what's happening to you.'
'Thanks man. Talk to you later.'
I hung up the phone, and lay in my bed. I didn't have any Grateful Dead, so instead I put on some Tarbox Ramblers, a really great folk rock group. However, the music made me want to kill myself again, and I couldn't take it. Anything I played was horrible, and certainly not the Grateful Dead, so I turned all my music off. I turned all my lights off.  In doing this, I seemed to turn the bad trip off.
I walked slowly back to my bed, and slipped under the covers. Soon, the physical world began to melt, and a feeling of amazing calamity overcame me. In the blackened room, my mind began to synthesize images and scenes, and soon enough I was no longer in my room.
I was in a black void, an absence of existence. The miniscule, unimportant thing known as existence stretched in a two dimensional ribbon along this continuum. Like a strip of film, it had frames, but each frame was a different time and place in the universe, and each was a portal to that time and place. It was then that I realized hat existence didn't exist, and my mind screamed. I pulled a giant sword from nowhere and sliced the ribbon in two. It split, and in a cartoon-like manner, it began to writhe and die.
After an eternity in a world free of existence, I returned to my room, still tripping hard. Every sight, every sound, every tick of a clock, every breath, and everything in the room had some kid of bizarre reverb attached to it. Reverb…and desire. I knew this was the secret to life. Reverb and desire! Oh my god! It was amazing. I repeated it over to myself once, twice, a million times. I called Nick, who was also tripping on mushrooms. 'Reverb and desire!' I blurted. 'Don't you get it? Reverb and desire!'
'What?'
'Reverb and desire. Like at the end of that Sublime song, Garden Grove. It's the reverb and desire man!'
'Did you take mushrooms?'
'Yes! So did you. But don't you feel it man, reverb and desire!'
I continued to repeat this phrase until I decided to hang up the phone. I lay in bed, purely ecstatic about the discovery I had made. As I lay motionless, I continued to let my brain synthesize my surroundings. I was in space, in a sea, and anywhere I wanted to be. However, these settings were less realistic than the amazing experience slashing the ribbon of existence. All the while during these experiences, I knew I was still in my room and simply on drugs (pardon the cliché).
For what I believe was the third and final time that night, I got up to use the bathroom. Again, the posts looked bizarre and the ground rippled, but as I was coming down off the trip, everything was more normal. However, every second I walked, every step I took, I heard voice behind me: my mother, my father, and at times the entire world. They seemed to whisper unintelligibly until I turned around, and all I would see was an empty hallway. As I entered the bathroom, I heard my mother's voice clearly behind me. Andy, what are you doing? In paranoid fear, I shook, and I turned around. Nothing.
I closed the door, took a piss, and looked in the mirror again.  I smiled.
I walked calmly back to my room, and dropped onto my bed. I took a look at my clock. 4:05 it read. I was still tripping, and I had a hard time getting to sleep. However, at some point I may have caught some winks. Even so, it could have simply been the dreamlike trance of the trip. In any case, at 6:45, while I was still tripping very lightly, my mother aroused me from my bedroom.
I showered, dressed, and grabbed a granola bar. I headed out to school, and into my history class. I related pieces of my experience to my classmate Ken, and he thought it was some of the craziest stuff he had ever heard. When given a dirty look by the teacher, I turned to the paper on my desk. The black letters seemed to float in a sea of white, which made me smile. These were the last recognizable effects of the trip, and in these last moments of psychedelic revelation, I wrote a short poem on my paper:
Existence doesn't exist
Cut the world with fire
The answer to your question
Is reverb and desire
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.


Last Updated: {{resource.last_updated | date:'longDate'}}
{{resource.description}}
About {{resource.milesFrom(mapLoc)}} miles away


Guess the word GAME!
Word:
Note: Reloading the page resets the game
Enter your letter:
Guess!
Your score:
Fail tries left:


After countless trial and errors, it may look as though I'm getting the hang of this whole HTML & CSS thing. Although I'm off to a good start, don't let looks fool you as I still have a lot to work on. For my first Critical Self Reflection I will be discussing what I felt while making my website and how I feel about it at this stage.
Before I begin, I would like to give credit to Codecademy as their tutorials on HTML, CSS and Git were extremely helpful in being introduced to coding.
Learning to Code
A few summers ago I tried to teach myself how to code. There wasn't any motive in particular that made me want to learn; I thought it was cool and that it was a handy skill to learn. Unfortunately, I didn't get very far in teaching myself but at least now I'm actually learning it now.
I was able to complete 4 tutorials on Codecademy (HTML, CSS, Git, and Make Your Own Website). Even though doing tutorials and semi-coding my own webste is quite different from each other, doing as many tutorials as I did made it a little easier to make the website my own.
Creating the Website
The website that you're currently veiwing is based off of a theme from the Bootstrap website and from there I was able to upload the theme into Github and begin making it my own.
When I was choosing a theme, I wanted to choose one that would easy to customize, clean, and easy to navigate. The Creative theme was able to do just that. There is still a lot that I need to modify but I feel confident I'm off to a decent start.
The most difficult part for me is understanding and getting used to HTML and CSS. Making sure the code is in the right place is one of my biggest issues but I know that over the course of the senester I'll be able to gain plenty of practice with this.
Successes and Notes for Moving Forward
I think having this website up and running is already a success in itself as I was not entirely sure of how it would go. Even though I kept most of the basic elements of the template, they will most likely change as I continue to work on the website throughout the semester. I do like having the option to scavenge for code and being able to utilize it in our websites (with given credit of course) but also having the knowledge of being able to code is a skill that I believe is highly useful and can open up many avenues in future endeavors.
In context with this course and relating it to digital archaeology, I believe that this is a great way to engage with the digital world and share our thoughts with the public. I tend to be more of a social media hermit as I only use a couple of platforms but having the opportunity to create something that can contribute and give us a headstart on our professonal careers in anthropology, makes me feel as though as I should possibly be doing more to expand my reach. I hope to get better at this and continue to use this even when the semester is over and be more engage with social media.
Placeholder text by Space Ipsum. Photographs by NASA on The Commons.


I'm originally from Richmond, Virginia. I enjoy writing, cherry blossoms, animals and have Bachelors and Masters in Music. I am a huge Anglophile and love spending time watching British TV shows.
I came to programming the long way round. As the child of history professors, I was steered towards law as a profession. But my passion was singing, so I chose to major in music and train to become an opera singer.
The world of the arts of one of privation. It can take many years to be ready for a performance career. In the meantime, life doesn't stop. Rent still needs to be paid. I took day jobs in companies in whatever role I could get that would let me leave at 5 pm - not always easy in our society of overachievers. But my priority was to be able to sing at night, so I took boring, low-level jobs as a result.
I dreamed about a more challenging job that would have some flexibility while paying better and giving me more security. But two degrees in music aren't worth the paper they are written on outside of the arts world. I considered becoming a developer over 10 years ago. But that would have entailed getting another degree and the current zeitgeist was that programming jobs would be outsourced. No one forsaw the Internet Revolution.
After too many years being bored every day by my job, I decided to teach voice lessons full-time. I had done some teaching on the weekends since grad school, but wanted to immerse myself in my passion for singing by helping others who were struggling. Little did I know that having a successful teaching studio is less about being a great teacher than being able to market yourself.
So, here I am, a few years later. I'm still looking for the ideal job to provide a stable income, so I can pursue singing and teaching without starving in an attic. Developing is just that career for me. It is challenging and creative, yet offers flexibility. I love working in pairs and solving a problem. I know I can be a successful programmer, if I can just make it through Dev Bootcamp!


Submit


New Tab Suspender
1.9
Suspend after:
5 Seconds
10 Seconds
30 Seconds
1 Minutes
2 Minutes
3 Minutes
5 Minutes
10 Minutes
15 Minutes
20 Minutes
30 Minutes
1 Hour
2 Hours
5 Hours
Do not suspend this tab
Add this URL Host to whitelist
Ignore audible tabs
Ignore pinned tabs
Disable Tab Suspender
Whitelist


Constructor
new WebMergeAPI(key, secret)
Create an API client that uses callbacks.
Parameters:
| Name |
Type |
Description |
key |
string
|
API key |
secret |
string
|
API secret |
- Source:
Methods
combineFiles(data, callback)
Combine multiple files (pages) into a single file.
Parameters:
- Source:
convertToPDF(data, callback)
Convert file to PDF.
Parameters:
| Name |
Type |
Description |
data |
Object
|
Properties
| Name |
Type |
Description |
file |
Object
|
Properties
| Name |
Type |
Description |
name |
string
|
File Name |
url |
string
|
Remote File URL (required if 'contents' is empty) |
contents |
string
|
Base64-encoded file (required if 'url' is empty) |
|
|
callback |
|
|
- Source:
copyDocument(id, data, callback)
Create a copy of a document.
Parameters:
| Name |
Type |
Description |
id |
number
|
Document ID |
data |
Object
|
Properties
| Name |
Type |
Description |
name |
string
|
Name of the new document |
|
callback |
|
|
- Source:
createDataRoute(data, callback)
Create a new data route.
Parameters:
| Name |
Type |
Description |
data |
Object
|
https://www.webmerge.me/developers/routes |
callback |
|
|
- Source:
createDocument(data, callback)
Create a new document.
Depending on the type of document you are creating, different parameters are required
Parameters:
- Source:
deleteDataRoute(id, callback)
Delete a data route.
Parameters:
| Name |
Type |
Description |
id |
number
|
Data Route ID |
callback |
|
|
- Source:
deleteDocument(id, callback)
Delete a document.
Parameters:
| Name |
Type |
Description |
id |
number
|
Document ID |
callback |
|
|
- Source:
getDataRoute(id, callback)
Retrieve a specific data route.
Parameters:
| Name |
Type |
Description |
id |
number
|
Data Route ID |
callback |
|
|
- Source:
getDataRouteFields(id, callback)
Retrieve a list of fields for a specific data route.
This includes fields from all documents in routing rules.
Parameters:
| Name |
Type |
Description |
id |
number
|
Data Route ID |
callback |
|
|
- Source:
getDataRouteRules(id, callback)
Retrieve a list of rules for a specific data route.
Parameters:
| Name |
Type |
Description |
id |
number
|
Data Route ID |
callback |
|
|
- Source:
getDataRoutes(callback)
Retrieve a list of data routes.
Parameters:
| Name |
Type |
Description |
callback |
|
|
- Source:
getDocument(id, callback)
Retrieve a specific document.
Parameters:
| Name |
Type |
Description |
id |
number
|
Document ID |
callback |
|
|
- Source:
getDocumentFields(id, callback)
Retrieve a list of fields for a specific document.
Parameters:
| Name |
Type |
Description |
id |
number
|
Document ID |
callback |
|
|
- Source:
getDocumentFiles(id, callback)
Retrieve the file that was uploaded for a specific document (pdf, docx, xlsx, or pptx).
Parameters:
| Name |
Type |
Description |
id |
number
|
Document ID |
callback |
|
|
- Source:
getDocuments(options, callback)
Retrieve a list of documents.
Parameters:
| Name |
Type |
Description |
options |
Object
|
null
|
Properties
| Name |
Type |
Description |
search |
string
|
Search term |
folder |
string
|
Folder name |
|
callback |
|
|
- Source:
mergeDataRoute(id, key, data, isTestMode, downloadFile, callback)
Merge a data route.
Parameters:
| Name |
Type |
Description |
id |
number
|
Document ID |
key |
string
|
Document key |
data |
Object
|
Data to be merged |
isTestMode |
boolean
|
Merge the document in "test" mode |
downloadFile |
boolean
|
Return the merged document in response |
callback |
|
|
- Source:
mergeDocument(id, key, data, isTestMode, downloadFile, callback)
Merge a document.
Parameters:
| Name |
Type |
Description |
id |
number
|
Document ID |
key |
string
|
Document key |
data |
Object
|
Data to be merged |
isTestMode |
boolean
|
Merge the document in "test" mode |
downloadFile |
boolean
|
Return the merged document in response |
callback |
|
|
- Source:
updateDataRoute(id, data, callback)
Update a data route.
Parameters:
| Name |
Type |
Description |
id |
number
|
Data Route ID |
data |
Object
|
|
callback |
|
|
- Source:
updateDocument(id, data, callback)
Update a document.
You cannot change the type of document, but you can change many of the other settings as well as change the
contents of the document. Only parameters that are sent in the request will be updated.
Parameters:
| Name |
Type |
Description |
id |
number
|
Document ID |
data |
Object
|
|
callback |
|
|
- Source:


Download the drools-examples zip; which is a self contained Eclipse project. The example project in eclipse requires that you have the plugin instilled: import the drools-examples project (it has an eclipse project already setup). The rules all have example classes that execute the rules. If you want to try the examples in another project (or another IDE) then you will need to setup the dependencies by hand of course.
Future documentation will include walk throughs for each of the examples.
This example demonstrates how Drools can be used to find a solution in a large potential solution space based on a number of constraints. We use the popular puzzle of Sudoku. This example also shows how Drools can be integrated into a graphical interface and how callbacks can be used to interact with a running Drools rules engine in order to update the graphical interface based on changes in the working memory at runtime.
Sudoku is a logic-based number placement puzzle. The objective is to fill a 9x9 grid so that each column, each row, and each of the nine 3x3 zones contains the digits from 1 to 9 once and only once.
The puzzle setter provides a partially completed grid and the puzzle solver's task is to complete the grid with these constraints.
The general strategy to solve the problem is to ensure that when you insert a new number it should be unique in that particular region(blocks) and also in that particular row and column.
See
URL: http://en.wikipedia.org/wiki/Sudoku |
Download and install drools-example as described above and then execute java org.drools.examples.sudoku.Main (this example requires Java 5).

Click on the Solve button and the Drools-based engine will fill out the remaining values. The console will display detailed information of the rules which are executing to solve the puzzle in a human readable form.
Rule #3 determined the value at (4,1) could not be 4 as this value already exists in the same column at (8,1) Rule #3 determined the value at (5,5) could not be 2 as this value already exists in the same row at (5,6) Rule #7 determined (3,5) is 2 as this is the only possible cell in the column that can have this value Rule #1 cleared the other PossibleCellValues for (3,5) as a ResolvedCellValue of 2 exists for this cell. Rule #1 cleared the other PossibleCellValues for (3,5) as a ResolvedCellValue of 2 exists for this cell. ... Rule #3 determined the value at (1,1) could not be 1 as this value already exists in the same zone at (2,1) Rule #6 determined (1,7) is 1 as this is the only possible cell in the row that can have this value Rule #1 cleared the other PossibleCellValues for (1,7) as a ResolvedCellValue of 1 exists for this cell. Rule #6 determined (1,1) is 8 as this is the only possible cell in the row that can have this value
Once all of the activated rules for the solving logic have executed, the engine executes a second rule base to check that the solution is complete and valid. In this case it is, and the "Solve" button is disabled and displays the text "Solved (1052ms)".
The example comes with a number of grids which can be loaded and solved. Click on File->Samples->Medium to load a more challenging grid. Note that the solve button is enabled when the new grid is loaded.
Click on the "Solve" button again to solve this new grid.
 Click on File->Samples->!DELIBERATELY BROKEN!. Note that this grid starts with some issues, for example the value 5 appears twice in the first row.
Nevertheless, click on the "Solve" button to apply the solving rules to this invalid Grid. Note that the "Solve" button is relabelled to indicate that the resulting solution is invalid.
In addition, the validation rule set outputs all of the issues which are discovered to the console. There are two cells on the same column with the same value at (6,0) and (4,0) There are two cells on the same column with the same value at (4,0) and (6,0) There are two cells on the same row with the same value at (2,4) and (2,2) There are two cells on the same row with the same value at (2,2) and (2,4) There are two cells on the same row with the same value at (6,3) and (6,8) There are two cells on the same row with the same value at (6,8) and (6,3) There are two cells on the same column with the same value at (7,4) and (0,4) There are two cells on the same column with the same value at (0,4) and (7,4) There are two cells on the same row with the same value at (0,8) and (0,0) There are two cells on the same row with the same value at (0,0) and (0,8) There are two cells on the same column with the same value at (1,2) and (3,2) There are two cells on the same column with the same value at (3,2) and (1,2) There are two cells in the same zone with the same value at (6,3) and (7,3) There are two cells in the same zone with the same value at (7,3) and (6,3) There are two cells on the same column with the same value at (7,3) and (6,3) There are two cells on the same column with the same value at (6,3) and (7,3)
We will look at the solving rule set later in this section, but for the moment we should note that some theoretically solvable solutions can not be solved by the engine as it stands. Click on File->Samples->Hard 3 to load a sparsely populated Grid.
Now click on the "Solve" button and note that the current rules are unable to complete the grid, even though (if you are a Sudoku afficiando) you may be able to see a way forward with the solution.
At the present time, the solving functionality has been achieved by the use of ten rules. This rule set could be extended to enable the engine to tackle more complex logic for filling grids such as this.
The Java source code can be found in the /src/main/java/org/drools/examples/sudoku directory, with the two DRL files defining the rules located in the /src/main/rules/org/drools/examples/sudoku directory.
org.drools.examples.sudoku.swing contains a set of classes which implement a framework for Sudoku puzzles. Note that this package does not have any dependencies on the Drools libraries. SudokuGridModel defines an interface which can be implemented to store a Sudoku puzzle as a 9x9 grid of Integer values, some of which may be null, indicating that the value for the cell has not yet been resolved. SudokuGridView is a Swing component which can visualise any implementation of SudokuGridModel. SudokuGridEvent and SudokuGridListener are used to communicate state changes between the model and the view, events are fired when a cell's value is resolved or changed. If you are familiar with the model-view-controller patterns in other Swing components such as JTable then this pattern should be familiar. SudokuGridSamples provides a number of partially filled Sudoku puzzles for demo purposes.
org.drools.examples.sudoku.rules contains an implementation of SudokuGridModel which is based on Drools. Two POJOs are used, both of which extend AbstractCellValue and represent a value for a specific cell in the grid, including the row and column location of the cell, an index of the 3x3 zone the cell is contained in and the value of the cell. PossibleCellValue indicates that we do not currently know for sure what the value in a cell is. There can be 2-9 PossibleCellValues for a given cell. ResolvedCellValue indicates that we have determined what the value for a cell must be. There can only be 1 ResolvedCellValue for a given cell. DroolsSudokuGridModel implements SudokuGridModel and is responsible for converting an initial two dimensional array of partially specified cells into a set of CellValue POJOs, creating a working memory based on solverSudoku.drl and inserting the CellValue POJOs into the working memory. When the solve() method is called it calls fireAllRules() on this working memory to try to solve the puzzle. DroolsSudokuGridModel attaches a WorkingMemoryListener to the working memory, which allows it to be called back on insert() and retract() events as the puzzle is solved. When a new ResolvedCellValue is inserted into the working memory, this call back allows the implementation to fire a SudokuGridEvent to its SudokuGridListeners which can then update themselves in realtime. Once all the rules fired by the solver working memory have executed, DroolsSudokuGridModel runs a second set of rules, based on validatorSudoku.drl which works with the same set of POJOs to determine if the resulting grid is a valid and full solution.
org.drools.examples.sudoku.Main implements a Java application which hooks the components desribed above together.
org.drools.examples.sudoku contains two DRL files. solverSudoku.drl defines the rules which attempt to solve a Sudoku puzzle and validator.drl defines the rules which determin whether the current state of the working memory represents a valid solution. Both use PossibleCellValue and ResolvedCellValue POJOs as their facts and both output information to the console as their rules fire. In a real-world situation we would insert() logging information and use the WorkingMemoryListener to display this information to a user rather than use the console in this fashion.
We start with the validator rules as this rule set is shorter and simpler than the solver rule set.
The first rule simply checks that no PossibleCellValue objects remain in the working memory. Once the puzzle is solved, only ResolvedCellValue objects should be present, one for each cell.
The other three rules each match all of the ResolvedCellValue objects and store them in thenew_remote_sitetes instance variable $resolved. They then look respectively for ResolvedCellValues that contain the same value and are located, respectively, in the same row, column or 3x3 zone. If these rules are fired they add a message to a global List of Strings describing the reason the solution is invalid. DroolsSudokoGridModel injects this List before it runs the rule set and checks whether it is empty or not having called fireAllRules(). If it is not empty then it prints all the Strings in the list and sets a flag to indicate that the Grid is not solved.
Now let us look at the more complex rule set used to solve Sudoku puzzles.
Rule #1 is basically a "book-keeping" rule. Several of the other rules insert() ResolvedCellValues into the working memory at specific rows and columns once they have determined that a given cell must have a certain value. At this point, it is important to clear the working memory of any inserted PossibleCellValues at the same row and column with invalid values. This rule is therefore given a higher salience than the remaining rules to ensure that as soon as the LHS is true, activations for the rule move to the top of the agenda and a fired. In turn this prevents the spurious firing of other rules due to the combination of a ResolvedCellValue and one or more PossibleCellValues being present in the same cell. This rule also calls update() on the ResolvedCellValue, even though its value has not in fact been modified to ensure that Drools fires an event to any WorkingMemoryListeners attached to the working memory so that they can update themselves - in this case so that the GUI can display the new state of the grid.
Rule #2 identifies cells in the grid which have only one possible value. The first line of the when caluse matches all of the PossibleCellValue objects in the working memory. The second line demonstrates a use of the not keyword. This rule will only fire if no other PossibleCellValue objects exist in the working memory at the same row and column but with a different value. When the rule fires, the single PossibleCellValue at the row and column is retracted from the working memory and is replaced by a new ResolvedCellValue at the same row and column with the same value.
Rule #3 removes PossibleCellValues with a given value from a row when they have the same value as a ResolvedCellValue. In other words, when a cell is filled out with a resolved value, we need to remove the possibility of any other cell on the same row having this value. The first line of the when clause matches all ResolvedCellValue objects in the working memory. The second line matches PossibleCellValues which have both the same row and the same value as these ResolvedCellValue objects. If any are found, the rule activates and, when fired retracts the PossibleCellValue which can no longer be a solution for that cell.
Rules #4 and #5 act in the same way as Rule #3 but check for redundant PossibleCellValues in a given column and a given zone of the grid as a ResolvedCellValue respectively.
Rule #6 checks for the scenario where a possible cell value only appears once in a given row. The first line of the LHS matches against all PossibleCellValues in the working memory, storing the result in a number of local variables. The second line checks that no other PossibleCellValues with the same value exist on this row. The third to fifth lines check that there is not a ResolvedCellValue with the same value in the same zone, row or column so that this rule does not fire prematurely. Interestingly we could remove lines 3-5 and give rules #3,#4 and #5 a higher salience to make sure they always fired before rules #6,#7 and #8. When the rule fires, we know that $possible must represent the value for the cell so, as in Rule #2 we retract $possible and replace it with the equivalent, new ResolvedCellValue.
Rules #7 and #8 act in the same way as Rule #2 but check for single PossibleCellValues in a given column and a given zone of the grid respectively.
Rule #9 represents the most complex currently implemented rule. This rule implements the logic that, if we know that a pair of given values can only occur in two cells on a specific row, (for example we have determined the values of 4 and 6 can only appear in the first row in cells 0,3 and 0,5) and this pair of cells can not hold other values then, although we do not know which of the pair contains a four and which contains a six we know that the 4 and the 6 must be in these two cells and hence can remove the possibility of them occuring anywhere else in the same row (phew!). TODO: more detail here and I think the rule can be cleaned up in the DRL file before fully documenting it.
Rules #10 and #11 act in the same way as Rule #9 but check for the existance of only two possible values in a given column and zone respectively.
To solve harder grids, the rule set would need to be extended further with more complex rules that encapsulated more complex reasoning.
There are a number of ways in which this example could be developed. The reader is encouraged to consider these as excercises.
Agenda-group: agenda groups are a great declarative tool for phased execution. In this example, it is easy to see we have 2 phases: "resolution" and "validation". Right now, they are executed by creating two separate rule bases, each for one "job". I think it would be better for us to define agenda-groups for all the rules, spliting them in "resolution" rules and "validation" rules, all loaded in a single rule base. The engine executes resolution and right after that, executes validation.
Auto-focus: auto focus is a great way of handling exceptions to the regular rules execution. In our case, if we detect an inconsistency, either in the input data or in the resolution rules, why should we spend time continuing the execution if it will be invalid anyway? I think it is better to simply (and immediatly) report the inconsistency as soon as it is found. To do that, since we now have a single rulebase with all rules, we simply need to define auto-focus attribute for all rules validating puzzle consistency.
Logical insert: an inconsistency only exists while wrong data is in the working memory. As so, we could state that the the validation rules logically insert inconsistencies and as soon as the offending data is retracted, the inconsistency no longer exists.
session.iterateObjects(): although a valid use case having a global list to add the found problems, I think it would be more interesting to ask the stateful session by the desired list of problems, using session.iterateObjects( new ClassObjectFilter( Inconsistency.class ) ); Having the inconsistency class can also allow us to paint in RED the offending cells in the GUI.
drools.halt(): even reporting the error as soon as it is found, we need a way to tell the engine to stop evaluating rules. We can do that creating a rule that in the presence of Inconsistencies, calls drools.halt() to stop evaluation.
queries: looking at the method getPossibleCellValues(int row, int col) in DroolsSudokuGridModel, we see it iterating over all CellValues and looking for the few it wants. That, IMO, is a great opportunity to teach drools queries. We just define a query to return the objects we want and iterate over it. Clean and nice. Other queries may be defined as needed.
session.iterateObjects(): although a valid use case having a global list to add the found problems, I think it would be more interesting to ask the stateful session by the desired list of problems, using session.iterateObjects( new ClassObjectFilter( Inconsistency.class ) ); Having the inconsistency class can also allow us to paint in RED the offending cells in the GUI.
Globals as services: the main objective of this change is to attend the next change I will propose, but it is nice by its own I guess. :) In order to teach the use of "globals" as services, it would be nice to setup a call back, so that each rule that finds the ResolvedCellValue for a given cell can call, to notify and update the corresponding cell in the GUI, providing immediate feedback for the user. Also, the last found cell could have its number painted in a different color to facilitate the identification of the rules conclusions.
Step by step execution: now that we have immediate user feedback, we can make use of the restricted run feature in drools. I.e., we could add a button in the GUI, so that the user clicks and causes the execution of a single rule, by calling fireAllRules( 1 ). This way, the user can see, step by step, what the engine is doing.


Should You Upgrade To Version 1.2?
It's not necessary to upgrade existing domains to the latest version of Kwikcontent. An upgrade is only recommended if you would like to take advantage of the new Amazon and eBay integration feature.
The SEO URL feature is useful for new installations only. SEO URLs result in duplicate content for existing installations as the old URLs will continue to function as well. If you do upgrade an existing Kwikcontent installation that already has some pages indexed in the search engines, you should turn off SEO URLs (see below).
Note: Any manual modifications you might have made to Kwikcontent's PHP or HTML files will be lost, as they will be overwritten by the upgrade.
How To Upgrade
- Backup your existing installation of Kwikcontent so you can revert to it if something goes wrong during the upgrade process.
- Download the Zip file which contains your domain's Kwikcontent application.
- Extract the Kwikcontent Zip file to your local hard drive. (It's best to extract the file twice: Once for any new installations you might want to make in the future, and again -- to a different directory -- for upgrades. You'll be making a few changes to the upgrade files below, so it's useful to keep the two extractions separate.)
- Import the file upgrade-to-1.2.sql (found in your Kwikcontent /install directory) into your existing Kwikcontent MySQL database. (Get more information about this step)
- In the /includes directory, delete the file _functions.php and then rename the file _functions-oldurls.php to _functions.php. This ensures backwards compatibility with the old-style URLs.
- If you renamed your /admin directory on your original installation, rename the /admin directory you just extracted to that same name.
- Upload all of the files to the web root directory of your domain (except for the /install directory). Overwrite everything.
- Visit the admin panel of your Kwikcontent software (www.yourdomain.com/admin) and click into the Settings area. You will need to enter your the following values:
- Domain Title - The name of your website; this should be a short and powerful keyphrase, without the domain extension
- Amazon Affiliate ID - You can get this from Amazon Associates.
- Amazon Global Keyphrase - Enter one or two words relevant to your site here. Be as broad as possible to get the best results. You might have to experiment a little until your site displays suitable results.
- eBay CampaignID - You can get this from eBay Partner Network. First create an account, then create a campaign and enter the CampaignID here.
- eBay Front Page Keyphrase - Enter one or two words relevant to your site here. These words are used only for eBay ads on the front page of your domain. All other eBay ads are automatically matched to the category they are displayed in.
Your upgrade is complete. You can now begin updating your site's content. If you have any problems (or would like to share your suggestions for improving Kwikcontent) please visit our support forum.


com.imkrisna.samsung.nservice
library for android.NSDevice
) using SSDP Packet
listener from com.cyabergarage.upnp.ssdp
.NSConnection
connection)SearchResponseListener
is a response handler for incoming SSDPPacket
and parsing the information to decide whether the devices is N-Service capable device or not then storing
the capable devices to NSConnection
instance.NSConnection
connection)Activity
class.


Online Election Portal
Home
Create Election
Election Name:
Date until which Candidates can register:
Time until which Candidates can register:
Date when the polling will begin:
Time when the polling will begin:
Date when the polling will end:
Time when the polling will end:


Mr. Know It All
I have the power to read your mind.
Follow the steps below
Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
Think of any number
Multiply that number by 2
Multiply your current number by 5
Divide your current number by your original number
Subtract 7 from your current number
The number in your head right now is 3


QUESTION #1
Which uAdmin function is a system in uAdmin that is used to add, modify and delete the elements of a dashboard menu?
QUESTION #2
What are the different fields in the Dashboard Menu function?
QUESTION #3
Which uAdmin function will match the given screenshot above?
QUESTION #4
Which uAdmin function will match the given screenshot above?
QUESTION #5
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/basket.
Which uAdmin function will match the given screenshot above?
QUESTION #6
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/table.
Which uAdmin function will match the given screenshot above?
QUESTION #7
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/building. The image is located in /media/images/ path.
Which uAdmin function will match the given screenshot above?
QUESTION #8
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/book. The image is located in /media/images/ path.
Which uAdmin function will match the given screenshot above?
QUESTION #9
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/cat. The image is located in /media/images/ path.
Which uAdmin function will match the given screenshot above?
QUESTION #10
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/computer. The image is located in /media/images/ path.
Which uAdmin function will match the given screenshot above?
QUESTION #11
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/message. The image is located in /media/images/ path. The model is visible in the uAdmin dashboard.
Which uAdmin function will match the given screenshot above?
QUESTION #12
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/mobile. The image is located in /media/images/ path. The model is invisible in the uAdmin dashboard.
Which uAdmin function will match the given screenshot above?
QUESTION #13
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/birthday. The image is located in /media/images/ path. The model is visible in the uAdmin dashboard.
Which uAdmin function will match the given screenshot above?
QUESTION #14
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/movie. The image is located in /media/images/ path. The model is invisible in the uAdmin dashboard.
Which uAdmin function will match the given screenshot above?
QUESTION #15
Once you click the model as shown in the image, you will proceed to <IP_ADDRESS>:8080/disney_studio. The image is located in /media/images/ path. The model is invisible in the uAdmin dashboard.
Which uAdmin function will match the given screenshot above?


§183D-33 Shooting certain pigeons prohibited. No person, other than the owner thereof, shall shoot, maim, kill, or detain any Antwerp, messenger, or homing pigeon. [L 1985, c 174, pt of §4]


tutorial for Data Science Triad: GitHub, RMarkdown, Travis-CI
rstudio
Watch: - RStudio IDE, Part I
Read: readings/setup.md - Prerequisites - Running R code - RStudio Cheat sheet (for reference)
rmarkdown
Watch:
- Reports with RMarkdown (by Garrett Grolemund)
Read:
git
Watch:
DataCamp Lesson: RStudio IDE, Part II, Chapter 2: Version Control (by Garrett Grolemund).
vis.1
Watch:
- Tidyverse Chapter 2: Data Visualization (David Robinson)
(Yes, we’re starting with Chapter 2, we’ll go back to Chapter 1 soon).
Read:
- Data Exploration [r4ds-2]
- First Steps [r4ds-3.2]
- Aesthetic mappings [r4ds-3.3]
- Common problems [r4ds-3.4]
- Facets r4ds-3.5
- Geometric objects r4ds-3.6
dplyr-1
- visualization basics
ggplot2
packages: ggplot2
, tidyr::gather
, readr
(?) Dates & Times, r4ds 16
Data Visualization r4ds-3
Tibbles r4ds-10
Data Import, r4ds-11
Tidy Data, r4ds-12
fish
fish.1
Watch: - Tidyverse Chapter 1 David Robinson
Read:
- Data Transformation, r4ds-5, (
dplyr
functionsselect
,fliter
,arrange
,mutate
)
fish.2
Watch: - [Tidyverse ch]
Read:
- Relational data, r4ds-13 (dplyr
group_by
, summarise
, and *_join
)
simulation
topic: R functions datacamp: - Writing Functions in R, Hadley Wickham r4ds: 18,19,20,21
sim.1
Watch: - Chapter 1: Basics Read: - Functions, r4ds-19
sim.2
Watch: - Chapter 2: When and How to write a function Read:
sim.3
Watch: - Chapter 3: purrr Read: - Iteration, r4ds-21
Writing R packages
Watch: - Packages in RStudio RStudio IDE, Part II, Chapter 1, Garrett Grolemund
Read: - intro - package structure
geospatial
sf
, raster
, mapview
spatial.1
Watch: -
Read: -
spatial.2
Watch: - Read: -
spatial.3
Watch: - Read: -
spatial.4
Watch: - Read: -
GeoCompR
extinctions
extinctions.1
Watch: - Read: -
extinctions.2
- Strings, r4ds-14
purrr
, httr
, jsonlite
, stringr
extinctions.3
linked-data
ld.1
Watch:
-
Read: - -
Tutorials
R Packages with RStudio RStudio IDE, Part II, Chapter 1
Graphics for Communication, r4ds-28 (Label, Annotation, Scales, Zooming, Themes)
Later Tutorial supplements:
Git from command line & GitHub, Greg Wilson
Reports with RMarkdown, Garrett Grolemund
DataCamp Syllabus
Git, Greg Wilson
Reports with RMarkdown, Garrett Grolemund
Data wrangling, David Robinson
dplyr intro, Garrett Grolemund
Writing Functions in R, Hadley Wickham


-
The NOT gate is also called Inverter as it gives the compliment of the input.
-
Output of NOT gate will be 1 (high) when input is 0 (low) and vice versa.
-
It is denoted x=A' in Boolean algebra, which means that x equals NOT A.
-
Standard Symbol for NOT Gate
-
IEC Symbol for NOT Gate
The mathematical formula used for the gate is x=A'.
The Truth table is given as
Input 1 | TRUE
Output | FALSE


| |
- Method resolution order:
- mic_input_parser
- threading.Thread
- threading._Verbose
- __builtin__.object
Methods defined here:
- __init__(self, speech_queue, newsSources)
- Initializes microphone parser and all necessary components.
:param speech_queue: A queue data structure used to relay the user commands to main GUI module
:param newsSource: specifies news outlet to use for GUI news widget
- listen_print_loop(self, recognize_stream)
- Iterates through server responses and prints them.
The recognize_stream passed is a generator that will block until a response
is provided by the server. When the transcription response comes, print it.
In this case, responses are provided for interim results as well. If the
response is an interim one, print a line feed at the end of it, to allow
the next result to overwrite it, until the response is a final one. For the
final one, print a newline to preserve the finalized transcription.
- make_channel(self, host, port)
- Creates an SSL channel with auth credentials from the environment.
- record_audio(*args, **kwds)
- Opens a recording stream in a context manager.
- request_stream(self, data_stream, rate, interim_results=True)
- Yields `StreamingRecognizeRequest`s constructed from a recording audio
stream.
Args:
data_stream: A generator that yields raw audio data to send.
rate: The sampling rate in hertz.
interim_results: Whether to return intermediate results, before the
transcription is finalized.
- run(self)
- Run speech recognition script
Methods inherited from threading.Thread:
- __repr__(self)
- getName(self)
- isAlive(self)
- Return whether the thread is alive.
This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
- isDaemon(self)
- is_alive = isAlive(self)
- Return whether the thread is alive.
This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
- join(self, timeout=None)
- Wait until the thread terminates.
This blocks the calling thread until the thread whose join() method is
called terminates -- either normally or through an unhandled exception
or until the optional timeout occurs.
When the timeout argument is present and not None, it should be a
floating point number specifying a timeout for the operation in seconds
(or fractions thereof). As join() always returns None, you must call
isAlive() after join() to decide whether a timeout happened -- if the
thread is still alive, the join() call timed out.
When the timeout argument is not present or None, the operation will
block until the thread terminates.
A thread can be join()ed many times.
join() raises a RuntimeError if an attempt is made to join the current
thread as that would cause a deadlock. It is also an error to join() a
thread before it has been started and attempts to do so raises the same
exception.
- setDaemon(self, daemonic)
- setName(self, name)
- start(self)
- Start the thread's activity.
It must be called at most once per thread object. It arranges for the
object's run() method to be invoked in a separate thread of control.
This method will raise a RuntimeError if called more than once on the
same thread object.
Data descriptors inherited from threading.Thread:
- daemon
- A boolean value indicating whether this thread is a daemon thread (True) or not (False).
This must be set before start() is called, otherwise RuntimeError is
raised. Its initial value is inherited from the creating thread; the
main thread is not a daemon thread and therefore all threads created in
the main thread default to daemon = False.
The entire Python program exits when no alive non-daemon threads are
left.
- ident
- Thread identifier of this thread or None if it has not been started.
This is a nonzero integer. See the thread.get_ident() function. Thread
identifiers may be recycled when a thread exits and another thread is
created. The identifier is available even after the thread has exited.
- name
- A string used for identification purposes only.
It has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.
Data descriptors inherited from threading._Verbose:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|


<learningObjectMap>
Use a <learningObjectMap>
to create standalone aggregations of
<learningContent>
together with its supporting plan, overview,
summary, and assessments, according to the needs identified by the learning goals and
objectives. The <learningObjectMap>
references one and only one
<learningObject>
. Any <topicref>
elements that
occur before the <learningObject>
are intended to be resource-only
references such as key definitions.
Category: Learning and training: map types


My name is Pablo Hernandez, I am currently attending the UT Austin Coding Bootcamp program. I enjoy the challenges it brings and am always excited to learn new things.
Currently I am a TSA Officer, have been for 9 years now. Besides doing officer floor work I have also coached and trained new officers and worked in the logistics department.


This script will be run prior to sending the email to allow
modifying the email before sending. The MimeMessage variable
is msg, the build is available as build, a logger
is available as logger. The trigger that caused the email
is available as trigger and all triggered builds are available
as a map triggered.
You may also cancel sending the email by setting the boolean
variable cancel to true.
You can set the default pre-send script here and then use
${DEFAULT_PRESEND_SCRIPT} in the project settings to use
the script written here.


9.1 How It Works
Interception caching involves some network trickery, so it is helpful
for you to understand what happens between the client and Squid.
I'll use Figure 9-1 and the
following sample tcpdump output to explain how the
packets are intercepted as they flow through your network.
The user-agent wants to request a resource, say /index.html from an origin server, say
www.oreilly.com. It needs the
origin server's IP address, so it makes a DNS
request: Packet 1
TIME: 19:54:41.317310
UDP: <IP_ADDRESS>.2459 -> <IP_ADDRESS>.53
DATA: .d...........www.oreilly.com.....
---------------------------------------------------------------------------
Packet 2
TIME: 19:54:41.317707 (0.000397)
UDP: <IP_ADDRESS>.53 -> <IP_ADDRESS>.2459
DATA: .d...........www.oreilly.com.............PR.....%........PR.
....$........PR...ns1.sonic.net.........PR...ns2.Q........PR
...ns...M...............h.............!.z.......b...... Now that it has the IP address, the user-agent initiates a TCP
connection to the origin server on port 80: Packet 3
TIME: 19:54:41.320652 (0.002945)
TCP: <IP_ADDRESS>.3897 -> <IP_ADDRESS>.80 Syn
DATA: <No data> The switch/router notices a TCP SYN packet with destination port 80.
What happens next depends on the particular interception technology.
In the case of layer four switches and policy routing, the device
simply forwards the TCP packet to Squid's datalink
layer (Ethernet) address. This works only when Squid is directly
attached to the network device. For WCCP, the router encapsulates the
TCP packet into a GRE packet. Because the GRE packet has its own IP
address, it can be routed through multiple subnets. In other words,
WCCP doesn't require Squid to be directly attached
to the router. The Squid host's operating system receives the
intercepted packet. For layer four switches, the TCP/IP packet is
unchanged from the earlier explanation. If the packet is encapsulated with GRE, the host removes the outer IP
and GRE headers and places the original TCP/IP packet on the input
queue. Note that the Squid host receives an IP packet for a foreign address
(the origin server's). Normally this packet is
dropped because its destination address doesn't
match any of the local interface addresses. To make the host accept
the foreign packet, you must enable IP forwarding on most operating
systems. The client's TCP/IP packet is processed by the
packet filtering code. The packet matches a rule that instructs the
kernel to forward or divert this packet to Squid. Without this rule,
the kernel simply forwards this packet on its way to the origin
server, which isn't what you want. Note that the SYN packet's destination port is 80,
but Squid may be listening on a different port, such as 3128. The
packet filtering rules allow you to change the port number. You
don't need to make Squid listen on port 80. You
can't see this step with tcpdump
because the diverted packet doesn't flow through the
network interface code again. The packet filter's redirection rule is still
necessary even if you have Squid listen on port 80. Simply making the
port numbers match doesn't allow Squid to receive
the intercepted packets. The redirection rule is the magic that
delivers foreign packets to Squid. Squid receives notification of the new connection, which it accepts.
The kernel sends a SYN/ACK packet back to the client: Packet 4
TIME: 19:54:41.320735 (0.000083)
TCP: <IP_ADDRESS>.80 -> <IP_ADDRESS>.3897 SynAck
DATA: <No data> As you can see, the source address is the origin
server's, even though this packet
didn't reach the origin. The operating system simply
copies and swaps the source and destination IP addresses from the SYN
packet into the reply. The user-agent receives the SYN/ACK packet, fully establishing the
TCP connection. The user-agent now believes it is connected to the
origin server, so it writes the HTTP request: Packet 5
TIME: 19:54:41.323080 (0.002345)
TCP: <IP_ADDRESS>.3897 -> <IP_ADDRESS>.80 Ack
DATA: <No data>
---------------------------------------------------------------------------
Packet 6
TIME: 19:54:41.323482 (0.000402)
TCP: <IP_ADDRESS>.3897 -> <IP_ADDRESS>.80 AckPsh
DATA: GET / HTTP/1.0
User-Agent: Wget/1.8.2
Host: www.oreilly.com
Accept: */*
Connection: Keep-Alive Squid receives the HTTP request. It uses the HTTP
Host header to convert the partial URL into a full
URL. In this case, you'll see http://www.oreilly.com/ in the
access.log file. From this point on, Squid treats the request normally. As usual,
cache hits are returned immediately. Cache misses are forwarded to
the origin server. Lastly, here is the response that Squid receives from the origin
server: Packet 8
TIME: 19:54:41.448391 (0.030030)
TCP: <IP_ADDRESS>.80 -> <IP_ADDRESS>.3897 AckPsh
DATA: HTTP/1.0 200 OK
Date: Mon, 29 Sep 2003 01:54:41 GMT
Server: Apache/1.3.26 (Unix) PHP/4.2.1 mod_gzip/<IP_ADDRESS>a mo
d_perl/1.27
P3P: policyref="http://www.oreillynet.com/w3c/p3p.xml",CP="C
AO DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONo OUR
DELa PUBi OTRa IND PHY ONL UNI PUR COM NAV INT DEM CNT STA P
RE"
Last-Modified: Sun, 28 Sep 2003 23:54:44 GMT
ETag: "1b76bf-b910-3ede86c4"
Accept-Ranges: bytes
Content-Length: 47376
Content-Type: text/html
X-Cache: MISS from www.oreilly.com
X-Cache: MISS from <IP_ADDRESS>
Connection: keep-alive
You don't want your switch/router to intercept the
connections that Squid makes to origin servers. If that happens,
Squid ends up talking to itself and can't satisfy
any cache misses. The best way to avoid forwarding loops like this is
to make sure that your users and Squid connect to separate interfaces
on the switch/router. Whenever feasible, you should apply the
interception rules to specific interfaces. Obviously, you should not
enable interception on the interface that Squid uses.
|


In the final step of this tutorial we will look at some other simple customizations.
Automatic Macros
By giving macros a special name they can be run automatically. If you save a macro using a name for a specific file extension then that macro will be run whenever a file with the extension is opened. For example, if you save a macro to a file called "_EXE.HEM" then whenever an .EXE file is opened in HexEdit the macro is run.
This facility can have many uses -- as an example, for a certain file type you might always want to position the insertion point after the header at the start of file.
Another special macro called "AUTOEXEC.HEM" is run whenever you start up HexEdit.
To demonstrate we will create a macro for .HEG files that jumps past the header at the start of the file. The (fictitious) .HEG file format has a 16 byte header.
1. Open any file, to allow recording of macro commands that operate on a file.
2. Select Edit/Go To which brings up the Calculator, and click the "Hex" radio button if not already in Hex mode.
We open the calculator before macro recording is started so that it is not recorded as part of the macro. We need the calculator open as it is used to jump to address 16 (10 hex) in the file.
3. Select Tools/Record Macro (or press F7, or double-click the "REC" pane on the status bar) to start macro recording.
3. Enter "10" in the calculator and click to "GO" button.
4. Select Tools/Record Macro (or press F7, or double-click the "REC" pane on the status bar) to stop macro recording.
5. To test that the macro works move the cursor elsewhere and press F8 to run the macro.
Now we just need to save the macro we have created to disk. We give it the file name "_HEG.HEM" so that it is run when any .HEG file is opened. Note that the first character of the file name (before HEG) is an underscore - this denotes that the macro file is special.
6. Open the Options dialog (Tools/Options) and select the "Macro" tab.
7. Click the "Save Current Macro" button and name it "_HEG". Add a comment to the macro if you like.
HexEdit adds the ".HEM" file extension automatically for HexEdit macro files so you do not need to type that.
8. Click the Save button to save the macro then click OK to close the Options dialog.
9. Open the file called "TUTORIAL.HEG" which you can find in the folder where HexEdit was installed. Verify that the cursor (insertion point) jumps to the 16th byte.
This macro jumped to a fixed address but you can record virtually any sort or calculation in macros, including reading and manipulating values from the active file. See Keystroke Macro Tutorial for an example.
Default Display
HexEdit remembers the display options for all files you have ever opened. When you open a file that you have previously opened, all the formatting options are restored exactly as they were when you last used it.
But when you open a file that you have never opened before the default display settings are used. These are also used when you create a new file in HexEdit. You can easily change the default settings as shown here.
10. Open any file. We need a file open to modify (and preview) display settings.
11. Open the Options dialog (Tools/Options) and go to the Document General page.
The Document pages of the Options dialog are not shown if you skipped the previous step and do not currently have a file open.
12. To see the current default display settings click the "Use Default Settings" button, in case some of the settings for the open file have already been altered.
13. Change to the Document Display page and turn on the Maximize checkbox.
See the Window Display Options page and Document Edit Options for details on the different document settings.
14. Click the Font button to change the default font used.
The factory default font is "Courier", which is not a scalable font. This font is chosen as it is a fast, nice-looking monospaced (non-proportional) font available on all versions of Windows. If you prefer a scalable font then Lucida Console is a nice monospaced font available on newer versions of Windows. A scalable font gives better results when you change the font size (eg by using the mouse wheel while holding down the Ctrl key).
To preview the display settings changes at any time just click the "Apply" button to see how they look in the active file.
15. Go back to the Document General page and click the "Save Current Window Settings as Default" button. Click the Cancel button to close the Options dialog.
16. Create a new file or open a file that you have never opened before in HexEdit and verify that your new default settings are used.
Printing
A very nice feature of HexEdit is the ability to customize how pages are printed. In this section we will see how to change the header, footer and margins.
17. Open the Options dialog (Tools/Options) and go to the Printing page.
18. Select the units you prefer (Inches or Cm) and adjust the margins of the page.
The left and right margins are just minimums and may actually print larger than requested. For example, if the line length on the screen is only half the page width then the margins will take up half the page width. On the other hand for long lines the line may be wider than the page in the current font size - in this case HexEdit automatically reduces the font size until the text fits within the margins of the page.
19. Adjust the distance that the header is from the top of the page and the distance the footer is from the bottom of the page using the "From edge" settings in the bottom right corner.
The header is printed within the top margin and the footer within the bottom margin. If there is not enough room within the margin then it is simply not printed. For example, the top margin must be greater than the Header's "From edge" distance plus the height of the text.
20. Turn on the options (checkboxes) to draw a border and column headings.
Now we will set up what is printed in the header and footer.
First note that both the header and footer are divided into three parts: left part (aligned with the left side of the page), center part (centered horizontally on the page) and the right part (aligned with the right side). To specify all 3 parts you need to separate them with a special character -- the vertical bar (|).
As well as normal text you can also use substitutable parameters which are specified using an ampersand (&) followed by a letter. See the Printer General Options page for a complete list of substitutable parameters.
You can put any text into the headers and footers except for vertical bars which are used to separate the parts. To show an ampersand (&) use two of them (&&).
21. In the Header field enter "&A | CONFIDENTIAL | &M". This prints the full file name in the top left of the page and the file modification date/time in the top right, with the word CONFIDENTIAL in the center.
22. In the Footer field enter "Printed: &N | | Page: &P". This prints the date/time the file will be printed in the bottom left and the page number in the bottom right, with nothing in the center.
23. To see how the page will look open a file then invoke print preview (File/Print Preview).
If you have a long header or footer (such as the example header above) and use a large font the text in the 3 parts may overlap. Luckily headers and footers are printed using the same font as the rest of the page. So you can avoid this problem by reducing the size of the font used to display the file (see Window Display Options page).
24. Close print preview, reduce the font size (eg click the Decrease Font button on the Standard toolbar), then check the effect using print preview again.
Conclusion
That brings us to the end of the customization tutorial I hope you have found many useful tips and will continue to look for ways to increase your productivity and enjoyment of the software.
There are many other ways you can customize HexEdit. You might find some more ideas in the Tips and Tricks section of our on-line forums. One of the more obscure facilities is the ability to configure how ECBDIC characters are displayed, searched for etc -- this is all handled by a translation file called "EBCDIC.TAB" which is stored in the same place HexEdit is installed. You can simply modify this file (in HexEdit, of source) to display EBCDIC (or any type of characters) the way you want.


Books Shop
Home
(current)
Features
Pricing
Disabled
Create New Book
New Book Creation
×
Book's Title:
Price ($):
Description:
#id
Book Title
Price
Actions
Book Details:
×
...
Prev Page
1
2
3
4
Next Page


--- layout: slides-960 title: "NginxConf 2016: Powering Microservices & Sockets using NGINX and Kubernetes" ---
16
Powering Microservices & Sockets using Nginx and Kubernetes
Lee Calcote
Yogi Porla
clouds, containers, infrastructure,
applications and their management
Free ebook
Preorder Available
is an IDE for game developers
- created by game development studio based in Austin (MaxPlay)
- creates a real-time, collaborative game development engine
EventBus Handler
Persistence Verticle
Vert.x
SockJS
Analytics
Analytics UI
Hazelcast
GridConnection
Telemetry
Telemetry Analysis
Projects, Streams,
Users, Sessions, Tenants
Kafka Producer
Platform Client Producer
Spark, R
GCE Network
Load Balancer
Kafka
Rendering Engines
Platform Publishing Tool
Game Analysis
Single instance
App is Reactive
Deals with sockets
Limited resources
Culture / DevOps / Cloud Maturity
Support containers and VMs
Propagation of huge data sets
On-the-fly intelligent rendering
Distribution of content
Extremely low latency for Reactive services
Blocking vs non-blocking
On-premises telemetry collection and analytics
small, autonomous services that work together.
how small is small?
independent, autonomous service
self-contained functional unit
Who has a system that is too big and that you’d like to break down?
Can a small team manage it?
More moving parts increases complexity.
Can you make a change to a service and deploy it by itself without changing anything else?
Faster delivery, rolling updates
Horizontal scale out on-demand;
on an individual service basis
Modular architecture
Easy integration and deployments
Service isolation, resilience and fail-safe recovery
Democratization of language and technology choice
Analytics UI
Authentication
Telemetry
Telemetry Analysis
Spark, R
Kafka
Rendering Engines
Platform Publishing Tool
Game Analysis
Master
etcd
Authorization
Locking
Authorization
Projects
Authorization
Authorization
kube-proxy
kube-proxy
SockJS
Authorization
kube-proxy
Node
Node
Node
kube-api, etc.
|
Kubernetes 1.3 |
No |
|---|---|
|
Swarm 1.12 |
No |
|
Mesos+Marathon |
Yes |
|
ELB Classic |
Yes |
|---|---|
|
ELB L7 |
Yes |
|
Beanstalk |
Yes (EC2) |
|
IOT |
Yes |
|
ECS |
Yes (EC2) |
|
Lambda |
? |
AWS
Azure
GCP
|
Load-Balancer |
No |
|---|---|
|
App Gateway |
Yes |
|
Container Service |
? |
|
Cloud LB (HTTP) |
Yes (beta) |
|---|---|
|
Cloud LB (Network) |
Yes (beta) |
|
GKE |
No |
Link
SSL Proxy
SSL Proxy
|
Kubernetes 1.3 |
No |
|---|---|
|
Swarm 1.12 |
No |
|
Mesos+Marathon |
Yes |
|
ELB Classic |
Yes |
|---|---|
|
ELB L7 |
Yes |
|
Beanstalk |
Yes |
|
IOT |
Yes |
|
ECS |
Yes |
|
Lambda |
Yes |
AWS
Azure
GCP
|
Load-Balancer |
No |
|---|---|
|
App Gateway |
Yes |
|
Container Service |
? |
|
Cloud LB (HTTP) |
No |
|---|---|
|
Cloud LB (Network) |
Yes |
|
GKE |
No |
Link
Hybrid needs
On-premises and Google Cloud Platform
Consistent administration and capabilities
central load balancing and proxy platform
Support for VM and container-based technologies with minimal configuration change
Deeper feature set available as services/team matures
use as an Application Delivery Controller
Platform independence
Going deeper with Nginx & Kubernetes
Service Discovery with Nginx Plus
Need for locating service instances instantly without reconfiguring
On-the-fly Reconfiguration API
Work with etcd
As an ingress controller in Kubernetes
SSL termination
Path-based rules
Multiple host names
App
App
App
App
App
App
GeoDNS
US Regions
Session Persistence and Sticky Routing help in performance of request routing and localized content
Content Caching provides faster retrieval of data
Performance, r eliability and availability
Global Regions
Requests
App v0.1
App v0.2
90% of requests go to v0.1
10% of requests go to v0.2
clouds, containers, infrastructure,
applications and their management


Prince Charles and Camilla begin weeklong New Zealand trip
WELLINGTON, New Zealand — Britain’s Prince Charles and his wife Camilla arrived in New Zealand on Sunday for a weeklong trip, during which they plan to visit the city of Christchurch and the historic treaty grounds at Waitangi, where the nation’s founding document was signed.
It is the couple’s third joint visit to New Zealand and their first in four years.
Their plane landed in Auckland on Sunday afternoon. Their public duties were due to begin Monday when they planned to lay a wreath at the Mount Roskill War Memorial.
Among other engagements, the couple is due to meet with Prime Minister Jacinda Ardern on Tuesday, visit the Waitangi Treaty Grounds on Wednesday, and on Friday visit Christchurch, where 51 Muslim worshippers were killed during a March massacre and rebuilding continues after a deadly 2011 earthquake.
During the trip, Charles plans to visit several organizations focused on environmental issues while Camilla will focus on groups that support women, including those who have survived domestic violence.
Charles, who last week turned 71, is the heir apparent to the British throne. Camilla, 72, is the Duchess of Cornwall and the prince’s second wife.


Hi
Shutting the door after the horse has bolted.....
I have been running a Pi as a remote emoncms server. I have been collecting data for some months with no trouble at all. I knew I should back up the data and had bought a 32G USB stick to take a copy of the data. Being somewhat linux challenged I had not got round to doing it. Yesterday the server failed. I think the SD card in the RPI is the problem because I created 2 SD cards when I first started and with the second SD card the RPI boots and with the card I was using it will not. Also I don't get any response to the first card when I plug it into my Windows PC but I do with the second card.
I will now set up a new server. This time I would like to add the facility to make a daily copy of the data to the USB drive. I assume that this should be possible with a script. Can somebody with Linux knowledge point me in the right direction.
All the Linux setup on the RPI I have achieved by following the instructions parrott fashion and I am only just beginning to get a glimmer of how it all works.
Regards
Ian
Re: How to auto back up emoncms data on RPI to USB stick on RPI
http://sourceforge.net/projects/automysqlbackup/
Think that's the one I'm using for our servers. It's in Debian repos.
Re: How to auto back up emoncms data on RPI to USB stick on RPI
Thanks.
I will give it a try
Ian
Re: How to auto back up emoncms data on RPI to USB stick on RPI
Hi.
You might as well use automysqlbackup, which I didn't know about, but for what it's worth, here's what i did on my server :
(Comments were in french, I'm adding a translation here)
--------------------------------------------------------------------------------------------------------------------------------
#!/bin/sh
#########################################################################
## Ce script sert a effectuer une sauvegarde des bases de donnees mySQL #
## mySQL backup script #
#########################################################################
db=mysql
rep_base=/backup_dir_wherever_you_want/$db
# 1 - Creer un repertoire de sauvegarde en fonction de la date
# 1 - Create backup dir according to date
repertoire=`date +%y%m%d`
mkdir $rep_base/$repertoire
cd $rep_base/$repertoire
# 2 - Faire les sauvegardes
# 2 - Do the backup
for base in `mysql -u root --password=pwd --execute="SHOW Databases" --skip-column-names | cat`
do
echo "Sauvegarde de $base ..."
# Sauvegarde de la base
#echo "mysqldump --single-transaction --host=localhost --user=root --password=pwd $base | gzip > $base.sql.gz"
mysqldump --single-transaction --host=localhost --user=root --password=pwd $base | gzip > $base.sql.gz
done
# 3 - Effacer les vieilles sauvegardes
# 3 - Delete old backups
# Sur la base d'une sauvegarde quotidienne, et pour conserver un mois d'historique,
# on efface ce qui a plus de 30 jours
# We want one month of daily backups,
# let's erase what is older than 30 days
echo "Suppression des sauvegardes precedentes ..."
#find $rep_base -mtime +30 -print
find $rep_base -mtime +30 -delete
--------------------------------------------------------------------------------------------------------------------------------
(You may want to comment the delete line and uncomment the print line at the end, in a first time, to check what is going to be deleted.)
I created a similar script for postgresql and made both executable (command : chmod +x filename)
To call them, I added a file in /etc/cron.daily/
--------------------------------------------------------------------------------------------------------------------------------
#!/bin/sh
#####################################
## Sauvegarde des bases de donnees ##
#####################################
# postgresql
su - postgres -c "path_to_pgsql_backup_file"
mysql
path_to_pgsql_backup_file
--------------------------------------------------------------------------------------------------------------------------------
This appears to work but does not claim to be the most elegant and efficient solution.
Re: How to auto back up emoncms data on RPI to USB stick on RPI
Hi Jérôme
Thanks. I am fairly new to Linux but I think I understand how your script works so I will give it a try.
Regards
Ian
Re: How to auto back up emoncms data on RPI to USB stick on RPI
You're welcome.
<geek mode>Beware, this script might containt cat abuse...</geek mode>
Just like for the delete command, if the mysqldump command fails, you can uncomment the 'echo' line to see what happens.
Re: How to auto back up emoncms data on RPI to USB stick on RPI
Hi Jérôme
I have started writing the script in sections to test.
First part:-
#!/bin/sh
#########################################################################
## Ce script sert a effectuer une sauvegarde des bases de donnees mySQL #
## mySQL backup script #
#########################################################################
db=mysql
rep_base=/media/KINGSTON/$db
# 1 - Creer un repertoire de sauvegarde en fonction de la date
# 1 - Create backup dir according to date
repertoire=`date +%y%m%d`
mkdir $rep_base/$repertoire
cd $rep_base/$repertoire
Running it I get this error:-
pi@raspberrypi /usr/local/bin $ test.sh
mkdir: cannot create directory `/media/KINGSTON/mysql/130211': No such file or directory
/usr/local/bin/test.sh: 16: cd: can't cd to /media/KINGSTON/mysql/130211
pi@raspberrypi /usr/local/bin $
I can't see where my error is, any ideas?
/media/KINGSTON is a usb drive that exists and is mounted. I can get to it with a command line cd.
pi@raspberrypi /usr/local/bin $ cd /media/KINGSTON/
pi@raspberrypi /media/KINGSTON $
Regards
Ian
Re: How to auto back up emoncms data on RPI to USB stick on RPI
Try
mkdir /media/Kingston/mysql
first.
By default, mkdir won't create all path but only child directory if parent exists. You can pass it '-p' to let it create necessary directories (see man mkdir).
Re: How to auto back up emoncms data on RPI to USB stick on RPI
Jérôme
Again many thanks. The script is now working and all looks good. Tomorrow will show if I have added it to cron correctly.
Regards
Ian
Re: How to auto back up emoncms data on RPI to USB stick on RPI
Glad it helps.
Yet, as I said, if I were you, I'd pay a look at the tool Oscar suggested, which is even packaged for debian.
Well, actually no. I would have paid a look, but now that you got something that seems to work, I'd probably keep it as it is.
Bye.
Note to self : add something in the wiki about http://sourceforge.net/projects/automysqlbackup/


{% extends 'base.html' %} {% load static %} {% block content %}
{% if warning_origin %} {{ warning_origin }} already exists!!Files uploaded success: {{ success }}
Files uploaded failed: {{ failed }}
Execution time: {{ time }}
{% endif %} {% endblock %}


Galactic Age Calculator
Find Your Age In Seconds!
Input your birthday
Submit
Please Select Planet
Mercury
Venus
Mars
Jupiter
Input your age
Submit


newspin is a web-app to see the analysis overview of news articles on various news sources.
Choose an analysis type to get started.
Add the news sources you want to compare.
Add the two words you want to proximity analysis for:
Type the word you want to check:


Find a bargain by browsing our products that are currently on special offer.
“Just wanted to say thank you for the lovely curtains that arrived today. It is fantastic to be able to get curtains that actually fit my bay windows properly at a fraction of the cost of having them specially made. The curtains are lovely, good quality and thank you for altering to the right length free of charge. What more can I say other than I will be back to buy more for my other rooms. ”
Miss M Goodson
Copyright


--- title: Dropdowns section: Components ---
.link-outline-*
can be used on.dropdown-toggle
with ana
orbutton
tag. Use ana
withhref
if you want no focus outline on click and the browser default focus outline on tab. Abutton
will have a custom focus outline on click and tab.Using Bootstrap 4's
.btn
classes will always have a custom focus outline on click and tab.
a.dropdown-item
should have tabindex="-1"
and event.preventDefault();
on click or use ```Disabled```
for disabled dropdown-item.
Nest
``````
inside a.dropdown-menu
list item to create a scrollable dropdown. The maximum height is 200px on screen sizes 768px and above, on screen sizes 767px and below the overflow is handled by.dropdown-menu
.
Use
.dropdown-wide
with.dropdown
to make the dropdown menu big. The default width is 500px. Use.dropdown-full
to create a dropdown menu as wide as its relative parent. See dropdown examples.
Align a dropdown menu on the top or bottom side with classes
dropdown-menu
,dropdown-menu-right
,dropdown-menu-top
, ordropdown-menu-top-right
Align a dropdown menu on the left or right side with classes
dropdown-menu-right-side
,dropdown-menu-left-side
,dropdown-menu-right-side-bottom
, ordropdown-menu-left-side-bottom
.
We've also added the option to center the dropdown to its trigger in the 4 different dropdown-menu positions with classes
dropdown-menu-center
,dropdown-menu-top-center
,dropdown-menu-left-side-middle
, ordropdown-menu-right-side-middle
.You can center the dropdown menu in browsers that don't support css transforms by setting a negative
margin-left
equal to the width of the dropdown-menu divided by 2. For left-side and right-side dropdown-menus vertically align them by setting a negativemargin-top
equal to the height of the dropdown-menu divided by 2.


Forums
Stats
HCTeams
UHC
Practice
Bunkers
UHC Meetup
MineSG
Staff
Store
Login
Register
404: Page Not Found