closed
by None at 2022-10-20 15:00:27.referenced
by Jane Sandberg at 2022-10-20 18:18:32.merged
by Jane Sandberg at 2022-10-20 18:18:32.closed
by Jane Sandberg at 2022-10-20 18:18:32.head_ref_deleted
by Jane Sandberg at 2022-10-20 18:18:33.deployed
by None at 2022-10-20 14:58:40.deployed
by None at 2022-10-20 18:14:53.ready_for_review
by Max Kadel at 2022-10-20 18:14:54.referenced
by Jane Sandberg at 2022-10-20 19:43:41.merged
by Jane Sandberg at 2022-10-20 19:43:41.closed
by Jane Sandberg at 2022-10-20 19:43:41.head_ref_deleted
by Jane Sandberg at 2022-10-20 19:43:42.closed
by Jane Sandberg at 2022-10-20 19:43:43.point person is @LynnDurgin
mentioned
by None at 2022-10-20 13:16:25.subscribed
by None at 2022-10-20 13:16:25.point person is @LynnDurgin
mentioned
by None at 2022-10-20 13:16:41.subscribed
by None at 2022-10-20 13:16:42.labeled
by None at 2022-10-20 06:34:19.Superseded by #32.
closed
by None at 2022-10-20 06:34:21.head_ref_deleted
by None at 2022-10-20 06:34:22.closing in favor of https://github.com/pulibrary/bibdata/pull/2009
head_ref_force_pushed
by Christina Chortaria at 2022-10-20 11:10:00.closed
by Christina Chortaria at 2022-10-20 12:53:58.labeled
by Christina Chortaria at 2022-10-20 15:40:56.renamed
by Christina Chortaria at 2022-10-20 15:41:04.ready_for_review
by Christina Chortaria at 2022-10-20 15:28:42.referenced
by Kevin Reiss at 2022-10-20 16:48:37.merged
by Kevin Reiss at 2022-10-20 16:48:37.closed
by Kevin Reiss at 2022-10-20 16:48:37.head_ref_deleted
by Kevin Reiss at 2022-10-20 16:48:39.assigned
by Christina Chortaria at 2022-10-20 14:59:31.closed
by Kevin Reiss at 2022-10-20 16:48:39.review_dismissed
by Christina Chortaria at 2022-10-20 20:41:14.head_ref_force_pushed
by Christina Chortaria at 2022-10-20 20:41:15.head_ref_force_pushed
by Christina Chortaria at 2022-10-20 20:44:39.referenced
by Jane Sandberg at 2022-10-20 20:58:28.merged
by Jane Sandberg at 2022-10-20 20:58:28.closed
by Jane Sandberg at 2022-10-20 20:58:28.head_ref_deleted
by Jane Sandberg at 2022-10-20 20:58:30.closed
by James R. Griffin III at 2022-10-20 16:48:08.While testing the MSSQL backup generation utility, I have encountered a number of authorization issues:
I am working immediately to resolve this.
The S3 arn:aws:s3:::rdss-elements-mssql
Bucket has been created to store this on Amazon S3 (using the pulibrary
account).
The production
and dev
environments have placed into maintenance mode.
The AWS policy arn:aws:iam::080265008837:policy/rdss-elements-mssql-admin
has been created, along with the AWS user arn:aws:iam::080265008837:user/rdss-elements-mssql-user
in order to provide access to the S3 Bucket.
The DBA from OIT is currently seeking to use the IAM arn:aws:iam::080265008837:user/rdss-elements-mssql-user
account to access the S3 Bucket
After some troubleshooting, the DBA has authenticated, and the database export is being uploaded
The current estimate for the upload to the S3 Bucket is 4 hours.
The upload has been completed, I am going to proceed with drafting a message sharing the access to the S3 Bucket with Digital Science.
The user arn:aws:iam::080265008837:user/rdss-elements-mssql-user
now has only read-only access to the contents of the Bucket.
The credentials and access URL have been published to LastPass using Digital-Science-Elements\elements_mssql_amazon_S3
.
Information has been shared to the Basecamp thread using https://3.basecamp.com/3804430/buckets/26643531/todos/4720741957
The resource was deleted. Closing this ticket; please reopen if there's other action required.
closed
by None at 2022-10-20 13:54:30.https://figgy.princeton.edu/catalog/171055a1-7066-4409-b0be-1e5eec080985 looks good. Can images 1-185 be removed from https://figgy.princeton.edu/catalog/d4530b35-0c84-4959-b9aa-8870a9827706 ? Thanks.
closed
by Trey Pendragon at 2022-10-20 16:29:58.referenced
by None at 2022-10-20 17:40:25.merged
by None at 2022-10-20 17:40:25.closed
by None at 2022-10-20 17:40:25.head_ref_deleted
by None at 2022-10-20 17:40:26.It's happening now with items from the Balkans and Turkey raster set item in staging: https://figgy-staging.princeton.edu/catalog/9a3dd626-d169-49b4-b6eb-c21132d0bd32
reopened
by None at 2022-10-20 19:28:24.deployed
by None at 2022-10-20 18:11:44.deployed
by None at 2022-10-20 18:30:23.deployed
by None at 2022-10-20 18:53:13.referenced
by Trey Pendragon at 2022-10-20 20:09:32.merged
by Trey Pendragon at 2022-10-20 20:09:32.closed
by Trey Pendragon at 2022-10-20 20:09:32.head_ref_deleted
by Trey Pendragon at 2022-10-20 20:09:33.Reopening until this migration is run.
closed
by Trey Pendragon at 2022-10-20 20:09:34.reopened
by Trey Pendragon at 2022-10-20 20:09:48.Implications of this change: - Users will no longer be able to ingest from Google Drive. We aren't aware of anyone ingesting this way any longer. - We'll need an alternate implementation for fetching server directory locations / contents
This issue blocks migration away from webpacker because of an implementation detail in the browse everything react code
A first step might be removing the google drive feature.
Datadog keeps logs for 2 weeks. There are no logs showing an attempt to use google drive in the past 2 weeks: https://app.datadoghq.com/logs?query=service%3Afiggy%20%20%2Fbrowse%2Fproviders%2Fgoogle_drive%2Fauthorize&cols=host%2Cservice&index=&messageDisplay=inline&stream_sort=time%2Cdesc&viz=stream&from_ts=1663699135003&to_ts=1666291135003&live=true (vs file system: https://app.datadoghq.com/logs?query=service%3Afiggy%20%2Fbrowse%2Fproviders%2Ffast_file_system%2Fauthorize&cols=host%2Cservice&index=&messageDisplay=inline&stream_sort=time%2Cdesc&viz=stream&from_ts=1663699135003&to_ts=1666291135003&live=true). Note that this path, I believe, shows that someone selected that file source from the dropdown, not that they necessarily uploaded something with it. But it's the best I could find.
We lost the google analytics tracker in early August, but even when it was in place I don't think these browse everything routes render the layout so they don't get logged. I looked at may-june and I'm not seeing any stats on /browse.
I don't really think 2 weeks is long enough to conclude the feature's not in use.
labeled
by None at 2022-10-20 13:51:12.@tventimi is most likely the person to ask about this. Ill reach out to him
Colleen is recalling the reel from ReCAP and redigitizing next week.
labeled
by Trey Pendragon at 2022-10-20 19:09:46.labeled
by Trey Pendragon at 2022-10-20 19:09:46.renamed
by Eliot Jordan at 2022-10-20 19:10:11.mentioned
by None at 2022-10-20 19:26:42.subscribed
by None at 2022-10-20 19:26:42.assigned
by Max Kadel at 2022-10-20 18:21:23.unassigned
by Max Kadel at 2022-10-20 18:21:35.assigned
by Max Kadel at 2022-10-20 18:21:42.assigned
by None at 2022-10-20 14:09:01.deployed
by None at 2022-10-20 16:43:21.review_requested
by Christina Chortaria at 2022-10-20 16:48:25.referenced
by Christina Chortaria at 2022-10-20 18:04:30.merged
by Christina Chortaria at 2022-10-20 18:04:30.closed
by Christina Chortaria at 2022-10-20 18:04:30.head_ref_deleted
by Christina Chortaria at 2022-10-20 18:04:31.referenced
by Jane Sandberg at 2022-10-20 18:01:08.closed
by Christina Chortaria at 2022-10-20 18:04:31.referenced
by Christina Chortaria at 2022-10-20 18:04:32.ReShare go live currently set for week of 12/5/2022.
renamed
by Christina Chortaria at 2022-10-20 22:01:04.Latest feedback in catalog channel https://pulibrary.slack.com/archives/CA0UY0Q07/p1666016068429639
referenced
by None at 2022-10-20 13:03:07.merged
by None at 2022-10-20 13:03:07.closed
by None at 2022-10-20 13:03:07.head_ref_deleted
by None at 2022-10-20 13:03:08.closed
by None at 2022-10-20 13:03:09.closed
by None at 2022-10-20 13:03:09.deployed
by None at 2022-10-20 12:57:47.head_ref_force_pushed
by None at 2022-10-20 13:03:57.referenced
by None at 2022-10-20 13:15:56.merged
by None at 2022-10-20 13:15:56.closed
by None at 2022-10-20 13:15:56.head_ref_deleted
by None at 2022-10-20 13:15:57.@mccalluc I was referring to postgres dependency, not net_smtp. I think this is related to you utilizing Ruby 3.1 instead of Ruby 3.0. That said upgrading to the latest Ruby is not a bad idea as long as everything else continues to work.
mentioned
by Chuck McCallum at 2022-10-20 12:56:54.subscribed
by Chuck McCallum at 2022-10-20 12:56:54.closed
by None at 2022-10-20 13:15:57.labeled
by None at 2022-10-20 13:16:48.labeled
by None at 2022-10-20 13:16:48.assigned
by None at 2022-10-20 13:23:44.referenced
by Chuck McCallum at 2022-10-20 13:47:29.merged
by Chuck McCallum at 2022-10-20 13:47:29.closed
by Chuck McCallum at 2022-10-20 13:47:29.head_ref_deleted
by Chuck McCallum at 2022-10-20 13:47:30.Closed with PR #481
closed
by Hector Correa at 2022-10-20 15:57:32.assigned
by Hector Correa at 2022-10-20 18:04:52.Hey team! Please add your planning poker estimate with Zenhub @bess @hectorcorrea @jrgriffiniii
renamed
by None at 2022-10-20 18:21:05.mentioned
by Bess Sadler at 2022-10-20 18:38:12.subscribed
by Bess Sadler at 2022-10-20 18:38:12.mentioned
by Hector Correa at 2022-10-20 18:38:12.subscribed
by Hector Correa at 2022-10-20 18:38:12.mentioned
by James R. Griffin III at 2022-10-20 18:38:12.subscribed
by James R. Griffin III at 2022-10-20 18:38:12.example from orangelight: https://github.com/pulibrary/orangelight/blob/main/.eslintrc Maybe we should utilize the airbnb one instead
Hey team! Please add your planning poker estimate with Zenhub @bess @hectorcorrea @jrgriffiniii
renamed
by None at 2022-10-20 18:52:10.mentioned
by Bess Sadler at 2022-10-20 18:57:53.subscribed
by Bess Sadler at 2022-10-20 18:57:53.mentioned
by Hector Correa at 2022-10-20 18:57:53.subscribed
by Hector Correa at 2022-10-20 18:57:53.mentioned
by James R. Griffin III at 2022-10-20 18:57:53.subscribed
by James R. Griffin III at 2022-10-20 18:57:54.referenced
by None at 2022-10-20 15:00:25.merged
by None at 2022-10-20 15:00:25.closed
by None at 2022-10-20 15:00:25.head_ref_deleted
by None at 2022-10-20 15:00:26.@acozine I created a new PR to upgrade ruby 3.1 in bibdata https://github.com/pulibrary/bibdata/pull/2009. I deployed it, tunneled in the worker and the app is loading as expected. We need to run the playbook you added against the web server - bibdata-alma-staging1 and deploy the PR. The next steps are on my end to check AWS webhook and indexing. Thank you :).
mentioned
by Alicia Cozine at 2022-10-20 12:55:21.subscribed
by Alicia Cozine at 2022-10-20 12:55:21.Yes I think it's true; if I remember correctly there was at least once time when they replaced everything with the contents of the VPN list. And it's difficult to communicate about what can be replaced and what can't.
I'd update the first part of this doc to state clearly that it's not just the VPN machines that need to be on the final list - they change most frequently, but the list must also include the IPs for other machines (assuming this is still true).
@acozine I updated the intro wording. Is it more clear?
mentioned
by Alicia Cozine at 2022-10-20 13:33:47.subscribed
by Alicia Cozine at 2022-10-20 13:33:48.referenced
by Eliot Jordan at 2022-10-20 16:17:43.merged
by Eliot Jordan at 2022-10-20 16:17:43.closed
by Eliot Jordan at 2022-10-20 16:17:43.head_ref_deleted
by Eliot Jordan at 2022-10-20 16:17:45.closed
by Eliot Jordan at 2022-10-20 16:17:45.I see the permissions when I view the token -- will those still be viewable once it's expired?
@hackartisan I think its premature to document the permissions just yet. I want to make sure this action works and then then pare them down to the minimal required. I ticked a number that seem relevant, but I doubt they'll all be needed.
I'm not sure if the permissions will be visible once it's expired.
Here's the GitHub documentation on how to create a fine-grained access token (used to give actions permissions to create a full PR on the repo). The current token will expire 10/20/2023, which is the maximum time the token can live.
Details on the token settings when it comes time to replace it:
head_ref_force_pushed
by Eliot Jordan at 2022-10-20 17:30:47.mentioned
by None at 2022-10-20 18:27:04.subscribed
by None at 2022-10-20 18:27:05.review_dismissed
by None at 2022-10-20 19:57:31.referenced
by Christina Chortaria at 2022-10-20 20:37:58.merged
by Christina Chortaria at 2022-10-20 20:37:58.closed
by Christina Chortaria at 2022-10-20 20:37:59.head_ref_deleted
by Christina Chortaria at 2022-10-20 20:38:00.labeled
by None at 2022-10-20 20:40:08.labeled
by None at 2022-10-20 20:40:08.labeled
by None at 2022-10-20 01:26:42.Superseded by #28.
closed
by None at 2022-10-20 01:26:44.head_ref_deleted
by None at 2022-10-20 01:26:45.


Where would you like to receive email notifications about payments?
Is this email address correct?
{{ emailForm.value.email }}


|
I designed a capacitance meter on PIC32 Microcontroller. Capacitance was calculated by measuring the time it takes for a capacitor to charge to a threshold voltage in which a hardware comparator was used as an interupt. Our capacitance meter measured within < 2% error and could handle a range from 1 to 100 nF.
|
||
|
Using funding from the Maker Club, I built a RC electric longboard from scratch that could reach speeds of 18 mph and has a range of about 20 miles. In this build, I learned about motors and speed controllers, lithium ion batteries, and radio control.
|
||
|
The LED Matrix arcade game suite includes several simple iconic games from our childhood made using a LED matrix and the FRDM-K64F microcontroller. These games included stacker, jump, and tetris. The suite includes a game selection interface and a two button control panel to select and play games.
|
||
|
In this project, I recreated the popular music app, Shazam, which is able to recognize songs as you play them. In the project, I used concepts from FFTs on MATLAB to execute this. With an average recognition time of 5.14 seconds, our script was able to correctly identify songs from a library of 50 different tracks.
|
||
|
A hovering drone motor was created that could hover at specified angles using PID control. This project was created on the PIC 32 microcontroller. The user could not only set the hover angle but could also adjust coefficients for the PID control. The motor angle was further outputted through a DAC output to be seen on an oscilloscope.
|
||
|
FireFingers is a device created for people to learn instruments with complex hand movements (piano, guitar, flute, etc.). In recording mode,the device can memorize a users hand movements. These data files can be shared over the internet. In playback mode, vibration motors on the joints of the hand indicate when and what you should move in order to perform the task or play a particular song.
|
||
|
In this project, we worked to build an AM radio transmitter with very basic circuit components including FETS, resistors, inductors, and capacitors. The stages of the transmitter included a differential oscillator, a Gilbert cell mixer, and a power amplifier. We were able design the circuit and then transmit music across the room to a commercial receiver.
|
||
|
This autonomous robot has a lasercut chassis and can follow lines and detect walls in order to fully navigate and map a 9 x 9 maze. There is a radio on board the robot that transmits the maze walls to an GUI on a different computer. In addition, a camera and FPGA is on board for image processing so that the robot can detect colors and shapes of what the camera sees.
|
||
|
The toast printer is a device that can connect to the internet and "print" custom images on your toast using a heat gun. Operating much like a 3D printer, the device uses a PIC 32 and Raspberry Pi Zero W to retrieve images or check the weather to operate in different modes to print the weather, a custom note, or a cute picture on your bread.
Hackaday and
Adafruit Blog
|
||
|
Smartcharge is a device that I pitched in an entrepreneurship competition, winning second place. SmartCharge is a replacement for any traditional outlet that can sense the current drawn from the outlet. When there is a rapid drop in current, it cuts off power completely in order to prevent trickle charging and save both energy and money.
|
||
|
Along with the rest of the Biofuels R&D team, I designed and built a biodiesel reactor for the community to use. We collect waste vegetable oil from houses and local restaurants and use our reactor to turn this waste into usable biodiesel. This biodiesel is then gifted to the CU Agricultural Research Station which uses it to fuel its mowers. This has been a large endeavor and though it doesn't involve any electrical work, it has been a continued passion of mine.
|
||
|
The algal CO2 scrubber project aimed to explore the growth of algae and develop a device to be used in homes with an effluent chimney. Algae in the scrubber would have access to sunlight and carbon dioxide for growth (and thus filter out the gas). The scubber includes a lasercut wooden base, acrylic housing tubes, two aquarium pump, as well as a colour sensor and temperature sensor to monitor growth. This alge can be periodically harvested to make algal biofuels.
|
GPA: 3.88
Apart from my interests in building and creating, I enjoy spending my time with my friends and family, trying out new hobbies, and being in the outdoors. From the Appalachian Mountains in Southwest Virginia, I have always enjoyed being active, spending my time hiking and exploring. Rock climbing has been a continued passion of mine and I have been actively climbing for over 4 years now, both bouldering and sport climbing.
When not busy climbing or tinkering, I can be found playing video games, board games, or following my newfound interests in cooking. Currently, I am trying to perfect cuisine combining my family’s traditional Asian recipes with more American ingredients and cooking techniques. I also enjoy shopping at local thrift stores, searching for good deals and steals. Recently, I have been spending a large amount of my free time pursuing digital art and design both for my own interests and campus organizations.


This example shows how to use the Upload as a direct replacement for <input type='file' /> form elements.
<input type='file' />
In this mode the upload is executed as part of the form submit. No dedicated action methods are required.


Lionel Messi equals Cristiano Ronaldo record as Barcelona return to La Liga summit
Lionel Messi scored a sensational hat-trick, which included two trademark free-kicks, as Barcelona thrashed Celta Vigo 4-1 and returned to the top of the La Liga table
by Alex SmithLionel Messi equalled Cristiano Ronaldo's La Liga hat-trick record to earn the praise of Ernesto Valverde, help Barcelona beat Celta Vigo 4-1 and put his team back top of LaLiga.
Real Madrid's convincing 4-0 win at Eibar earlier on Saturday had kept up the pressure.
Messi gave Barca an early lead from the penalty spot, only for Celta, in their first match under new boss Oscar Garcia, to equalise through Lucas Olaza's free-kick.
The Argentina playmaker, though, then produced a trademark free-kick of his own to put Barca back in front heading into half-time.
Messi completed his treble - matching the record of former Real Madrid star Ronaldo of 34 in LaLiga - when he clipped in another impeccably executed deadball strike soon after the restart.
Sergio Busquets, on as a first-half substitute, crashed in a late fourth as Barcelona moved back top above Real Madrid on goal difference.
"With Leo, anything is possible," Valverde said. "This (taking free-kicks) is something that he has mastered to perfection.
"Because of this, the opponent can't commit fouls on the edge of their own box. If they do, we try to take advantage.
"Messi, apart from scoring goals, has a commitment to the game."
Barcelona had suffered an unexpected 3-1 defeat at Levante last weekend, and were then held to a goalless home draw by Slavia Prague in the Champions League on Wednesday night.
"After losing, it's nice to win. Even more so in a team like ours," Valverde said in quotes reported by Marca.
"We had a damaging defeat the other day and we needed a win tonight.
"It was really difficult for us in the first half, with their high press that made it hard for us to play out and we didn't have much rhythm in our play."
Garcia knows Messi can "decide the match in one action".
The Celta boss said in press conference quotes reported by Marca: "It is uncontrollable. He has a very high percentage of fouls, you can not avoid making mistakes in that area.
"Without him, the match it would have been very different, and we would have had an even chance of winning."


 It’s like internet radio, only better. You sign up (free) and download their little “audio scrobbler” (dont ask). Then when you listen to music on your computer (iTunes or whatever) it takes note of what you’ve been listening and recommends music based on that. You can also search for artists and listen to ‘radio’ based on similar artists. It’s really hard to explain, but fun and stuff.
This is where that little graphic to the right is coming from. I am on there as joesepi, feel free to look me up and add me as your friend. We can sit around and make mix tapes like the old days.
I am also adding our records up there – see Pensamplivox.
EDIT: And you know what else? I am finding this really useful as I clean out my ridiculously large music library. I can scroll through things and click on something I hadn’t heard. With the Audio Scrobbler open, it instantly gives me a brief bio. For example, I didn’t realize A Certain Ratio were right along Gang of Four and Cabaret Voltaire in pioneering the post-punk/funk stuff from the UK in the late 70′s. This last.fm, I like.


Introduction
While I've worked hard to make game creation in Playscii as easy and inviting as possible, it's still code-based, and much of this page will assume you know the basics of Python programming. Any kind of non-code-based game creation, such as visual programming, is a far-off someday thing. If you have ideas for how it could work, I'm interested in hearing them.
That said, you can make cool things happen in Game Mode with small amounts of easy to understand code, and you can "live tune" many things without having to restart Playscii to see your changes. This page will explain how.
There are some topics best covered in this format, but for other things Playscii's code itself is the best documentation. Playscii can auto-generate nicely formatted HTML documentation of its code you can view in any web browser, without an internet connection. All you have to do is select "Generate documentation" from the Help menu. It may take a moment, but within a few seconds a table of contents page should open in your web browser. (If you're running from source instead of one of the pre-compiled builds, make sure you have the pdoc Python module installed.)
If you've already generated the docs, the following link should take you to there:
Playscii Auto-Generated Documentation
Table of Contents
- Introduction
- Entering Game Mode
- Menu Bar
- Loading Games
- Creating a New Project / Folder Structure of a Game
- Game World Overview
- Game Object Overview
- Game States
- the Editor Interface
- the Properties Editor
- Spawning New Object Instances
- Object State and Facing
- World Properties and Globals
- Camera
- Rooms
- HUD
- Debug Views
- Collision Detection and Resolution
- Sound and Music Playback
- Handling Input
- the Developer Console
- Crash/Error Handling
- Workflow
- Tour of Example Games
Entering Game Mode
By default Playscii launches into Art Mode. To switch between Art Mode and Game Mode, click the top right corner of the screen, or press G
.
Menu Bar
The menu bar along the top edge of the screen provides access to much of Playscii's functionality. Click a menu name to open it and select from the available commands. Many commands have an associated keyboard shortcut, displayed to the right of the menu entry.
Loading Games
Games in Playscii are folders that contain code and assets (art, sounds) in specific subfolders. Playscii includes some games in its application folder, but your operating system's Documents/Playscii/ folder has a games/ subfolder for you to put your own games in.
You can launch a game in Playscii in one of three ways:
- "Open game" from the Game menu will bring up a list of available games. Load one by clicking on it.
- Launch Playscii from the command line with -game mygame after it, where mygame is the game (ie the folder) you want to launch.
- Include a file called autoplay_this_game in the same folder as the Playscii executable, whose first line is the name of the game you want to load. This is a simple hack for distributing games to people who don't have Playscii - you can just zip up the folder and distribute that.
Creating a New Project / Folder Structure of a Game
You can start a new project with "New game" from the Game menu, and Playscii will create the appropriate folders for you:
- art/ - PSCI art files used by your GameObjects go here.
- charsets/ - If your game uses any custom character sets, put them here.
- palettes/ - If your game uses any custom color palettes, put them here.
- scripts/ - All Python scripts (.py extension) for your game go here. Playscii will create a generic "starter script" here, which may be helpful if you're new to writing Python scripts for game objects.
- sounds/ - Sound effects and music for your game, in any format supported by SDL2_mixer, go here.
- start.gs - This is the default game state save file that will be loaded when you open your game.
When you create a new project, Playscii automatically creates a generic "starter script" in the scripts/ folder, with a few things to help newcomers - if you already know what you're doing, you can delete or ignore it. This starter script defines two new "classes", or flavors, of game objects: a generic GameObject subclass and a subclass of Player, which is simply a GameObject that moves around when you press the arrow keys. Before getting too deeply into these, though, a higher level overview of how all the classes fit together is in order.
Game World Overview
In Game Mode, Playscii delegates game functionality to something called a GameWorld: loading game states, content, and scripts; managing the spawning and lifetimes of GameObjects; running much of the input->update->render loop that makes the simulation go; and handling Edit UI tasks such as selecting and dragging objects.
 A GameObject can represent the player, a non-player character, an entire screen of level geometry, a powerup, a trigger that does something when entered, an invisible marker where another object appears, and so on.
GameWorlds can also organize their objects into GameRooms, so that only certain objects are visible and simulated at once, and can use a GameHUD to render UI-appropriate information above everything else.
The GameWorld class also has some functions that are most appropriate to its scope, such as managing music playback, getting collections of objects by type, and global collision tests. Have a look at the GameWorld generated documentation for an idea of what it handles relative to the other moving parts.
Game Object Overview
The GameObject class defined in the built-in game_object.py module provides the base capabilities of all objects, and you can extend this functionality by creating variants of that base class in the scripts you place in the game's scripts/ subfolder. The game_util_objects.py module includes a few generic subclasses ready-made for things like the player, projectiles, NPCs, triggers, and spawners.
Every GameObject has two components that help it render (draw to the screen) and collide, respectively: a Renderable and a Collideable. Renderables in turn can draw data from one or more Arts, pieces of art you can create in Art Mode or generate on-the-fly with code.
GameObjects have many properties you can change, functions you can call and/or override, and concepts such as state and facing to let you define custom behaviors. Rather than try to detail all of them here, please have a look at the GameObject generated documentation and Game Object Utility Library generated documentation, as well as the code for the example games, for an idea of how these can be used.
Game States
Playscii can save the state of all objects in a GameWorld into a "save state file" not unlike a conventional savegame or save state in a game console emulator. The start.gs created with a new project defines the game's starting state, which you can modify how you like by adding and manipulating the objects therein. You can create additional save state files for testing purposes, or even to load in new segments of gameplay if there is no state carried over from previous segments.
Save a game's current state into a new state file with "Save new state..." from the State menu. "Save state" or Control-S
saves over the last saved state - take care not to accidentally overwrite your start.gs with this - and "Load state" opens a list of save state files to choose from. F2
quickly reloads the last loaded state file, which is handy for rapid iteration.
Much as Art (.PSCI files) are just tiles, layers, and frames serialized into JSON, save state files are all the GameObjects and GameRooms serialized into JSON, so it's possible to view and even manually edit them, though there's no non-bug reason you'd need to do this.
It's worth noting that all GameObjects with the should_save property set False do not get saved into state save files. This is appropriate for certain kinds of objects, such as projectiles or spawned enemies whose lifetimes are managed in some other way, and/or for whom saving and loading would introduce unwanted complexity into how they work.
the Editor Interface
In Game Mode, the boundary between editing a game and playing it is intentionally fairly thin. The editor interface lets you create, manage, and modify GameObjects, and when this interface is disabled you're left with just the game itself, ie what players experience.
You can hide this UI at any time with "Hide edit UI" in the Game menu or Shift-E
. When distributing games, you can add the line Application.can_edit = False to playscii.cfg which will prevent players from using the interface, switching into Art Mode, or doing anything besides just what you as a the game's designer intend.
The most basic actions one can do in this edit UI are primary mouse button
on an object to select it and drag to move it. Selected objects have a thin pulsing outline that shows their "bounds", ie the edges of their current Art. Similar to Art Mode's Select tool, you can select multiple objcets at once: Shift + primary mouse button
adds an object to the current selection set, while Control + primary mouse button
removes an object from the selection set.
You can also select from a list of all objects in the world with "Select objects" in the Object menu, or Control-L
. The aforementioned modifier keys have the same effect here as when you click in the world.
Selected objects will drag-move together as expected. You can also delete all selected objects with "Delete selected objects" in the Object menu.
the Properties Editor
The pane that appears on the right side of the screen when you have object(s) selected is the Properties Editor. It shows the properties on the selected object(s) that you're allowed to edit on a per-instance basis. Clicking on a property will bring up a window where you can enter its new value. If multiple selected objects have different values, this will be displayed in the property field instead of any single value.
The properties you edit in this UI are the very same properties that are declared in the object's class definition. If you want to change a value for all instances of this class, edit the code; if you want to change the value for a single instance, use the Properties Editor.
Each class defines which of its properties can be edited, and which will be saved to state files. The serialized property is a list of string names of properties that will be saved and can be edited, while the editable property is a list of string names of properties that should be editable but not serialized - mainly useful for live tuning.
Spawning New Object Instances
You can create new instances of the classes you've defined in scripts with "Spawn object" in the Object menu, or Control-P
. This will bring up a list of available classes. Click one to select it, and then click in the main view to spawn an object at that location.
You can also create new objects from existing ones with "Duplicate selected objects" in the Object menu.
Object State and Facing
In almost any game that uses 2D artwork, different sprites and animations are used to represent an object's different states (standing, walking, jumping) and facings (left, front, back). GameObjects use a string variable called state and an integer called facing (with GOF_LEFT, GOF_RIGHT, GOF_FRONT, GOF_BACK as the possible values) for these.
Object State
GameObject.state can be any string, but the default state name is "stand". There is no setter method for state, you can just set it, get it, and compare it directly.
Any custom state names you define for a class need to be included in its valid_states list. The get_art_for_state get_art_for_state methods use this list to load and find state-appropriate art, respectively. When a GameObject's state_changes_art property is set True, its art_src value becomes a prefix for finding art filenames for the appropriate state, eg "player_stand", "monster_die" etc. When state_changes_art is False, the base art_src property is used and the object won't change its art unless you have custom code doing so.
Object Facing
Similar to the above, when an object's facing_changes_art property is True then get_art_for_state will try to return an art that is appropriate to both the object's current state and its art. The cronotest example game shows this in action: "crono_stand_front" is the art for the player standing (ie not moving) and facing to the front, while "crono_walk_right" is the art for the player walking to the right.
Unique left and right facings will be used if found, otherwise get_art_for_state will mirror the one it finds so you don't need to make extra art. In general, the system will fall back to whatever facing is available, so that if you're just roughing in an object quickly you can get away with just having a front or side-facing art and do the other assets later.
World Properties and Globals
GameWorld is a core Playscii class, and it is a singleton not a GameObject: it doesn't serialize itself, nor is it an appropriate place for game-specific logic. In addition to classes like Player and Projectile, the game_util_objects.py module has two special classes that enable you to manage the world's state as objects: WorldPropertiesObject and WorldGlobalsObject.
Every GameWorld has a WorldPropertiesObject, but it's given a few status flags that ensure you can't select it, delete it, or spawn a second instance. Its purpose is to mirror the properties of the world itself, and then propagate those back to the world when loading a state, so that you can edit the world's properties much as you would any other object, with "Edit world properties" in the World menu. Here you can change things like the gravity applied to physical objects, whether or not the camera auto-locks on to the player, and various debug settings.
Every GameWorld also has a WorldGlobalsObject, which is typically a custom class defined for each game, where you can put logic that manages global state. When a save state file loads, it's spawned immediately after any saved objects, so whatever it's looking for is guaranteed to be there. Other game objects can always refer to it via self.world.globals.
By default this object isn't serialized, to keep a clear separation between world data and world logic, but this isn't carved in stone. The first released Playscii game, Endless Ladder Climbing 2, makes fairly heavy use of a WorldGlobalsObject to manage world state.
As WorldGlobalsObject is bound to be a custom class, you can let the world know which class to use by entering the class name in WorldPropertiesObject.globals_object_class_name.
Camera
A game's camera is not represented by a GameObject, rather its few properties are manipulated via the WorldPropertiesObject (so its position at any given point is serialized in a save state file) or script code.
In addition to static positioning, a camera can have a "focus object" whose movement it tracks, set via Camera.focus_object. As a convenience, when GameWorld.player_camera_lock is True, the camera will try to stay locked on to the player.
As in Art Mode, you can manually set the camera's zoom level with "Set camera zoom" in the View menu, and you can set its position directly with the dev console.
It's sometimes useful to use a LocationMarker object to remember a camera position. "Move selected object(s) to camera" and "Move camera to selected object" in the View menu make it easier to do this: you can position the camera how you want it and then snap an object to it, and then later snap the camera to that object to restore the position.
Rooms can also set the camera position. This is explained in detail in the next section.
Rooms
Sometimes your game will have multiple "screens" worth of content, like a large world to explore. It's usually easier, for both the designer and the computer, to not be thinking about every single object in such a world at all times. To this end, Playscii allows you to organize objects into Rooms, represented by the GameRoom class.
Rooms are strictly an opt-in concept: every object keeps track of which rooms it's in, and an object that is not in any rooms is considered to be everywhere. So by default the world updates and renders every object in it, and you don't need to think about rooms at all if you're not using them. Most of the example games don't use rooms at all, while the Maze game uses them extensively. If you've got Playscii open as you read these docs, opening the Maze game and poking at it might help you understand some of the functionality.
The game world has a notion of what the "current room" is, and by default it's None. Once you've created a room, with "Add room" in the Room menu, you can set it as current either with "Change current room" from the Room menu, or clicking on a room's name in the list at the bottom of that same menu - a checkmark will appear next to the current room.
Managing Room Contents
Once you have a room set as current, you can set which objects are in it with "Add selected objects to this room" and "Remove selected objects from this room". "Add/remove objects from this room" will bring up a list in the left pane, in which objects in the room are highlighted and clicking adds or removes them. On the code side, if you have a handle to the room itself you can do this with GameRoom.add_object_by_name (passing the object's string name), GameRoom.add_object (passing the object by reference), GameRoom.remove_object_by_name, and so on.
Again, objects that you know will always be on-screen - it's usually a safe bet that the player is, for example - can be kept outside of all rooms.
Objects that are not in the current room (and aren't "everywhere" as described above) are not rendered or updated (unless their GameObject.update_if_outside_room property is set True), so as you're organizing objects you'll see some of them blink out of sight.
If you get confused and what's where, you can toggle a global view of all objects in all rooms with "Show all rooms" in the Room menu.
Room Camera Markers and Edge Warps
Managing room transitions and camera changes as the player moves around are very common uses of rooms - again, the Maze game's explorable world does this a lot. If a room's camera_marker_name is set, the camera will warp there when the room is entered. You can easily set this with "Set this room's camera marker" in the Room menu.
Often you'll want to warp the player to a different room when they reach the "edge" of it. You need to provide two bits of information to the room to make this work: give it an object to define the "edges" of the room, with "Set this room's edge object" in the Room menu, and telling the world which room or point to warp to when the player reaches the north/south/east/west edges of those bounds, with "Set this room's edge warps". In the pane on the left, you'll notice you can select both room names and object names. If a room name is given for an edge warp, the player will warp to that room; if an object name is given, the player will warp to that object's location and change to that object's room.
Technically this "edge warp" functionality is doing something very similar to the WarpTrigger class, but its close integration with the room concept makes it somewhat easier.
A few more intricacies of Rooms are covered in the Maze game section below, so have a look if any of this isn't clear.
HUD
The GameHUD (HUD is short for Heads-Up Display) is a simple singleton member of GameWorld that draws in 2D screen space and manages its Renderables directly, useful for UI/HUD like purposes. The whole point of a GameHUD is that it has game-specific logic, so you'll want to create a subclass in your scripts and set your GameWorld.hud_class_name to its name via the WorldPropertiesObject, much as you set globals_object_class_name.
When you're setting Renderable sizes and locations in a GameHUD, remember that it uses OpenGL screen space coordinates, where (0,0) is the center of the screen and (1,1) is the top right corner.
Debug Views
Game Mode has a few visualization modes that are helpful for debugging in the View menu:
- Show all object origins: show each object's "origin" or XYZ location using a familiar red/green/blue axis marker.
- Show all object bounds: show each object's "bounds", ie the edges of their current Art.
- Show all object collision: show each object's collision shapes - see the Collision section below.
If you want to use debug lines for a more specific purpose, check out the renderable_line.DebugLineRenderable class - you can feed it a list of 3D coordinate tuples and it will draw those lines in the world.
Collision Detection and Resolution
Each GameObject has a Collideable component that allows it to participate in collisions with other objects. A Collideable in turn can have zero or more CollisionShapes, of which there are two types: Circle and Box (or "AABB" for Axis-Aligned Bounding Box, meaning an unrotated rectangle). Mostly commonly an object's Collideable will either have a single shape, as in the case of dynamic objects like the Player and Pickup classes, or multiple shapes arranged to approximate the shapes of tiles in an object's Art's "collision layer" - see more on this below.
Cronotest example game showing circle, box, and tile-based collision.
These basic collision types are represented in the CST_* enumerated values in the collision module: CST_NONE, CST_CIRCLE, CST_AABB, and CST_TILE. Set a GameObject's collision_shape_type property to one of these to get each behavior.
CST_NONE means a Collideable will not bother generating any shapes and effectively do nothing, CST_CIRCLE and CST_AABB refer to the circle and box shapes described above, and CST_TILE refers to the generation of multiple box shapes alluded to above. An object's Circle collision size can be tuned with the col_radius property, and an object's AABB collision size can be tuned with the col_width and col_height properties. If you enable the collision debug view, you can see these changes reflected in real time.
Tile-Based Collision
CST_TILE collision leverages Playscii's tile-based nature by letting you define a layer in an object's Art to be its "collision layer" - a layer whose name is defined in the GameObject.col_layer_name property - so that you can easily author collision for complex environment objects. By default any layer in an Art named "collision" will be used for this purpose, and any non-blank (character index 0) tile on that layer will be treated as a solid block. In the image above, you can see the red shapes with the blue outlines that define the background object's collision layer. Static background objects are the most common use case for tile-based collision
Static vs Dynamic Collision
A GameObject's collision can be static or dynamic. If it's static, it can never move. Objects with CST_TILE collision are always static, as Playscii does not currently have a computationally efficient way to handle complex tile-based collisions for moving objects. The CT_* enum values defined in the collision module define arbitrary categories, and CTG_STATIC and CTG_DYNAMIC are lists of these values. You probably won't have to check or define these values much, just understand the static vs dynamic distinction and set it appropriately for each class.
Tunneling
Tunneling refers to bugs where moving objects can punch through other objects without the expected collision behavior. If you notice this happening for a given object class, you can set its fast_move_steps property to something greater than 0 to make its collision checks more granular - basically, each move is subdivided into fast_move_steps steps, the object stops moving if a collision is found, and the collision resolution phase that happens later will push the colliding object out of what it hit. This is enabled by default for the game_util_objects.Projectile class. Playscii's collision code is still maturing so if you see collision problems you can't easily fix, please file a bug.
Sound and Music Playback
Playscii's audio capabilities are not extensive but they should cover basic uses. Sound assets can be in any format supported by SDL2_mixer, and go in the sounds/ subfolder of your game folder.
GameObject.play_sound plays a sound by name, and names are mapped to asset filenames in an object's sound_filenames dictionary. Sounds can play N times or loop indefinitely, and you can stop them by name with stop_sound. You can also define looping sounds to play while an object is in a given state via looping_state_sounds
Music is controlled globally with GameWorld.play_music / stop_music.
Handling Input
Playscii's InputLord class handles application input and takes care of basic things like player movement, but you may want to have objects (the player, most commonly) handle input directly. In these cases, set the class's handle_key_events and/or handle_mouse_events properties to True, and override GameObject's handle_key_down/handle_key_up and/or clicked/unclicked functions. InputLord passes in the key as a string and modifier key statues as booleans, so you don't need to worry about decoding from SDL2 keycodes or anything. Mouse events are passed in as button numbers and give the world coordinates of the click (X and Y axes).
the Developer Console
Playscii has a powerful developer console that can be opened by pressing ~
aka the tilde key, whose placement may vary on non-US layouts. If it's something unreasonable on your keyboard, you can rebind it to something better in your binds.cfg.
Type help at the dev console to see a list of available commands, with a brief summary of what each does. Some of these are more germane to Art Mode and/or redundant with functionality available from menus. Some commands require arguments after them; if so a usage hint will display if you type the command sans arguments.
The dev console can also run arbitrary python expressions within the application's namespace! This is very powerful and potentially dangerous, so save your work before experimenting. The console's execution mechanism sets a few values so you can easily access them:
- app - the application instance itself
- ui - the application's top-level UI instance
- camera - the current camera (Art Mode and Game Mode each have their own camera)
- art - the current active Art in Art Mode
- world - the GameWorld instance
- player - the player instance in Game Mode
- sel - the selected object in Game Mode, if only a single object is selected
- hud - the GameWorld's GameHUD instance
An example of how one might use this: select an object in Game Mode, open the console and type sel.art.set_tile_at(0, 0, 0, 0, 1 + 3, 4, 5). This will set the top left tile of the selected object's current Art to a specific character and color. That particular function is a bit wordy to call, but it demonstrates that you can call actual functions, use expressions, and set values directly from the console. The better you know Playscii's internals, the more powerful this tool can be for debugging and quick hacks.
Crash/Error Handling
As you're iterating on game code, it's possible your code will cause Playscii to crash. Since 0.8.1, where possible Playscii will try to catch this and print the Python exception information to the console instead of crashing. If you run into a situation where this reasonably should have happened but you got a crash instead, please file a bug.
Workflow
If you've been reading this document sequentially most of this will have been covered already, but I hope it's clear by now that Playscii's design places a high value on making it so you can "live edit" and see changes reflected immediately as much as possible, avoiding the productivity and morale drags of having to restart the application or game every time a small change is made.
A proficient Playscii workflow includes using state save files to rapidly reset after code changes, exposing important class tuning values for live property editing, and using the dev console when other UI doesn't easily expose things. Also worth mentioning is that any changes made to Arts that objects reference in Art Mode will be reflected instantly back in Game Mode, so you can iterate rapidly on art and animation assets.
I'm always looking to make this workflow better, so please send me any suggestions you have.
Tour of Example Games
Playscii includes some example games to demonstrate many of the features available in Game Mode, so here's a summary of the learning value of each. In addition the first released Playscii game, Endless Ladder Climbing 2, was created with an older version of Playscii but also does some reasonably ambitious things, so you can download that and examine the scripts/ folder in its game folder if you're eager to learn more.
Cronotest
No real "game" to it, this was the first test space for Game Mode made in April-May of 2015, and shows off what was new at the time: bitmap image conversion from a certain beloved 1990s JRPG, a Player class that uses facing to drive front/side/back view stand and walk state animations, and basic examples of circle (player and the urn), box (the chest), and tile (room walls, bed, stair railing) collision types.
Maze
This game was built to put the Rooms features through their paces. Its world consists of several large tile-based background objects, a few pickups, and some very basic NPCs spawned by ObjectSpawners - all collected into different rooms and connected by a combination of "edge warps" and conventional WarpTriggers. It was made with Playscii 0.7.1 in October 2015 and I made a video detailing its features.
Flood
The goal of this game is to "flood" all the tiles with the same color, starting with the top left tile, before you run out of turns. Press number keys 1-5 to choose the next color to flood squares adjacent to the ones you've already flooded.
This game is a simple example of direct input handling - there's no actual Player object spawned, the Board class itself handles input. The Board also directly manipulates the tiles of its own, dynamically-generated Art - notice there are no pre-authored .PSCI files in the game's folder. Setting GameObject.generate_art to True tells the object not to worry about having an art_src set.
Shmup
A simple 2D shoot-em-up to show off Projectiles, ObjectSpawners, and a generated starfield. Note how the EnemySpawner class overrides get_spawn_class_name to produce a weighted random enemy population. Various objects use the lifespan property to auto-destroy themselves after a fixed time. The starfield uses Art.shift_all_frames(0, 1) to efficiently scroll downward - under the hood, this uses numpy's ndarray.roll to shift the data without rewriting every tile every update.
Platso
A very basic single-screen platformer featuring a world with gravity and jumping, input handling to ensure each jump requires a keypress, and monsters with some basic behavior logic. Note PlatformMonster's use of set_timer_function to run its check_wall_hits method, a potentially expensive custom collision check, every 1/5 of a second instead of every frame.
Platformers live and die by their control feel and the solidity of their collision resolution and for this game those are definitely not where I'd like them to be, so if you have any suggestions on how to improve it, please let me know!
<< back to main documentation page


Shia LaBeouf says seeing his dad for the first time in 7 years inspired the ending for his film ‘Honey Boy’
by Nate DayShia LaBeouf will do anything to raise money for charity.
During a recent visit to "The Ellen DeGeneres" show, the talk show host challenged LaBeouf to eat a ghost pepper, known for being one of the spiciest foods on Earth.
"I want to give you $10,000 for a charity of your choice," DeGeneres, 61 said. "But I understand you like spicey things?"
SHIA LABEOUF THANKS POLICE OFFICER WHO ARRESTED HIM IN 2017 FOR 'CHANGING MY LIFE'
LaBeouf confirmed that he enjoys spicy foods as the pepper was brought to him.
"There's water here, what else can we help you with if this pepper's really, really bad?" DeGeneres asked.
"That pepper's gone," LaBeouf said. "Say 'bye-bye pepper.' He's out of here. Bye-bye pepper."
Without hesitation, the actor, 33, chomped down on the pepper.
"That's a cute little pepper right there," LaBeouf said. "It's a cutie pie. It'll take a minute to kick in probably."
"Be careful, I don't want to throw up on your knee right there," LaBeouf joked, placing a tray in his lap just in case.
While the pepper may not have affected LaBeouf, the actor revealed to DeGeneres that his recent arrest and "head camp" did, inspiring him to write the autobiographical film "Honey Boy."
LaBeouf said he wrote "the first chunk [of the film] in this head camp they sent me to" before reuniting with his father after seven years apart and finishing the script.
"When I got home, I hadn't seen my dad in seven years and my director, Alma Har'el, who's a wizard, she was like, 'You need to go see your dad,'" LaBeouf said. "So I went and saw my dad, recorded that, came home and I had the ending, wrestled it down and that was the process."
When asked by DeGeneres what "head camp" was, LaBeouf explained: "Head camp is where the court sends you when the other option is seven years in jail, pretty much. I got arrested in Georgia for terrorizing a police officer, which is a felony charge and they said 'you've got a problem.'"
LaBeouf then discussed his experience in the "head camp," where he was diagnosed with, and began treatment for, post-traumatic stress disorder.
GLENN CLOSE SAYS EMMA STONE 'DOESN'T HAVE TO TALK TO ME' IN PREPARATION FOR DISNEY'S 'CRUELLA' FILM
"They said 'we've got a solution' and we started doing this stuff called exposure therapy," LaBeouf recounted. "Through that process, recording all those conversations, was where the movie came from."
"Honey Boy" tells the story of LaBeouf's time as a child actor on the Disney Channel show "Even Stevens," when he was supporting his "off-color" father, who worked as a clown.
Finally, LaBeouf revealed that his father didn't have many notes for the movie, but wanted it to express his "relationship he had with a chicken named Henrietta LeFowl who was the world's first daredevil chicken."
CLICK HERE TO GET THE FOX NEWS APP
LaBeouf recounted his father's clown act with Henrietta.
"My dad used to put this chicken on his head and do cartwheels," LaBeouf said.
"Honey Boy" hits theaters Friday.


Library to read in v5/v6 XPORT files using Node.js .
To add xport-js to your project, run
npm install xport-js
See the library documentation for details on methods and options available.
import Library from 'xport-js';
// Create a library instance
const lib = new Library('/path/to/ds.xpt');
// Get variable metadata
const metadata = await lib.getMetadata();
// Get dataset records as objects
let records = [];
for await (let obs of lib.read({ rowFormat: 'object' })) {
records.push(obs);
}
// Output contents of XPT file to CSV file(s)
await lib.toCsv('/outDir/')
This method return AsyncIterable which can be used in for await ... of statement.
lib.read(options);
lib.read(outDir, options);
See read method options description for details.This project is licensed under the MIT License - see the LICENSE file for details.
Generated using TypeDoc


com.qaTestCase.TcAmazon
SearchItem
(Software, windows)
java.lang.IndexOutOfBoundsException: Index 16 out of bounds for length 16
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:359)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at org.openqa.selenium.support.pagefactory.internal.LocatingElementListHandler.invoke(LocatingElementListHandler.java:39)
at com.sun.proxy.$Proxy17.get(Unknown Source)
at com.qaTestCase.TcAmazon.SearchItem(TcAmazon.java:46)
... Removed 28 stack frames
E:\testing\TestNGDataProvider\testng.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" guice-stage="DEVELOPMENT"> <parameter name="Browser" value="chrome"/> <listeners> <listener class-name="com.qa.Utility.Reporting"/> </listeners> <test thread-count="5" name="Test1"> <parameter name="url" value="https://www.amazon.in/"/> <classes> <class name="com.qaTestCase.TcAmazon"/> </classes> </test> <!-- Test1 --> </suite> <!-- Suite -->
Tests for Suite
- Test1 (1 class)
Groups for Suite
Times for Suite
Total running time: 15 seconds
Reporter output for Suite
SearchItem(Books, science)
total number of options are:43
total no.of.items in category list is 23 and price list is24
Zen 10th SSLC Social Science Exam Reckoner 2021- Upgraded 40 MCQ's Pattern price is --> 228
Oswaal CBSE Question Bank Class 10 Science Book Chapterwise & Topicwise Includes Objective Types & MCQ's (For 2022 Exam) price is --> 440
Science and Technology for Civil Services Preliminary and Main Examinations | 4th Edition price is --> 551
CBSE All In One Science Class 10 for for 2022 Exam price is --> 499
CBSE All In One Science Class 9 for 2022 Exam price is --> 365
ButterflyEduFields 7in1 Fun Science Activity Box for Kids | Build Your own Gadgets | STEM Construction Toy | Gifts for Kids Age 5+ Girls Boys price is --> 340
CBSE All In One Social Science Class 10 for 2022 Exam price is --> 749
Combo Pack: Lakhmir Singh Class 10 Science (Biology, Physics, Chemistry) with Free Virtual Reality Gear (2021-2022 Examination) price is --> 350
Cambridge Lower Secondary Science Workbook 7 with Digital Access (1 Year) price is --> 1,360
Arun Publications HSA Social Science High School Teacher PSC Examination - Latest Edition price is --> 736
Cambridge Lower Secondary Science Learner's Book 7 with Digital Access (1 Year) price is --> 750
All in 1 Guide Book: CBSE Class 10 for 2022 Examination price is --> 1,435
Oswaal CBSE Question Bank Class 10 Social Science Book Chapterwise & Topicwise Includes Objective Types & MCQ's (For 2022 Exam) price is --> 630
Encyclopedia of General Science for General Competitions price is --> 460
CSIR NET Chemical Science Solved Papers price is --> 211
Computer Science with python Textbook for Class 11 Examination 2020-2021 price is --> 700
NCERT Political Science Books Set of Class - 6 TO 12 (ENGLISH MEDIUM) for UPSC Prelims/Main / IAS / Civil Services / IFS / IES / ISS / CISF / CDS / SCRA / IFS / NDA and more Paperback – 1 January 2016 price is --> 799
GATE 2022: Computer Science Engineering & IT Previous Year Solved Papers price is --> 730
Computer Science with Python: Textbook for CBSE Class 11 (2021-2022 Session) price is --> 583
Oswaal CBSE Question Bank Class 10 Science Book Chapterwise & Topicwise Includes Objective Types & MCQ's (For 2022 Exam) price is --> 440
CBSE All In One Social Science Class 9 for 2022 Exam price is --> 352
Wiley's Problems in Organic Chemistry price is --> 343
Always On: Hope and Fear in the Social Smartphone Era price is --> 448
title not matched
SearchItem(Electronics, fan)
total number of options are:43
total no.of.items in category list is 22 and price list is30
POLYCAB STUNNER HIGH SPEED PREMIUM CEILING FAN 1200MM OCEAN GREEN ANTI DUST, ANTI RUST & ANTI MICROBIAL price is --> 2,699
Polycab Superia Lite SP01 Fan with LED and Remote | Antique Copper Rosewood 1200 MM price is --> 6,490
Orient Electric Apex-FX 1200mm Ceiling Fan (Brown) price is --> 1,469
Candes Star 1200mm /48 inch High Speed Anti-dust Decorative 5 Star Rated Ceiling Fan (100% Copper) 400 RPM Coffee Brown With 3 Years Warranty (Blue) price is --> 1,429
Candes Florence 1200mm/48 inch High Speed Anti-dust Decorative 5 Star Rated Ceiling Fan (100% Copper) 400 RPM Silver Blue With 3 Years Warranty price is --> 1,649
Bajaj Ultima PT01 200mm Table Fan (White) price is --> 2,082
Bajaj Maxima 600 mm Ceiling Fan (Brown) price is --> 2,310
Crompton Hill Briz 1200 mm (48 inch) High Speed Ceiling Fan (Brown) price is --> 1,469
Atomberg Renesa 1200 mm BLDC Motor with Remote 3 Blade Ceiling Fan (Ivory Black, Pack of 1) price is --> 2,310
JIG'sMART Portable Hanging Neck Sport Fan for Women's Rechargeable Neck fan Band with 3 Level Air Flow Control Button 360 Degree Rotation Neck Fan Band for Kitchen, Sport fan (Multicolor) price is --> 1,550
POLYCAB CRYSTAL HIGH SPEED PREMIUM CEILING FAN 1200MM PEARL BEIGE ANTI DUST, ANTI RUST & ANTI MICROBIAL price is --> 3,199
POLYCAB ELANZA HIGH SPEED PREMIUM CEILING FAN 1200MM PEARL BROWN price is --> 2,653
Crompton Super Briz Deco 1200 mm (48 inch) High Speed Decorative Ceiling Fan (Smoked Brown) price is -->
Havells Ambrose 1200mm Ceiling Fan (Gold Mist Wood) price is --> 1,075
Halonix Smart IOT Ceiling Fan kit, Compatible with Amazon Alexa, Google Assistant, Temperature Control, Remote-Controlled, Timer Control, app Control price is --> 1,550
Adonai Rechargeable Multifunction Folding fan with LED light 360° Rotating (Assorted color) price is --> 1,539
SIALKOT 600 mm / 24 Inch High Speed 4 Blade Anti-Dust Ceiling Fan Suitable for Kitchen / Veranda / Balcony / Small Room with 900 RPM Brown (Glossy Brown) price is --> 3,396
ACTIVA APSRA 1200 MM High Speed 390 RPM Bee Approved 5 Star Ceiling Fan Brown with 2 Year Warranty price is --> 399
DPM 7627 RECHARGEABLE TABLE FAN MULTI-FUNCTION DUAL-MODE POWER SUPPLY FAN THREE-STAGE SPEED REGULATION BUILT-IN BATTERY, TWO POWER SUPPLY MODES ARE OPTIONAL THE LIGHTING USES HIGH-BRIGHTNESS price is --> 2,938
Usha Mist Air Icy 400mm Pedestal Fan (White) price is --> 2,536
Polycab India VITAL PLATINUM HIGH SPEED PREMIUM CEILING FAN (1200mm, ANTIQUE COPPER) price is --> 1,699
Havells Stealth Air 1250mm Dust Resistant Ceiling Fan (Metallic Black) price is --> 2,184
title not matched
SearchItem(Software, windows)
total number of options are:43
total no.of.items in category list is 22 and price list is16
Windows 10 Home OEM - 64 Bit Version | USA - Lifetime price is --> 4,495
Microsoft Office Home and Business 2019 Download 1 Person Compatible on Windows 10 and Apple macOS price is --> 10,999
Microsoft Windows 10 Pro 64 Bit System Builder OEM price is --> 2,949
Windows 10 Professional Activation Key price is --> 560
Microsoft Windows 10 Professional 32Bit/64Bit English INTL for 1 PC laptop/ User: 32 and 64 Bits on USB 3.0 Included - Full Retail Pack price is --> 4,299
Windows 10 Professional 32/ 64-Bit (Activation Code) With Original DVD price is --> 2,249
Windows 10 Professional Bootable USB with Genuine Product Key price is --> 1,800
Windows 7 Ultimate 32/64 bit Bootable DVD price is --> 499
Windows 10 Pro , Windows 8.1 & Windows 7 Professional X64-Bit Multiple 16 GB Metal Pendrive price is --> 1,816
Windows 7 Professional 64-bit Bootable DVD price is --> 1,899
Shivex WhatsApp Bulk Message Sender Software for marketing purpose, Work with Windows 7, 8, 10 - Best in class for Whatsapp marketing, No physical delivery. Purchase only from Seller name Shivex, Beware from Fake Seller price is --> 450
ESET Smart Security Premium 2 Device, 2 Year price is --> 1,100
Microsoft Windows 7 Professional x64 SP1 EN 1PK DSP OEI DVD price is --> 2,825
Windows 7 Ultimate Bootable 16 GB Metal Pendrive price is --> 615
K7 Total Security for Microsoft Windows SP2/Vista/Window 7, 8, 9 and 10 price is --> 2,450
Windows 10 32 & 64Bit Installation Multi Bootable 32 GB Scandisk USB Flash Drive All Edition in 1 Re-install repair recovery restore fix your windows with user manual price is --> 449
0 ignored methods
Methods in chronological order
com.qaTestCase.TcAmazon
setUp(chrome, https://www.amazon.in/)
0 ms
SearchItem(Books, science)
5133 ms
SearchItem(Software, windows)
11099 ms
SearchItem(Electronics, fan)
14926 ms
teardown
20481 ms


students
Current PhD Students
- Felipe Zimmerle da Nóbrega Costa (PhD, co-advised with Ruy Queiroz)
- Jairo Raphael Moreira Correia de Souza (PhD)
- Karine Galdino Maia Gomes (PhD)
- Rodrigo dos Santos Lima (PhD)
- Rodrigo José Sarmento Peixoto (PhD)
- Thayonara de Pontes Alves (PhD)
Current MSc Students
- Augusto Terra (MSc)
- Igor Nascimento dos Santos (MSc)
- Raquel Maria Santos de Oliveira Moura (MSc)
Past students
- Thiago Mael de Castro. A Machine-Verified Theory of Commuting Strategies for Product-Line Reliability Analysis. (PhD 2019, co-advised with Vander Alves).
- Pedro Henrique Sousa de Moraes. Willow: A Tool for Interactive Data Structures and Algorithms Visualization. (MSc 2020)
- Thayonara de Pontes Alves. Porting the Software Product Line Refinement Theory to the Coq proof assistant: A Case Study. (MSc 2020)
- Samuel Bristot Loli. Object-Relational Mapping Code Smells in Java Projects: A catalog and a detection tool. (MSc 2020)
- Daniel Severo Estrázulas. A domain specific language for describing classification rules in the quota system of the brazilian federal public education network. (MSc 2020)
- Karine Galdino Maia Gomes. Characterizing Safe and Partially Safe Evolution Scenarios in Product Lines: An Empirical Study. (MSc 2019)
- Alex Juvencio Costa. Test Strategies for Smart Cities Applications: A Mapping Study. (MSc 2019)
- Gabriel Ibson de Souza. On the challenges and architectural impacts of introducing gamification into a software system: The VazaZika case study.. (MSc 2019)
- Victor Laerte de Oliveira. An Empirical Study on the Adoption of the Kotlin Programming Language for Android Development. (MSc 2019)
- Bruce Fabian Reis Albuquerque. Evaluating the consistency of government sites to the coding guidelines from the web standards of electronig government (e-PWG). (MSc 2018)
- Gabriela Cunha Sampaio. Partially safe evolution of software product lines. (MSc 2017, co-advised with Paulo Borba)
- Fernando Chaves Benbassat. Safe evolution of product lines: Feature extraction scenarios. (MSc 2017, co-advised with Paulo Borba)
- Thiago Mael de Castro. Commutative strategies for reliability analysis of software product lines. (MSc 2016, co-advised with Vander Alves)


You will notice many httpd
executables running on your system,
but you should not send signals to any of them except the parent, whose
pid is in the PidFile. That is to
say you shouldn't ever need to send signals to any process except the
parent. There are three signals that you can send the parent:
TERM
, HUP
, and USR1
, which will
be described in a moment.
To send a signal to the parent you should issue a command such as:
You can read about its progress by issuing:kill -TERM `cat /usr/local/apache/logs/httpd.pid`
Modify those examples to match your ServerRoot and PidFile settings.tail -f /usr/local/apache/logs/error_log
As of Apache 1.3 we provide a script src/support/apachectl
which can be used to start, stop, and restart Apache. It may need a
little customization for your system, see the comments at the top of
the script.
Sending the TERM
signal to the parent causes it to
immediately attempt to kill off all of its children. It may take it
several seconds to complete killing off its children. Then the
parent itself exits. Any requests in progress are terminated, and no
further requests are served.
Sending the HUP
signal to the parent causes it to kill off
its children like in TERM
but the parent doesn't exit. It
re-reads its configuration files, and re-opens any log files.
Then it spawns a new set of children and continues
serving hits.
Users of the
status module
will notice that the server statistics are
set to zero when a HUP
is sent.
Note: If your configuration file has errors in it when you issue a restart then your parent will not restart, it will exit with an error. See below for a method of avoiding this.
Note: prior to release 1.2b9 this code is quite unstable and shouldn't be used at all.
The USR1
signal causes the parent process to advise
the children to exit after their current request (or to exit immediately
if they're not serving anything). The parent re-reads its configuration
files and re-opens its log files. As each child dies off the parent
replaces it with a child from the new generation of the
configuration, which begins serving new requests immediately.
This code is designed to always respect the MaxClients, MinSpareServers, and MaxSpareServers settings. Furthermore, it respects StartServers in the following manner: if after one second at least StartServers new children have not been created, then create enough to pick up the slack. This is to say that the code tries to maintain both the number of children appropriate for the current load on the server, and respect your wishes with the StartServers parameter.
Users of the
status module
will notice that the server statistics
are not set to zero when a USR1
is sent. The
code
was written to both minimize the time in which the server is unable to serve
new requests (they will be queued up by the operating system, so they're
not lost in any event) and to respect your tuning parameters. In order
to do this it has to keep the scoreboard used to keep track
of all children across generations.
The status module will also use a G
to indicate those
children which are still serving requests started before the graceful
restart was given.
At present there is no way for a log rotation script using
USR1
to know for certain that all children writing the
pre-restart log have finished. We suggest that you use a suitable delay
after sending the USR1
signal before you do anything with the
old log. For example if most of your hits take less than 10 minutes to
complete for users on low bandwidth links then you could wait 15 minutes
before doing anything with the old log.
Note: If your configuration file has errors in it when you issue a restart then your parent will not restart, it will exit with an error. In the case of graceful restarts it will also leave children running when it exits. (These are the children which are "gracefully exiting" by handling their last request.) This will cause problems if you attempt to restart the server -- it will not be able to bind to its listening ports. At present the only work around is to check the syntax of your files before doing a restart. The easiest way is to just run httpd as a non-root user. If there are no errors it will attempt to open its sockets and logs and fail because it's not root (or because the currently running httpd already has those ports bound). If it fails for any other reason then it's probably a config file error and the error should be fixed before issuing the graceful restart.
Prior to Apache 1.2b9 there were several race conditions involving the restart and die signals (a simple description of race condition is: a time-sensitive problem, as in if something happens at just the wrong time it won't behave as expected). For those architectures that have the "right" feature set we have eliminated as many as we can. But it should be noted that there still do exist race conditions on certain architectures.
Architectures that use an on disk
ScoreBoardFile
have the potential to corrupt their scoreboards. This can result in
the "bind: Address already in use" (after HUP
) or
"long lost child came home!" (after USR1
). The former is
a fatal error, while the latter just causes the server to lose a scoreboard
slot. So it might be advisable to use graceful restarts, with
an occasional hard restart. These problems are very difficult to work
around, but fortunately most architectures do not require a scoreboard file.
See the ScoreBoardFile documentation for a method to determine if your
architecture uses it.
NEXT
and MACHTEN
(68k only) have small race
conditions
which can cause a restart/die signal to be lost, but should not cause the
server to do anything otherwise problematic.
All architectures have a small race condition in each child involving the second and subsequent requests on a persistent HTTP connection (KeepAlive). It may exit after reading the request line but before reading any of the request headers. There is a fix that was discovered too late to make 1.2. In theory this isn't an issue because the KeepAlive client has to expect these events because of network latencies and server timeouts. In practice it doesn't seem to affect anything either -- in a test case the server was restarted twenty times per second and clients successfully browsed the site without getting broken images or empty documents.


- Easily find quality tutors
- Start by posting a job.
- Tell us about what you want to learn and the specific skills required.
- MLE analyses your needs.
- Our search functionality uses data science to highlight tutors based on their skills, helping you find talent that’s a good match.
- We send you a shortlist of likely candidates.
- You can also search our site for talent, and tutors can view your job and submit proposals too.
- Hire the tutor that works for you
- Browse profiles.
- View finalists’ MLE profiles to see client ratings, portfolios, Job Success scores, and more.
- Review proposals.
- Evaluate bids, considering each tutor’s qualifications, thought process, timeline, and overall cost.
- Schedule a chat.
- Ask specific questions, determine who’s the best fit, and contract.
- Be tutored efficiently and effectively
- Send and receive files.
- Deliver digital assets in a secure environment.
- Share feedback in real time.
- Use MLE Messages to communicate via text, chat, or video.
- Use our mobile app.
- Many features can be accessed on your mobile phone when on the go.
- Pay easily, safely, and securely.
- Simplified global payments.
- We deliver payments to tutors effectively in the Philippines.
- Includes MLE Payment Protection.
- Only pay for work you authorize.
- Invoicing and reporting.
- Access your invoices and transaction history on MLE.


Tackling AS2 with JBoss Fuse
AS2, or Applicability Statement 2, is a specification which customers ask me about from time-to-time. It’s a protocol I’ve implemented in the past using both homegrown and proprietary EAI suite applications, and I was always impressed with the efficiency and ability of AS2 to implement guaranteed message delivery between B2B Trading Partner applications. It’s also nice that a calling application can request an Acknowledgement when sending a message, plus the option of encrypting the message and/or channel, and signing of the message for non-repudiation and authentication.
Essentially, AS2 is nothing more than an S/MIME message (or email) exchanged over HTTP(S). Sounds simple enough, but the underlying specification is where the real meat is. Let’s start with taking a look at a synchronous “fire and forget” AS2 message without a request for an Acknowledgement:
AS2-Version:1.1
AS2-From:ABCCorp1
AS2-To:DEFCorp2
Date:Mon, 01 Oct 2007 12:39:55 CEST
Message-ID:<-61ce18ba:1155b26911a:-8000>
Subject:AS2 Message
X-VerifiedContentMIC:1234,sha1
disposition-notification-to: ABCCorp1
disposition-notification-options:signed-receipt-protocol=optional, pkcs7-signature;signed-receipt-micalg=optional, sha1
Content-Type:multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="----=_Part_0_1534588573.1191235195391"
User-Agent:Jakarta Commons-HttpClient/3.0.1
Host:<IP_ADDRESS>:10080
Content-Length:12121
URI:/b2b/as2/syncmdn
------=_Part_0_1534588573.1191235195391
Content-Type: text/plain; charset=ISO-8859-1; name=payload.txt
Content-Transfer-Encoding: binary
Content-Disposition: attachment; filename=payload.txt
111111111
111111111
111111111
111111111
------=_Part_0_1534588573.1191235195391
Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
D58aXhcU3LF8EV8zg2ExggGTMIIBjwIBATBXME8xCzAJBgNVBAYTAkVTMRIwEAYDVQQKEwlQYXJ0
MDcxMDAxMTAzOTU1WjAjBgkqhkiG9w0BCQQxFgQUXjgKuDVTY32GmtdMoZipz9K+DnIwNAYJKoZI
hvcNAQkPMScwJTAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwBwYFKw4DAgcwDQYJKoZIhvcN
AQEBBQAEgYAz0qQekvfMDlbzzQJKCLkro6+70cvD8YQIftXU/v/x2xkK8HmtU7/TyMB1QH3+jQwl
paFeRrpZmuhP/HNagVoSwb7LIWBu8WvPuisLThRcsWnt6HdE0ZYltkjlSU2hsN/RSqfU+BuGSL1k
lmcA8AjzEGq7eioMKMh3SRbhJZpSQAAAAAAAAA==
------=_Part_0_1534588573.1191235195391--
The above message is really nothing more than an HTTP request message. You’ll notice the HTTP headers contain a few specific AS2 properties, the HTTP body in this case is unencrypted and there is a SHA1 digital signature to sign the unencrypted message. This scenario works great when you have an external B2B trading partner who needs to forward a notification message and doesn’t expect a reply. But what about guaranteed message delivery? What if the sending B2B partner would like to know when the message is received and processed by the receiving system? In this case, we introduce something called “Message Disposition Notification” or MDN. An MDN is just a wordy acknowledgement. We can request an MDN by specifying a “reply-to” address and “disposition-notification-options” like below:
Now we have a way of (a)synchronously exchanging messages between Trading Partners, whilst guaranteeing message delivery without the need for a centralized broker. A sending Trading Partner has confirmation their message has been received, valid and processed via an MDN transmission. Take a look at the below synchronous reply:
You’ll notice an X-VerificationFailure:true header indicating the exchange could not be verified (probably because it cannot be authenticated). This is great news as the receiving AS2 server can verify the digital signature immediately using a Hardware Security Module (HSM) for realtime performance, without forwarding the “dodgy” message to the backend system. So effectively acting as a proxy.
Here’s an example asynchronous MDN message :
This MDN originates from the backend receiving system, telling the sender there was a problem during the processing of the message. But this is not a problem with the AS2 exchange - this was a problem with the business payload itself. Therefore, we now have guaranteed message delivery and status of business payload processing.
So there’s the semantics out of the way, what about Fuse? And what is so difficult about building this out using a fluent API like Camel with EIP building blocks? Let’s look a little closer at what’s required here:
- An HTTP server
- A repository to store digital keys + certs (JKS or HSM)
- A repository to store the state of AS2 exchanges (for duplicate checking and auditing)
- A repository to store Trading Partner credentials (XML file or Database)
Life would be easier if there was a Camel component to kickstart the AS2 flow, but unfortunately there isn’t. So let’s look at what options we have:
OpenAS2
OpenAS2 is a java-based AS2 implementation. It is intended to be used as a server, configurable and supports a wide variety of signing and encryption algorithms. Features of OpenAS2 include:
- Conforms with AS2 1.1 protocol
- Can run as a server daemon
- Support for remote control
- Configurable Signature and encryption
- Supports compression
- Configurable Synchronous and Asynchronous MDN
- Supports HTTPS transport protocol
- Supports filename preservation
- Supports FDA Automatic Submissions Gateway using custom headers
- Supports easy extending and adding of new modules via XML configuration
Projects like OpenAS2 are great news, as they’re portable to Java-based applications like JBoss Fuse. There are some challenges we need to overcome though, including:
- No support for OSGi containers
- Trading Partner information (credentials, keys, certs) are all managed via a large XML file. Not ideal if you have hundreds or even thousands of Trading Partner credentials to maintain
- Inflexible database support - H2 only
OpenAS2 is great start for what we’re trying to achieve, but we need to look further afield.
as2-server
Luckily, there’s another project which further extends OpenAS2. It’s called as2-server / as2-lib and can be found here. The advantage of this project is:
- Maven support
- Some OSGi support
- Replaces H2 database with MongoDB
This project could easily be ported to run in Karaf, and potentially extended to offer Trading Partner profile storage on Mongo or some other relational database. Hopefully in the future we might see a Camel component appear that takes all the goodness from these projects and provides a flexible, extensible and maintainable AS2 solution that we can use in the field.


Know Your Akan Name Today!
Akan names, derived from Ghanaian Culture, are used to name children in Ghana according to the day of the week in which they were born. Here are some Akan names.
Male
- Sunday: Kwasi
- Monday: Kwadwo
- Tuesday: Kwabena
- Wednesday: Kwaku
- Thursday: Yaw
- Friday: Kofi
- Saturday: Kwame
Female
- Sunday: Akosua
- Monday: Adwoa
- Tuesday: Abenaa
- Wednesday: Akua
- Thursday: Yaa
- Friday: Afua
- Saturday: Ama
About The Site


Event Profiling
$EVENT_PROFILING
Planner Rule Profiling
$PLANNER_RULE_PROFILING
Some Notes
- This report was generated by utilizing
Debugger.Event
that the planner generated.
- Event profiling gives an overview over time spent with respect to general planner infrastructure.
- Planner rule profiling gives an overview over time spent with respect to specific rules invoked by the planner.
- All items not listing out times are invoked by the planner with a specific
Location
. These events are just counted.
- All items listing out times are invoked by the planner with location called
BEGIN
and END
.
These events are always sent in pairs. The time displayed is accumulated time spent between an occurrence of BEGIN
and its corresponding END
event.
- As
BEGIN
and END
events can be nested we make a distinction between total time and own time which is akin to what normal profilers offer.
Here are some known nestings:
- All rules times add up to the times in
TransformRuleCallEvent
.
TransformRuleCallEvent
nests within TransformEvent
. This corresponds to trying all possible pre-patterns on a rule. The rule is then invoked per matching pre-pattern.
InsertIntoMemoEvent
nests within TransformRuleCallEvent
. This also means that the time spent to insert into the memo structure is subtracted from the own times of all planner rules.


P&ID Asset Seizure: Nigeria Appeals $200m Payment To Court
The court ordered that the payment be made before it can give a stay of execution on the ruling by Justice Butcher that P&ID could seize over $9bn worth of Nigeria’s assets pending its appeal in a higher court.
by SaharaReporters, New York
Nigeria’s Attorney-General, Abubakar Malami, on Wednesday said that the country had appealed a $200m payment imposed by a United Kingdom court in its contention with the controversial Process and Industrial Development LTD over a failed 2010 contract.
The court ordered that the payment be made before it can give a stay of execution on the ruling by Justice Butcher that P&ID could seize over $9bn worth of Nigeria’s assets pending its appeal in a higher court.
“We have appealed against the payment,” Reuters quoted Malami as saying.
Nigeria was given permission to appeal the seizure in September but was ordered to pay the $200m within 60 days.
The time frame expires next week.
In his statement however, Malami left out details of when the appeal was made and if any response had been received from the court.
In its appeal, Nigeria would have to prove there was an error in the previous ruling.
Malami said the nature of the appeal would necessitate the hiring of a new set of lawyers.
“We may decide to bring on board new sets of lawyers to handle the new brief but we may decide that the old and new lawyers should work together,” he said.
P&ID is owned by two Irishmen, Michael Quinn and Brandon Cahill.
A Bloomberg report detailed how Quinn conned the Nigerian Government in partnership with military officials and intended to use the gas processing contract as his big break.
Quinn had previously sued the Nigerian Government for two similar contract breaches like the case gaining media attention.


{% extends "mozilla.html" %} {% block title %} Want to join Mozilla? {% endblock %} {% block pagetitle %}Brian R. Bondy - New to Mozilla {% endblock %} {% block subtitle %} How to become a Mozillian {% endblock %} {% block body_id %}body_mozilla{% endblock %} {% block main_content %}
If you want to get into the Mozilla community, this page will help you get your foot in the door. A Mozilla community member is called a Mozillian.
The best place to get involved is still by going through the Mozilla contribute page. This page will just summarize some starting points of getting involved.
People often become a Mozillian for a variety of reasons including: Wanting to help the project, wanting to develop their own skills, wanting to put something extra on their resume, or even wanting to get a job at Mozilla.
Find out what you want to help with. The best way to do that is by reading the ways to contribute page.
Here are some ways to get started with QA:
Here are some ways to get started with development:
Mozilla Firefox has 4 different release channels: Release, Beta, Aurora, and Nightly.
The Firefox Release channel is the currently released Firefox version. If Firefox Release was for example version 7, then Beta would be version 8, Aurora would be version 9, and Nightly would be version 10. Every 6 weeks each of these channels shift one to the left and Nightly gets a new version, in my example Nightly would become version 11.
You can download the builds here:
{% endblock %}


Managing a SuperUser's Profile
How to manage all fields of a SuperUser's profile using the User Accounts module. Editable fields include address information, contact information, biography, time zone and preferred locale.
- Navigate to Host > Advanced Settings > SuperUser Accounts.
- Find the user account to be edited using a filter or by searching.
- Click the Edit button beside their user account.
- Select the Manage Profile tab.
- Edit any fields as required. See "Managing your User Profile"
-
Click the Update button.


§ 1.1. This Agreement constitutes the agreement between Bartleby.com, Inc. ("Bartleby") and you as a user who accesses or establishes a connection to the website and internet service known as BARTLEBY.COM ("Service"), which is owned and controlled by Bartleby.
§ 1.2. If you choose to use the Service, you will be agreeing to abide by all of the terms and conditions of this Agreement. You must agree to abide by all of the provisions in this Agreement in order to remain an authorized user of the Service and your use of the Service constitutes your agreement to abide by those provisions. You are solely responsible for your use of the Service and for ensuring that your use complies fully with the provisions of this Agreement.
§ 1.3. Bartleby reserves the right, in its sole discretion, to change, add or remove portions of this Agreement at any time, but if it does so, it will post such changes on the Service, or send them to you via e-mail. Any changes to this Agreement will be effective immediately upon notice to you. Your use of the Service after notice of changes to this Agreement will be deemed your acceptance of the changes.
§ 1.4. Bartleby reserves the right, in its sole discretion, to change, suspend, limit, or discontinue any aspect of the Service at any time. Bartleby may also impose limits on certain features and services or restrict your access to parts or all of the Service without notice or liability.
§ 1.5.
Bartleby Content
§ 2.1. The contents of the Service are intended for your personal, noncommercial use. You will use the Service and any content, material, or information found on the Service solely for lawful, non-commercial purposes. All materials published and provided on the Service ("Content") are protected by copyright, trademark, and other applicable intellectual property and proprietary rights laws and is owned, controlled, and/or licensed by Bartleby or the party credited as the provider of the Content. "Bartleby", "Bartleby Library", and "Bartleby.com" are trademarks of Bartleby. You shall abide by all copyright notices, information, or restrictions contained in any Content accessed through the Service.
§ 2.2. The Service and its Contents are protected by copyright pursuant to U.S. and international copyright laws. You may not modify, publish, transmit, participate in the transfer or sale of, reproduce, create new works from, distribute, perform, display, or in any way exploit, any of the Content or the Service (including software) in whole or in part.
§ 2.3. Bartleby reserves the right to collect, to use, and to distribute demographic data about you and your use of the Service in forms that do not identify you individually or reveal your identity.
§ 2.4. Bartleby may contain links to other related World Wide Web Internet sites, resources, and sponsors of Bartleby. Bartleby is not responsible for the availability of these outside resources or their contents.
Disclaimer of Warranties & Limitation of Liability
§ 3.1.  NEITHER BARTLEBY, ITS AFFILIATES, NOR ANY OF ITS EMPLOYEES, AGENTS, THIRD PARTY CONTENT PROVIDERS, OR LICENSORS WARRANT THAT THE SERVICE WILL BE UNINTERRUPTED OR ERROR FREE. NOR DO THEY MAKE ANY WARRANTY AS TO THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SERVICE, OR AS TO THE ACCURACY, RELIABILITY, COMPLETENESS, OR CONTENTS OF ANY CONTENT, INFORMATION, MATERIAL, POSTINGS, OR POSTING RESPONSES FOUND ON THE SERVICE, ANY MERCHANDISE OR SERVICES PROVIDED THROUGH THE SERVICE, OR ANY LINKS TO OTHER SITES MADE AVAILABLE ON THE SERVICE.
§ 3.2.  IN NO EVENT WILL BARTLEBY (OR ANY OF ITS PARENTS, SUBSIDIARIES, AFFILIATES, EMPLOYEES, AGENTS, THIRD PARTY CONTENT PROVIDERS, OR LICENSORS, AND THEIR RESPECTIVE DIRECTORS, OFFICERS, EMPLOYEES, AND AGENTS), BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES THAT RESULT FROM THE USE OF, OR THE INABILITY TO USE, ANY CONTENT, INFORMATION, MATERIAL, POSTINGS, OR POSTING RESPONSES ON THE SERVICE OR THE SERVICE ITSELF. THESE LIMITATIONS APPLY REGARDLESS OF WHETHER THE PARTY LIABLE OR ALLEGEDLY LIABLE WAS ADVISED, HAD OTHER REASON TO KNOW, OR IN FACT KNEW OF THE POSSIBILITY OF SUCH DAMAGES.
Indemnification
You agree to defend, indemnify and hold harmless Bartleby (and any of its parents, subsidiaries, affiliates, employees, agents, third party content providers, or licensors, and their respective directors, officers, employees, and agents) from and against all claims, liability, and expenses, including attorneys' fees and legal fees and costs, arising out of your use of the Service or your breach of any provision of this Agreement. Bartleby reserves the right, in its sole discretion and at its own expense, to assume the exclusive defense and control of any matter otherwise subject to indemnification by you. You will cooperate as fully as reasonably required in the defense of any claim.
Fees and Payments
Bartleby reserves the right, in its sole discretion, at any time to charge fees for access to and use of the Service, or any portions of the Service. If Bartleby elects to charge fees, it will post notice on the Service of all provisions pertaining to fees and payments.
Notices between Us
You will contact us by sending electronic mail to<EMAIL_ADDRESS>We will contact you by sending electronic mail to the address you provide to us, or by posting a notice on the Service.
Termination
Bartleby may terminate this Agreement and your use of the Service at any time. Bartleby shall have the right immediately to terminate your use of the Service in the event of any conduct by you which Bartleby, in its sole discretion, considers to be unacceptable, or in the event of any breach by you of this Agreement.
Law Governing Performance and Disputes
This Agreement, your performance under it, and any disputes arising under it shall be governed exclusively by the laws of the United States of America and the State of New York, without giving effect to their conflict of laws principles. You expressly consent to the exclusive forum, jurisdiction, and venue of the Courts of the State of New York and the United States District Court for the Southern District of New York in any and all actions, disputes, or controversies relating to this Agreement.
General Terms
This Agreement and any posted rules on the Service established by Bartleby constitute the entire agreement of the parties with respect to the subject matter hereof. No waiver by either Bartleby or you of any breach or default under this Agreement shall be deemed to be a waiver of any preceding or subsequent breach or default. This Agreement shall be binding upon and inure to the benefit of Bartleby and its successors, trustees, and permitted assigns. Bartleby may assign this Agreement, or any of its rights or obligations under this Agreement, with or without notice to you.


--- title: Integrations linkTitle: Integrations description: Integrate YugabyteDB with Apache Kafka, Apache Spark, JanusGraph, KairosDB, Presto, Metabase, WSO2 IS, Hasura, Spring Framework, Prisma, more headcontent: YugabyteDB is driver-compatible with PostgreSQL, Apache Cassandra, and Redis clients image: /images/section_icons/develop/ecosystem-integrations.png section: INTEGRATIONS aliases: menu: latest: identifier: integrations weight: 640 ---


Twice Styled!
We deal with anything from fashion to just being a girl...
Welcome to Twice Styled the bloggers with no boundries.


JS Clipboard
The JavaScript Clipboard API is a tool for web developers that allows them to access and interact with the clipboard of a user's device. This can include copying and pasting text, images, or other data to and from the clipboard.
Imagine you have some text on a web page that you want to quickly copy to your computer's clipboard so you can paste it into another document. Normally, you would have to right-click the text and select "copy" from the menu. However, with the Clipboard API, a web developer can add a button to their page that, when clicked, automatically copies the text to your clipboard.
Current Clipboard Contents:
Please enable Clipboard access in order to view this project completely.


This page demonstrates all the controls that are part of the Google Charts "Controls and Dashboards" API and showcases a few different visual themes you can use with the library.
Pick a theme: Default Plus Hi-Contrast
The Google Charts "Controls and Dashboards" API, part of the Google Chart Tools API, describes how to assemble multiple charts into dashboards and enrich them with interactive controls to manipulate the data they display.
Controls are user interface widgets (category pickers, range sliders, autocompleters...) you interact with in order to drive the data managed by a dashboard and the charts that are part of it.
This page demonstrates all the controls that are part of the API and showcases a few different visual themes you can use with the library.
To use one of the themes defined here, it's enough to add its stylesheet to the page where you are using Google Charts and assign the corresponding class name to the page element that contains your dashboard and controls.
<html> <head> <!--Load the theme style--> <link rel="stylesheet" type="text/css" href="google-visualization-controls-theme-plus.css" > <!--Load the AJAX API--> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> // Load the Visualization API and the controls package. google.load('visualization', '1.0', {'packages':['controls']}); // Set a callback to run when the Google Visualization API is loaded. google.setOnLoadCallback(drawDashboard); function drawDashboard() { // your dashboard code here. } </script> </head> <body> <div id="dashboard_div" class="google-visualization-controls-theme-plus" > <!-- Render your dashboard here --> </div> </body> </html>
You can find the list of available themes here.
Have a look at one of the existing themes and start by copying and modifying one of those. Many of the controls widgets are built on top of the open source Closure library, and they maintains the same style names. When writing your own theme, ensure that you are properly namespacing all your CSS rules to avoid overriding others.
If you write a new theme, send us a pull request or contact us to have it included here.
Get the source code for these themes on GitHub : battlehorse/google-charts-controls-gallery
You can also clone the project with Git by running:
$ git clone git://github.com/battlehorse/google-charts-controls-gallery
Finally, you can download this project in either zip or tar formats.
Look for documentation at the Google Chart Tools homepage. Ask questions in the forum or ping me directly at battlehorse@gmail.com.


Here is a list of all documented class members with links to the class documentation for each member:
- a -
- App__create()
: App
- App__destroy()
: App
- App__init()
: App
- App__render()
: App
- App__run()
: App
- App__terminate()
: App
- c -
- f -
- m -
- r -