@dependabot rebase
mentioned
by Dependabot at 2021-09-20 15:43:54.head_ref_force_pushed
by None at 2021-09-20 15:44:20.deployed
by None at 2021-09-20 15:45:10.referenced
by None at 2021-09-20 15:47:30.merged
by None at 2021-09-20 15:47:30.closed
by None at 2021-09-20 15:47:30.head_ref_deleted
by None at 2021-09-20 15:47:30.@dependabot rebase
mentioned
by Dependabot at 2021-09-20 15:47:54.head_ref_force_pushed
by None at 2021-09-20 15:48:22.deployed
by None at 2021-09-20 15:49:29.referenced
by None at 2021-09-20 15:51:10.merged
by None at 2021-09-20 15:51:10.closed
by None at 2021-09-20 15:51:11.head_ref_deleted
by None at 2021-09-20 15:51:11.@dependabot rebase
mentioned
by Dependabot at 2021-09-20 15:51:30.head_ref_force_pushed
by None at 2021-09-20 15:51:57.deployed
by None at 2021-09-20 15:52:05.referenced
by None at 2021-09-20 15:55:14.merged
by None at 2021-09-20 15:55:14.closed
by None at 2021-09-20 15:55:15.head_ref_deleted
by None at 2021-09-20 15:55:15.Looks like nokogiri is up-to-date now, so this is no longer needed.
closed
by None at 2021-09-20 15:55:59.head_ref_deleted
by None at 2021-09-20 15:56:01.@dependabot rebase
mentioned
by Dependabot at 2021-09-20 15:55:29.head_ref_force_pushed
by None at 2021-09-20 15:55:50.deployed
by None at 2021-09-20 15:59:41.referenced
by None at 2021-09-20 16:01:07.merged
by None at 2021-09-20 16:01:07.closed
by None at 2021-09-20 16:01:07.head_ref_deleted
by None at 2021-09-20 16:01:08.deployed
by None at 2021-09-20 16:49:56.head_ref_force_pushed
by None at 2021-09-20 16:56:31.deployed
by None at 2021-09-20 16:56:41.head_ref_force_pushed
by None at 2021-09-20 17:05:16.deployed
by None at 2021-09-20 17:06:30.head_ref_force_pushed
by None at 2021-09-20 17:33:12.deployed
by None at 2021-09-20 17:33:58.head_ref_force_pushed
by None at 2021-09-20 17:41:37.closed
by None at 2021-09-20 17:46:15.convert_to_draft
by None at 2021-09-20 17:47:17.deployed
by None at 2021-09-20 17:47:41.head_ref_force_pushed
by None at 2021-09-20 17:51:52.deployed
by None at 2021-09-20 17:51:59.head_ref_force_pushed
by None at 2021-09-20 17:53:49.deployed
by None at 2021-09-20 17:53:58.ready_for_review
by None at 2021-09-20 18:00:48.referenced
by Kevin Reiss at 2021-09-20 19:20:56.merged
by Kevin Reiss at 2021-09-20 19:20:56.closed
by Kevin Reiss at 2021-09-20 19:20:56.head_ref_deleted
by Kevin Reiss at 2021-09-20 19:20:57.labeled
by None at 2021-09-20 19:21:36.labeled
by None at 2021-09-20 19:21:36.referenced
by Peter Green at 2021-09-20 17:05:53.merged
by Peter Green at 2021-09-20 17:05:53.closed
by Peter Green at 2021-09-20 17:05:53.referenced
by Peter Green at 2021-09-20 17:06:02.merged
by Peter Green at 2021-09-20 17:06:03.closed
by Peter Green at 2021-09-20 17:06:03.Caused by the alphanumerical range ``` <container id="aspaceda71ffb4b6a6135b663f6e803c4580bb" parent="aspacecb95aa1c4ae7c0f69bceb9f76d51a77a" type="folder"
11-11a ```
The fop transformation isn't set up to compute alpha ranges. I'd recommend splitting the range into two subcontainers in ASpace before we go down that road.
Worked for Armando; closing.
assigned
by None at 2021-09-20 18:38:36.closed
by None at 2021-09-20 19:03:19.labeled
by None at 2021-09-20 19:24:00.report submitted
labeled
by None at 2021-09-20 19:24:00.milestoned
by Bess Sadler at 2021-09-20 13:22:38.milestoned
by Bess Sadler at 2021-09-20 13:23:23.milestoned
by Bess Sadler at 2021-09-20 13:23:54.milestoned
by Bess Sadler at 2021-09-20 13:24:09.milestoned
by Bess Sadler at 2021-09-20 13:24:48.milestoned
by Bess Sadler at 2021-09-20 13:25:35.milestoned
by Bess Sadler at 2021-09-20 13:27:18.renamed
by Kate Lynch at 2021-09-20 13:25:35.milestoned
by Bess Sadler at 2021-09-20 13:47:02.unlabeled
by Bess Sadler at 2021-09-20 13:58:38.milestoned
by Bess Sadler at 2021-09-20 16:54:43.labeled
by Eliot Jordan at 2021-09-20 16:02:27.labeled
by Eliot Jordan at 2021-09-20 16:02:27.renamed
by Eliot Jordan at 2021-09-20 15:46:47.labeled
by Eliot Jordan at 2021-09-20 15:48:18.labeled
by Eliot Jordan at 2021-09-20 15:48:18.assigned
by Trey Pendragon at 2021-09-20 16:00:30.closed
by Eliot Jordan at 2021-09-20 16:34:58.labeled
by Trey Pendragon at 2021-09-20 16:25:07.referenced
by Eliot Jordan at 2021-09-20 16:34:58.merged
by Eliot Jordan at 2021-09-20 16:34:58.closed
by Eliot Jordan at 2021-09-20 16:34:58.head_ref_deleted
by Eliot Jordan at 2021-09-20 16:34:59.assigned
by Trey Pendragon at 2021-09-20 16:26:15.referenced
by Trey Pendragon at 2021-09-20 16:30:44.closed
by Eliot Jordan at 2021-09-20 16:37:01.labeled
by Trey Pendragon at 2021-09-20 16:32:44.referenced
by Eliot Jordan at 2021-09-20 16:37:01.merged
by Eliot Jordan at 2021-09-20 16:37:01.closed
by Eliot Jordan at 2021-09-20 16:37:01.head_ref_deleted
by Eliot Jordan at 2021-09-20 16:37:02.assigned
by Eliot Jordan at 2021-09-20 16:08:07.closed
by Trey Pendragon at 2021-09-20 16:38:53.labeled
by Trey Pendragon at 2021-09-20 16:34:15.referenced
by Trey Pendragon at 2021-09-20 16:38:53.merged
by Trey Pendragon at 2021-09-20 16:38:53.closed
by Trey Pendragon at 2021-09-20 16:38:53.head_ref_deleted
by Trey Pendragon at 2021-09-20 16:38:54.head_ref_force_pushed
by Eliot Jordan at 2021-09-20 18:20:14.milestoned
by Bess Sadler at 2021-09-20 13:27:04.We plan to talk to Lynn about doing this work manually in the future. For now we are de-prioritizing this.
milestoned
by Bess Sadler at 2021-09-20 13:22:36.closed
by Bess Sadler at 2021-09-20 13:41:53.milestoned
by Bess Sadler at 2021-09-20 13:22:35.closed
by Bess Sadler at 2021-09-20 13:42:21.milestoned
by Bess Sadler at 2021-09-20 13:25:03.labeled
by James R. Griffin III at 2021-09-20 13:32:28.milestoned
by James R. Griffin III at 2021-09-20 13:32:54.This is deprecated by https://github.com/pulibrary/oawaiver/issues/38
closed
by James R. Griffin III at 2021-09-20 14:10:39.closed
by James R. Griffin III at 2021-09-20 14:11:41.labeled
by Kate Lynch at 2021-09-20 12:57:53.renamed
by Bess Sadler at 2021-09-20 14:16:32.milestoned
by Bess Sadler at 2021-09-20 14:17:18.unlabeled
by Bess Sadler at 2021-09-20 14:18:29.labeled
by James R. Griffin III at 2021-09-20 14:19:01.labeled
by James R. Griffin III at 2021-09-20 14:19:15.labeled
by James R. Griffin III at 2021-09-20 14:19:24.This is awaiting user confirmation that these Collections have been created. I can e-mail the user momentarily.
labeled
by James R. Griffin III at 2021-09-20 14:03:23.unlabeled
by James R. Griffin III at 2021-09-20 14:04:02.labeled
by James R. Griffin III at 2021-09-20 14:19:31.labeled
by James R. Griffin III at 2021-09-20 14:19:42.assigned
by James R. Griffin III at 2021-09-20 14:04:52.labeled
by James R. Griffin III at 2021-09-20 14:19:51.assigned
by James R. Griffin III at 2021-09-20 14:06:10.labeled
by James R. Griffin III at 2021-09-20 14:20:01.assigned
by James R. Griffin III at 2021-09-20 14:05:57.labeled
by James R. Griffin III at 2021-09-20 14:06:03.labeled
by James R. Griffin III at 2021-09-20 14:21:13.assigned
by James R. Griffin III at 2021-09-20 14:05:52.labeled
by James R. Griffin III at 2021-09-20 14:21:29.assigned
by James R. Griffin III at 2021-09-20 14:07:40.labeled
by James R. Griffin III at 2021-09-20 14:22:33.labeled
by James R. Griffin III at 2021-09-20 14:22:41.unlabeled
by James R. Griffin III at 2021-09-20 14:08:41.labeled
by James R. Griffin III at 2021-09-20 14:08:42.labeled
by James R. Griffin III at 2021-09-20 14:23:02.transferred
by Kate Lynch at 2021-09-20 13:08:08.renamed
by Kate Lynch at 2021-09-20 13:17:36.labeled
by Kate Lynch at 2021-09-20 14:17:32.milestoned
by Bess Sadler at 2021-09-20 14:29:32.unlabeled
by Bess Sadler at 2021-09-20 14:29:37.labeled
by James R. Griffin III at 2021-09-20 13:37:53.milestoned
by James R. Griffin III at 2021-09-20 13:38:09.unlabeled
by James R. Griffin III at 2021-09-20 14:31:20.demilestoned
by James R. Griffin III at 2021-09-20 14:34:33.labeled
by James R. Griffin III at 2021-09-20 14:35:04.unlabeled
by James R. Griffin III at 2021-09-20 14:35:10.labeled
by James R. Griffin III at 2021-09-20 14:35:10.milestoned
by James R. Griffin III at 2021-09-20 14:35:17.I have provided some of my own progress with https://github.com/pulibrary/dspace-development/issues/463
labeled
by Kate Lynch at 2021-09-20 13:19:32.milestoned
by Bess Sadler at 2021-09-20 14:36:38.unlabeled
by Bess Sadler at 2021-09-20 14:38:23.labeled
by James R. Griffin III at 2021-09-20 14:38:23.Done!
labeled
by James R. Griffin III at 2021-09-20 14:06:44.unlabeled
by Bess Sadler at 2021-09-20 14:39:05.closed
by Bess Sadler at 2021-09-20 14:39:23.unlabeled
by Bess Sadler at 2021-09-20 14:42:11.milestoned
by Bess Sadler at 2021-09-20 14:42:16.labeled
by James R. Griffin III at 2021-09-20 15:55:29.labeled
by James R. Griffin III at 2021-09-20 15:55:29.labeled
by James R. Griffin III at 2021-09-20 15:55:29.milestoned
by Bess Sadler at 2021-09-20 13:22:39.closed
by Bess Sadler at 2021-09-20 16:51:21.milestoned
by Bess Sadler at 2021-09-20 13:22:39.closed
by Bess Sadler at 2021-09-20 16:51:27.Tested manually on staging and verified; prepping a PR to GitLab repo.
@kelynch This is deployed. Do we need to report back to anyone specific before closing this ticket?
I'll let Lynn Durgin know. Thanks!
milestoned
by Bess Sadler at 2021-09-20 13:22:40.mentioned
by Kate Lynch at 2021-09-20 16:51:53.subscribed
by Kate Lynch at 2021-09-20 16:51:53.closed
by Kate Lynch at 2021-09-20 17:52:13.This is related to a file-system level permissions issue:
2021-09-20 14:49:54,348 ERROR org.dspace.app.webui.servlet.DSpaceServlet @ jrg5@princeton.edu:session_id=9273DD094D273CA64C419930DC15BCF7:ip_ad
dr=<IP_ADDRESS>:unhandled error:java.io.FileNotFoundException\colon; /mnt/disks/dataspaceproddatastore/prod-copy/assetstore_production/13/49/
66/134966057684743006473428354266837213174 (Permission denied)
java.io.FileNotFoundException: /mnt/disks/dataspaceproddatastore/prod-copy/assetstore_production/13/49/66/1349660576847430064734283542668372131
74 (Permission denied)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at edu.sdsc.grid.io.local.LocalFileInputStream.open(LocalFileInputStream.java:171)
at edu.sdsc.grid.io.GeneralFileInputStream.<init>(GeneralFileInputStream.java:145) at edu.sdsc.grid.io.local.LocalFileInputStream.<init>(LocalFileInputStream.java:139)
at edu.sdsc.grid.io.FileFactory.newFileInputStream(FileFactory.java:630)
This was resolved by manually updating the owning user:
$ sudo chown -R dspace:dspace /mnt/disks/dataspaceproddatastore/prod-copy/assetstore_production/13/
labeled
by James R. Griffin III at 2021-09-20 18:32:32.labeled
by James R. Griffin III at 2021-09-20 18:32:32.labeled
by James R. Griffin III at 2021-09-20 18:32:32.assigned
by James R. Griffin III at 2021-09-20 18:32:32.closed
by James R. Griffin III at 2021-09-20 19:20:05.Digital Science is the vendor that provides Symplectic Elements software licenses to customers, and also offers Symplectic as a hosted service. According to the vendor website, the service includes:
Next steps: determine if any workflows are custom workflows that would require something other than what the hosted solution can provide; investigate cost.
The HR People feed feature is core to Elements, non-customized:
milestoned
by Bess Sadler at 2021-09-20 14:27:49.assigned
by Kate Lynch at 2021-09-20 14:27:50.labeled
by Kate Lynch at 2021-09-20 20:02:11.Test index took ~ 21 hours and failed to index 4 things.
E, [2021-09-18T00:14:31.938747 #27746] ERROR -- : Could not index bdbba79d-72c1-4238-ba69-99c741dd00a5 due to RSolr::Error::Http
E, [2021-09-18T00:14:31.969881 #27746] ERROR -- : Could not index 0fb4f29c-547c-4ec4-a9c6-bc47cf43c742 due to RSolr::Error::Http
E, [2021-09-18T00:14:32.360729 #27746] ERROR -- : Could not index 39f13dcd-247d-46bf-bc2e-40e7949c3c4d due to RSolr::Error::Http
E, [2021-09-18T00:14:45.806319 #27746] ERROR -- : Could not index 392e0a93-b15d-46b9-8b8f-249c7f217de5 due to RSolr::Error::Http
The broken ones were all items with bad nested objects, probably from an old bad ingest. I adjusted them in the interface by manually selecting the vocabularies that had the same nested labels - they were all the same, which points towards them being from the same ingest.
@kelea99 Do we know if this ever worked or is this a new feature? Is the expected outcome that two consecutive images would get "Page 1-2" and "Page 3-4" as a labels, instead of "Page 1" and "Page 2"?
@sdellis This worked once upon a time. This is the purpose of the "two-up" dropdown.
to confirm here as well: Yes, the expected outcome for the two up auto-pagination feature would be: [LABEL] 1-2 OR 1/2 . Thank you!
mentioned
by Kim Leaman at 2021-09-20 17:38:31.subscribed
by Kim Leaman at 2021-09-20 17:38:31.mentioned
by Shaun Ellis at 2021-09-20 17:41:34.subscribed
by Shaun Ellis at 2021-09-20 17:41:34.referenced
by Shaun Ellis at 2021-09-20 20:39:17.assigned
by Zaynab Masood at 2021-09-20 18:44:58.assigned
by Zaynab Masood at 2021-09-20 18:15:32.closed
by Zaynab Masood at 2021-09-20 19:42:51.moved_columns_in_project
by Zaynab Masood at 2021-09-20 19:42:52.deployed
by None at 2021-09-20 18:41:04.referenced
by Zaynab Masood at 2021-09-20 19:42:51.merged
by Zaynab Masood at 2021-09-20 19:42:51.closed
by Zaynab Masood at 2021-09-20 19:42:51.head_ref_deleted
by Zaynab Masood at 2021-09-20 19:42:52.Note: The page-label-generator ES6 module never imported into the OrderManager correctly via npm. It is referenced from the /app/javascript/utils
directory for now. This fix simply updates that code to the latest version, removes the package from package.json (avoiding confusion), and deletes an unnecessary file (lablr.js)
referenced
by None at 2021-09-20 12:37:39.referenced
by None at 2021-09-20 12:40:19.closed
by Kevin Reiss at 2021-09-20 13:14:53.deployed
by None at 2021-09-20 12:58:17.referenced
by Kevin Reiss at 2021-09-20 13:14:53.merged
by Kevin Reiss at 2021-09-20 13:14:53.closed
by Kevin Reiss at 2021-09-20 13:14:53.head_ref_deleted
by Kevin Reiss at 2021-09-20 13:16:41.Yes, in the admin interface there is a back-up option.
assigned
by None at 2021-09-20 15:23:49.referenced
by None at 2021-09-20 15:23:58.referenced
by None at 2021-09-20 18:15:10.referenced
by None at 2021-09-20 19:36:10.@kevinreiss I restored the data from a backup, but those files are still missing. Is it possible we have old database records?
mentioned
by Kevin Reiss at 2021-09-20 19:26:05.subscribed
by Kevin Reiss at 2021-09-20 19:26:05.head_ref_force_pushed
by None at 2021-09-20 18:15:10.deployed
by None at 2021-09-20 18:15:41.head_ref_force_pushed
by None at 2021-09-20 19:36:10.deployed
by None at 2021-09-20 19:36:32.milestoned
by Bess Sadler at 2021-09-20 13:22:40.closed
by Bess Sadler at 2021-09-20 13:18:19.milestoned
by Bess Sadler at 2021-09-20 13:23:07.referenced
by Bess Sadler at 2021-09-20 13:18:19.merged
by Bess Sadler at 2021-09-20 13:18:19.closed
by Bess Sadler at 2021-09-20 13:18:19.head_ref_deleted
by Bess Sadler at 2021-09-20 13:18:20.labeled
by Bess Sadler at 2021-09-20 13:18:30.milestoned
by Bess Sadler at 2021-09-20 13:24:22.milestoned
by Bess Sadler at 2021-09-20 13:28:01.milestoned
by Bess Sadler at 2021-09-20 13:28:38.closed
by James R. Griffin III at 2021-09-20 14:01:28.closed
by James R. Griffin III at 2021-09-20 14:01:37.closed
by James R. Griffin III at 2021-09-20 14:01:55.closed
by James R. Griffin III at 2021-09-20 14:12:24.milestoned
by Bess Sadler at 2021-09-20 13:22:37.milestoned
by Bess Sadler at 2021-09-20 13:22:37.milestoned
by Bess Sadler at 2021-09-20 13:25:50.milestoned
by Bess Sadler at 2021-09-20 13:26:07.milestoned
by Bess Sadler at 2021-09-20 13:26:40.milestoned
by Bess Sadler at 2021-09-20 13:26:52.milestoned
by Bess Sadler at 2021-09-20 13:27:34.milestoned
by Bess Sadler at 2021-09-20 13:28:16.Closing as a duplicate.
labeled
by Bess Sadler at 2021-09-20 14:04:28.unlabeled
by Bess Sadler at 2021-09-20 14:04:32.closed
by Bess Sadler at 2021-09-20 14:04:54.milestoned
by Bess Sadler at 2021-09-20 14:03:40.unlabeled
by Bess Sadler at 2021-09-20 14:04:13.labeled
by Bess Sadler at 2021-09-20 14:04:13.milestoned
by Bess Sadler at 2021-09-20 16:54:55.milestoned
by Bess Sadler at 2021-09-20 16:55:06.milestoned
by Bess Sadler at 2021-09-20 16:55:19.milestoned
by Bess Sadler at 2021-09-20 16:58:55.referenced
by Bess Sadler at 2021-09-20 17:00:34.merged
by Bess Sadler at 2021-09-20 17:00:34.closed
by Bess Sadler at 2021-09-20 17:00:34.head_ref_deleted
by Bess Sadler at 2021-09-20 17:00:34.milestoned
by Bess Sadler at 2021-09-20 14:11:12.unlabeled
by Bess Sadler at 2021-09-20 14:11:20.labeled
by Bess Sadler at 2021-09-20 14:11:20.assigned
by Bess Sadler at 2021-09-20 17:08:47.Closing this PR in favor of one that only has the initializer update, not the Gemfile.lock update. The update to the SHA for requests has been superseded.
unlabeled
by Bess Sadler at 2021-09-20 14:06:24.labeled
by Bess Sadler at 2021-09-20 14:06:24.milestoned
by Bess Sadler at 2021-09-20 14:06:29.assigned
by Bess Sadler at 2021-09-20 17:09:57.closed
by Bess Sadler at 2021-09-20 19:59:42.head_ref_deleted
by Bess Sadler at 2021-09-20 19:59:47.milestoned
by Bess Sadler at 2021-09-20 20:00:02.unassigned
by James R. Griffin III at 2021-09-20 20:03:14.These updated mappings look good to me @hectorcorrea, I think one of the failing tests related to the hathiurl can be removed since we deprecated ETAS.
mentioned
by Hector Correa at 2021-09-21 00:48:18.subscribed
by Hector Correa at 2021-09-21 00:48:18.assigned
by Kate Lynch at 2021-09-20 20:00:56.unassigned
by Kate Lynch at 2021-09-20 20:01:02.labeled
by Kate Lynch at 2021-09-20 20:01:35.head_ref_force_pushed
by None at 2021-09-20 12:42:49.deployed
by None at 2021-09-20 12:43:49.referenced
by Kevin Reiss at 2021-09-20 12:48:34.merged
by Kevin Reiss at 2021-09-20 12:48:34.closed
by Kevin Reiss at 2021-09-20 12:48:34.head_ref_deleted
by Kevin Reiss at 2021-09-20 12:48:35.referenced
by Kevin Reiss at 2021-09-20 12:54:25.merged
by Kevin Reiss at 2021-09-20 12:54:25.closed
by Kevin Reiss at 2021-09-20 12:54:26.head_ref_deleted
by Kevin Reiss at 2021-09-20 12:54:26.referenced
by Kevin Reiss at 2021-09-20 13:17:16.merged
by Kevin Reiss at 2021-09-20 13:17:16.closed
by Kevin Reiss at 2021-09-20 13:17:16.head_ref_deleted
by Kevin Reiss at 2021-09-20 13:17:16.Taken care of.
closed
by Kevin Reiss at 2021-09-20 13:17:34.referenced
by Kevin Reiss at 2021-09-20 13:06:02.merged
by Kevin Reiss at 2021-09-20 13:06:02.closed
by Kevin Reiss at 2021-09-20 13:06:02.head_ref_deleted
by Kevin Reiss at 2021-09-20 13:06:03.referenced
by Kevin Reiss at 2021-09-20 14:08:05.merged
by Kevin Reiss at 2021-09-20 14:08:05.closed
by Kevin Reiss at 2021-09-20 14:08:05.head_ref_deleted
by Kevin Reiss at 2021-09-20 14:08:06.Resolved: Dataspace is back up in 2a8c57c
.
labeled
by Francis Kayiwa at 2021-09-20 15:36:55.labeled
by Francis Kayiwa at 2021-09-20 15:36:55.locked
by Francis Kayiwa at 2021-09-20 15:36:56.closed
by Francis Kayiwa at 2021-09-20 16:33:18.


Terse Exception Messages
Users are not the only people that have to deal with cryptic error messages; sadly support staff and developers can have an equally bad time too. Users have every right to complain as they are rarely able to do anything about it, whereas we programmers have it within our power to write better diagnostic messages to aid our colleagues, and in turn better serve our users by helping resolve their issues more quickly.
This article looks at some of the techniques we can apply when writing code that is going to throw an exception in response to some unexpected condition. Whilst exceptions are clearly not the only style of error reporting available, I have found that due to the “distance” that often exists between the throw and catch sites it is all the more important that thought be put into the message generated. I also have my suspicions that their very name “exceptions” lures the unwary programmer into believing they will only rarely occur and so will demand far less attention than other diagnostic messages.
One “very early” Saturday morning, during my week on the support rota, I got a phone call from the 1st line support team to say that one of the weekend tasks had failed. They had kindly sent me the relevant portion of the service log file and the error said something along these lines:
ERROR: Failed
to calibrate currency pair!
The task was a fairly lengthy one (taking over an hour) and there were no obvious clues as to which particular currency pair (of the non-trivial number being processed) that might be the source of the problem. I decided my only recourse was to set a breakpoint on the site of the thrown error and then wait for it to fail. When I located the line of code where the error was generated I was more than slightly annoyed to see it was written something like this:
void calibrate(string ccy1, string
ccy2, . . .)
{
. . .
if (. . .)
throw Error("Failed to calibrate
currency pair!");
}
That’s right the throw site knew what the exact combination of currency pairs were, but had neglected to include them in the error message. Needless to say once I got back in the office on Monday morning the first thing I did was to fix the error message to save someone else wasting time unnecessarily in the future, and to allow the support team to do a bit more diagnosis themselves.
The examples that provided the impetus for this article are equally terse:
throw new Exception(String.Empty);
throw new NotFoundException("Invalid
ID");
One hopes that the first example is simply an unfortunate mistake where the programmer truly intended to come back and write something useful, but clearly forgot. The second is better, but I would contend that it’s only marginally better because there is so much more than could be said by the message.
If we imagine the message in the context of a busy log file, rather than surrounded by its related code, it will likely appear with only the usual thread context information to back it up, e.g.
[date & time, thread, etc] ERROR: Invalid ID
If you also have a stack trace to work from that might at least give you a clue as to what type the “ID” refers to. You may also be able to hunt around and find an earlier diagnostic message from the same thread that could give you the value too, but you’re probably going to have to work to find it.
Consequently at a bare minimum I would also include the “logical” type and, if possible (and it usually is), then the offending value too. As such what I would have thrown is something more like this:
throw new NotFoundException("Invalid
customer ID '{0}'", id);
This message now contains the two key pieces of information that I know are already available at the throw site and so would generate a more support-friendly message such as this:
[...]
ERROR: Invalid customer ID '1234-5678'
You’ll notice that the value, which in this case was a string value, is surrounded by quotes. This is important in a message where it might not be obvious that the value is empty. For example if I had not added the quotes and the customer ID was blank (a good indication of what the problem might be) then it would have looked thus:
ERROR:
Invalid customer ID
Unless you know intimately what all your log messages look like, you could easily be mistaken for believing that the error message contains little more than our first example, when in fact the value is in fact there too, albeit invisibly. In the improved case you would see this:
ERROR:
Invalid customer ID ''
For strings there is another possible source of problems that can be hard to spot when there are no delimiters around the value, and that is leading and trailing whitespace. Even when using a fixed width font for viewing log files it can be tricky to spot a single erroneous extra space – adding the quotes makes that a little easier to see:
ERROR:
Invalid customer ID '1234-5678 '
As an aside my personal preference for using single quotes around the value probably stems from many years working with SQL. I’ve lifted values out of log files only to paste them into a variety of SQL queries countless times and so automatically including the right sort of quotes seemed a natural thing to do.
It’s probably obvious but another reason to include the value is to discern the difference between a value that is badly formed, and could therefore never work (i.e. a logic error), and one that is only temporarily unusable (i.e. a runtime error). For example, if I saw the following error I would initially assume that the client has passed the wrong value in the wrong argument or that there is an internal logic bug which has caused the value to become “corrupted”:
ERROR:
Invalid customer ID '10p off baked beans'
If I wanted to get a little more nit-picky about this error message I would stay clear of the word “invalid” as it is a somewhat overloaded term, much like “error”. Unless you have no validation at all for a value, there are usually two kinds of errors you could generate – one during parsing and another during range validation. This is most commonly seen with datetimes where you might only accept ISO-8601 formatted values which, once parsed, could be range-checked, for example, to ensure that an end date does not precede a start date.
To me the kind of error below would still be a terse message, better than some of our earlier ones, but could be even better:
ERROR:
Invalid datetime '01/01/2001 10:12 am'
My preferred term for values that fail “structural validation” was adopted from XML parsing – malformed. A value that parses correctly is considered “well formed” whereas the converse would be one that is “malformed”. Hence I would have thrown:
ERROR:
Malformed datetime '01/01/2001 10:12 am'
For types like a datetime where there are many conventions I would also try and include the common name for the format or perhaps a template if the format is dynamically configurable so the caller doesn’t have to root around in the specs to find out what it should have been:
ERROR:
Malformed datetime '01/01/2001 10:12 am' (Only ISO-8601 supported)
ERROR:
Malformed datetime '01/01/2001 10:12 am' (Must conform to ‘YYYY-MM-DD
HH:MM:SS’)
Once a value has passed structural validation, if it then fails “semantic validation” I would report that using an appropriate term, such as “out of range” or better yet include the failed comparison. With semantic validation you often know more about the role the value is playing (e.g. it’s a “start” or “end” date) and so you can be more explicit in your message about what the problem is:
ERROR:
The end date '2010-01-01' precedes the start date '2014-02-03'
Framework exception messages are notoriously terse. The reason is probably that, like all general purpose library functions, there is a balance between performance, security, etc. and so including the value in the exception may well be highly undesirable in some types of application.
One of the best examples of brevity in the .Net framework is probably the one below which is thrown from the LINQ extensions, such as Single():
Sequence
contains no matching element
The prevalent use of LINQ in modern C# code is to be applauded over traditional for-next loops, but as their use grows, so does the possibility of this kind of message popping up when things go awry. Whilst it’s a little extra code to write for the caller, one obvious choice is to use the non-throwing version SingleOrDefault(), so that you can detect the failure manually and throw a more suitable exception, e.g.
var customer =
customers.SingleOrDefault(c =>c.Id == id);
if (customer == null)
{
throw new NotFoundException("Failed
to find customer with ID '{0}'", id);
}
As always there is a trade-off here. On the one hand I could write less code by directly using the LINQ methods provided, but at the cost of poorer diagnostics. However, as we shall see next, in C# there is nothing to stop me wrapping this extra code in my own extension method to keep the call site more readable.
Whilst it’s perhaps understandable why the more generic methods are suitably terse, sadly the same also goes for the more focused string parsing methods too, such as int.Parse(). On the kinds of systems I work with, I’d happily trade-off much better diagnostics for whatever little extra garbage this technique might incur, especially given that it’s only (hopefully) in exceptional code paths.
My solution to this problem is the proverbial “extra level of indirection”, hence I wrap the underlying non-exception-throwing TryParse() style framework methods with something that produces a more satisfying diagnostic. As suggested a moment ago, extension methods in C# are a wonderful mechanism for doing that.
For example I tend to wrap the standard configuration mechanism with little methods that read a string value, try to parse it, and if that fails then include the setting name and value in the message. Consequently instead of the usual terse FormatException affair you get from the .Net framework when parsing an integer value with code like this:
int.Parse(settings["TimeoutInMs"]);
You invoke a helper method like this instead:
settings.ReadInt("TimeoutInMs");
And if this fails you’ll get a much more useful error message:
ERROR:
The 'TimeoutInMs' configuration setting value '3.1415' was not a well formed
integer value
This
handles the structural validation side of things. For the semantic validation
it can either be done with traditional conditional statements or by chaining on
a validation method, ala fluent style:
settings.ReadInt("TimeoutInMs").EnsuringValueIsPositive();
For
common “types” of settings this pair can itself be wrapped up further to once
again simplify the call site:
settings.ReadTimeout("SendRequestTimeoutInMs");
Whenever I create a custom exception type in C# I generally add a variety of overloads so you can create one directly with a message format and selection of arguments without forcing the caller to manually use String.Format(). This is how the example back near the beginning worked:
throw new NotFoundException("Invalid
customer ID '{0}'", id);
All the class needs for this kind of use is a signature akin to String.Format’s:
public NotFoundException(string format,
params object[] args)
: base(String.Format(format, args))
{ }
However this is not enough by itself – it’s dangerous. If we pass a raw message that happens to contain formatting instructions but no arguments (e.g. “Invalid list {0, 1, 2}”) it will throw during the internal call to String.Format(), so we need to add a simple string overload as well:
public NotFoundException(string message)
: base(message)
{ }
As an aside I never add a public default constructor by default because I’m not convinced you should be allowed to throw an exception without providing some further information.
Due to the framework exception classes not having a variable arguments (var-args) style constructor you might already be happy putting formatting calls into the callee, either directly with String.Format() or via a simple extension method like FormatWith() [1], e.g.
throw new NotFoundException(String.Format("Invalid
customer ID '{0}'", id));
throw new NotFoundException("Invalid
customer ID '{0}'".FormatWith(id));
One scenario where the var-args style constructor falls down in C# is when you start adding overloads to capture any inner exception. You can’t just add it on the end of the signature due to the final params-based parameter, so you have to add it to the beginning instead:
public NotFoundException(Exception inner,
string format,
params object[]
args)
: base(String.Format(format, args),
inner)
{ }
Sadly, as you can see from the base() constructor call, this is the exact opposite of what the framework does; it expects them on the end because the preceding argument is always a simple string.
In my experience little effort is put in by developers to simulate faults and validate that exception handling is behaving correctly, i.e. verifying “what” is reported and “how”. Consequently this makes the var-args overload potentially dangerous as adding an exception argument on the end (by following the .Net framework convention) would cause it to be silently swallowed as no string format placeholder would reference it.
Whilst this has never been a problem for me in practice because I virtually always throw custom exception types and nearly always end up formatting a non-trivial diagnostic message, that’s easy to say when you’re the one who discovers and instigates a pattern – others are more likely to follow the one they’re used to, which is almost certainly the way the .Net framework does it.
At the tail end of the previous section I touched briefly on what I think is at the heart of why (server-side) error messages can often be poor – a lack of testing to make sure that they satisfy the main “requirement”, which is to be helpful in diagnosing a problem. When unit tests are written for error scenarios it’s all too common to see something simplistic like this:
Assert.That(() => o.DoIt(. . .),
Throws.Exception);
This documents and verifies very little about what is expected to happen. In fact if the “o” variable is a null reference the test will still pass and not even invoke the behaviour we want to exercise! Our expectations should be higher; but of course at the same time we don’t want to over specify the behaviour and make the test brittle instead.
If a caller is going to attempt recovery of the failure then they at least need to know what the type of the exception is, lest they be forced to resort to “message scraping” to infer its type. Consequentially it’s beneficial to verify that the exception is of at least a certain type (i.e. it may also be a derived type). Where an obvious value, such as an input argument, is a factor in the error we can include that as a real property if we believe it may be useful for recovery. If the exception type is likely to remain vague we can still loosely test that the value is contained somewhere within the message instead:
const string id = "malformed-value";
Assert.That(() => o.DoIt(id),
Throws.InstanceOf<ValidationException>()
.And.Message.Contains(id));
If we’re writing tests for a method where there are many arguments to be validated it’s more important that we try and match on the message too (or some richer-typed property) to discern which of the many arguments caused the exception to be thrown. It’s all too easy when making a change to a method that you end up finding one or more of your tests are passing because they are detecting a different error to the one they were intended to, as the null reference example above highlights.
Whilst that takes care of our code-based contractual obligations we also have an obligation to those who will be consuming these messages to make sure they form a useful narrative within any diagnostic output. This is an article in its own right [2], but using a text editor that performs spell checking of string literals certainly goes a little way towards helping avoid silly mistakes.
If you’re going to rely on exception messages as a major source of your diagnostic output, such as through the use of Big Outer Try Blocks [3] and classic log files, then it pays to make sure that what you’re going to end up writing contains the information you really need. This article has provided a number of suggestions about how the content of these messages can be improved, along with some ideas about how you can help ensure the code doesn’t get swamped with these tangential concerns so that the underlying logic becomes obscured. The final section looked at what we can do to leverage automated testing as a means of helping to formalise the errors that we generate as an aid to throwing “better quality” exceptions.
Thanks as always to the Overload review team for sparing my blushes.
[1] FormatWith Extension Method – James
Newton-King, http://james.newtonking.com/archive/2008/03/27/formatwith-string-format-extension-method
[2] Diagnostic & Support User Interfaces – Chris Oldwood, http://chrisoldwood.blogspot.co.uk/2011/12/diagnostic-support-user-interfaces.html
[3] The Generation, Management and Handling of Errors – Andy Longshaw, Overload
#93, http://accu.org/index.php/journals/1586
Chris Oldwood
07 May 2015
Chris is a freelance developer who started out as a bedroom coder in the 80’s writing assembler on 8-bit micros; these days it’s C++ and C#. He also commentates on the Godmanchester duck race and can be contacted via<EMAIL_ADDRESS>or @chrisoldwood.


Home
About
Projects
Contact
I'm Ai
da Far
hana
Student. Struggling. Help.
Download resume
Timeline: Education Background
Sekolah Kebangsaan Bandar Tasik Selatan
Sekolah Rendah SRI Al-Amin Bangi
Sekolah Menengah SRI Al-Amin Bangi
UiTM Segamat
UiTM Shah Alam
UiTM Shah Alam
2020 - present
My current study place. Trying to survive CS246!
Freelancer
2019 - 2020
Working part time jobs everywhere
UiTM Segamat
2014 - 2018
I stumbled a bit during CS110, but I survived!


1 Samuel 3:1
And the child Samuel ministered unto the LORD before Eli. And the word of the LORD was precious in those days; there was no open vision.


{{error}}
You need to check and re-encrypt your information to reset your password.
{{question.label}}
New Password
Reset


Bubble Babble Test Page
Open your console to play with BubbleBabble, which is imported under the "bubblebabble" object.


Thompson-Boling Arena box office will be closed during Elton John and Zac Brown ticket sales
by WVLT NewsKNOXVILLE, Tenn. (WVLT) — Officials at Thompson-Boling Arena said the box office will not be open when tickets for Elton John or Zac Brown go on sale.
Tickets for Elton John will be available to the general public starting November 22 at 10 a.m.
Tickets for Zac Brown Band go on sale the same day at 12 p.m.
ALL tickets must be purchased online or over the phone.
The same rules apply for the Zac Brown Band concert.
To purchase tickets online for Elton John click here.
To purchase tickets for Zac Brown Band here
To purchase tickets over the phone call<PHONE_NUMBER>.


{% extends "base.html" %} {% block body %} {% include "navbar.html" %} Congratulations!!! You have earn one month of predictions! Upload your image below to have a predict. No file chosen {% endblock %} {% block scripts %} {% endblock %}


Hyper Text Transfer Protocol or HTTP is The language used to communicate between browsers and computers. Images each gets a separate a get request. Sometimes you send a post request when you send something. Cookie Data what websites use to remember who you are.
Hyper Text Transfer Protocol Secure or HTTPS and it is secure using Secure Sockets Layers (SSL) or Transport Layer Security (TLS). First provides digital certificate; to prove the website is actually that website like an ID. If a website does not have an ID then the web browser you use will warn you.
We use HTTP because it is an agreed upon set of rules for computer to communicate with one another to get the websites, if each website or network has different rules it would make the whole process a lot more tedious and not efficient/scalable.
Then we use HTTPS because it focuses on the security of any information one puts in a website, and you would not want anyone to easily hack into an account, Or steal your credit card number


3.3.3. HTML Check Tool¶
Describes the purpose, specifications and usage of the HTML check tool.
<IP_ADDRESS>. Purpose¶
- Prevents the user from seeing a different screen from the intended screen due to syntax errors such as forgetting exit tags.
- Prevents the use of tags that are prohibited by the project conventions.
<IP_ADDRESS>. Specifications¶
The following checks are performed on the HTML file automatically generated by the request unit test, and the test fails if an invalid HTML is detected. This tool is available in the Request Unit Test as a standard and is executed when the Request Unit Test is executed.
- By default[1], the syntax of HTML files is checked in accordance with 1 HTML4.01. [2]
- Check for omissions in the description of the start and end tags. Tags that are defined as optional in HTML4.01 are not allowed to be omitted.
- Check whether the tags and attributes described in the configuration file [3] are used.
- It is not case sensitive. Example:
,
,
,

- The boolean attribute can be used. Example: <textarea disabled>
- Omitting quotations in the attribute specification is not allowed. Example: OK:
 Not OK:

| [1] | The check contents can be customized by changing the configuration values. |
| [2] | There are some exceptions. See the next section, Differences with HTML4.01 . |
| [3] | The tags and attributes that are deprecated on the W3C official website (hereinafter abbreviated as “deprecated tags and attributes”) are configured by default. By customizing the configuration file, the tags and attributes that should not be used can be changed. (For customization instructions, refer to How to customize prohibited tags and attributes.) |
Tip
If two or more “-” appear consecutively in the JavaScript written directly in HTML, the test fails. The following is an implementation example of JavaScript that fails the test and its error messages.
Example of JavaScript implementation that fails the test
var message = "--" // The "-" in the string is consecutive. , count = 10; count--; // Decrement operator with consecutive "-".
Error message
Lexical error at line 965, column 31. Encountered: "-" (45), after : "--"
Handling method
Instead of directly writing JavaScript in HTML (JSP), it is handled as an external file.
<IP_ADDRESS>.1. Differences with HTML4.01¶
In current web applications, since it is common to perform dynamic DOM operations on the client, this tool allows empty body tags.
For example, the following tags do not constitute an error.

<select id="bar"></select>
<IP_ADDRESS>. How to Use¶
<IP_ADDRESS>.1. Prerequisites¶
- Request unit test can be executed
<IP_ADDRESS>.2. How to customize prohibited tags and attributes¶
If the default configuration is used without changes, there is no need to change the configuration described below at the start of the project.
The path to the configuration file that describes the prohibited tags and attributes for the automated test of the test project is described. Since the path to the configuration file is specified in the htmlCheckerConfig property, modify this property when the configuration file is placed in a location that is different from the one during distribution.
<component name="httpTestConfiguration" class="nablarch.test.core.http.HttpTestConfiguration"> (Omitted) <property name="htmlCheckerConfig" value="test/resources/httprequesttest/html-check-config.csv" /> (Omitted) </component>
The configuration file (the file specified by the htmlCheckerConfig property) should be modified with the method given below.
The configuration file should contain tag names and attribute names separated by commas on one line. To configure multiple attributes in a single tag, use multiple lines.
body,bgcolor body,link body,text table,align table,bgcolor td,bgcolor td,height td,nowrap th,bgcolor th,height th,nowrap tr,bgcolorAlso, if the attribute field is omitted, it points to the use of the tag. :
body,Even if an attribute field is omitted, the corresponding comma cannot be omitted.
<IP_ADDRESS>.3. How to configure whether to execute HTML check¶
It is possible to configure whether to execute the HTML check when executing the request unit test by modifying the configuration file for automated test.
If the checkHtml property is true, the HTML check is performed. If false, it is not implemented.
<component name="httpTestConfiguration" class="nablarch.test.core.http.HttpTestConfiguration"> (Omitted) <property name="checkHtml" value="true" /> (Omitted) </component>
<IP_ADDRESS>.4. Change HTML check contents¶
The contents of HTML check to be executed with the request unit test can be changed by modifying the htmlChecker property of nablarch.test.core.http.HttpTestConfiguration class.
For example, a class always starting with a  tag that performs a simple HTML check is implemented as follows.
public class SimpleHtmlChecker implements HtmlChecker { private String encoding; @Override public void checkHtml(File html) throws InvalidHtmlException { StringBuilder sb = new StringBuilder(); InputStreamReader reader = null; try { reader = new InputStreamReader(new FileInputStream(html), encoding); char[] buf = new char[1024]; int len = 0; while ((len = reader.read(buf)) > 0) { sb.append(buf, 0, len); } } catch (Exception e) { throw new RuntimeException(e); } finally { FileUtil.closeQuietly(reader); } if (!sb.toString().trim().startsWith("")) { throw new InvalidHtmlException("html not starts with "); } } public void setEncoding(String encoding) { this.encoding = encoding; } }
If you use the above class to check HTML, it can be configured as follows.
<component name="httpTestConfiguration" class="nablarch.test.core.http.HttpTestConfiguration"> (Omitted)  <property name="htmlChecker" ref="htmlChecker" /> </component> <component name="htmlChecker" class="nablarch.test.core.http.example.htmlcheck.SimpleHtmlChecker"> <property name="encoding" value="UTF-8"/> </component>
<IP_ADDRESS>.5. How to confirm the issues during test execution¶
When a request unit test is executed, if a problem exists in the HTML file that is generated automatically, the corresponding test case will fail.
The location and details of the issue are output to the JUnit console as shown below.
Correct the JSP that is the output source of the corresponding HTML and execute the test again.


Record Progressions
Record progressions are shown to the extent known to ADR. Additions and corrections to these lists are always welcome (send to kcy@frontiernet.net). Road marks are limited to record quality marks (no point-to-point marks). A "+" suffixed to some 8km times indicates marks made at 5 miles. Progressions are generally not shown if the length of the progression known to ADR is one or less.
|
World |
||
|
ALB |
n/a |
|
|
ARG |
||
|
AUS |
||
|
AUT |
||
|
BEL |
||
|
BLR |
||
|
BRA |
||
|
BUL |
||
|
CAN |
||
|
CHN |
||
|
COL |
||
|
CRO |
||
|
CUB |
||
|
CZE |
||
|
DEN |
||
|
ECU |
||
|
ESP |
||
|
FIN |
||
|
FRA |
||
|
GBR |
||
|
GER |
||
|
GRE |
||
|
HUN |
||
|
IND |
||
|
IRL |
||
|
ISR |
||
|
ITA |
||
|
JPN |
||
|
KOR |
||
|
LTU |
||
|
MDA |
||
|
MEX |
||
|
NED |
||
|
NOR |
||
|
NZL |
||
|
PER |
||
|
POL |
||
|
POR |
||
|
ROM |
||
|
RSA |
||
|
RUS |
||
|
SER |
||
|
SLO |
||
|
SUI |
||
|
SVK |
||
|
SWE |
||
|
TAN |
||
|
TUR |
||
|
UKR |
||
|
USA |
||
|
VEN |
||
|
ZIM |


| 969 | (A) | So maye the couande be kepide that thou with criste made |
| 974 | (C) | For so may þy couenaunte by kepte . þat þou to criste made |
| 956 | (D) | So may þe couenaunt be kept þat þou to cryst made |
| 937 | (E) | ¶ So may þe couinaunt be kep . þat thow to crist madist |
| (Ex) | ---- no text ---- | |
| 994 | (L) | so may þy couenaunt be kept þat þou to crist made |
| 909 | (P) | So may þe couanute be keped þat þou to criste made |
| 947 | (U) | ¶ So may the couenant be kept / that thow to crist madest |
| 34 | (V) | So may þe couenut be kepte þat þou to crist madest |


|
|
|
|
|
|
|
|
log_jacobian(self,
model_param)
compute the log of the jacobian of f, evaluated at f(x)= model_param |
source code
|
|
|
|
log_jacobian_grad(self,
model_param)
compute the drivative of the log of the jacobian of f, evaluated at
f(x)= model_param |
source code
|
|
|
|
gradfactor(self,
model_param,
dL_dmodel_param)
df(opt_param)_dopt_param evaluated at self.f(opt_param)=model_param,
times the gradient dL_dmodel_param, |
source code
|
|
|
|
| gradfactor_non_natural(self,
model_param,
dL_dmodel_param) |
source code
|
|
|
|
initialize(self,
f)
produce a sensible initial value for f(x) |
source code
|
|
|
|
plot(self,
xlabel=' transformed $\\theta$ ' ,
ylabel=' $\\theta$ ' ,
axes=None,
*args,
**kw) |
source code
|
|
|
|
|
|
|
|
|
Inherited from object :
__delattr__ ,
__format__ ,
__getattribute__ ,
__hash__ ,
__init__ ,
__reduce__ ,
__reduce_ex__ ,
__setattr__ ,
__sizeof__ ,
__subclasshook__
|


{{adv.status=='blocked' ? 'This advert is BLOCKED. Please react on this advert otherwise it will be automatically deleted.' : ''}}
{{adv.status=='active' ? 'This advert is active. It can be found and watched by everyone.' : ''}}
{{adv.status=='payment_waiting' ? 'This advert is active. It can be found and watched by everyone.' : ''}}
{{adv.status=='disabled' ? 'You have disabled this advert. It can NOT be found and watched by everyone.' : ''}}
{{adv.status=='expired' ? 'This advert is expired. If you don‘t reactivate it, it will be automatically deleted.' : ''}}
{{adv.status=='blocked' ? 'This advert is BLOCKED. Please react on this advert otherwise it will be automatically deleted.' : ''}}
{{adv.status=='active' ? 'This advert is active. It can be found and watched by everyone.' : ''}}
{{adv.status=='payment_waiting' ? 'This advert is active. It can be found and watched by everyone.' : ''}}
{{adv.status=='disabled' ? 'You have disabled this advert. It can NOT be found and watched by everyone.' : ''}}
{{adv.status=='expired' ? 'This advert is expired. If you don‘t reactivate it, it will be automatically deleted.' : ''}}


Thank you for your purchase! If you have any questions that you feel should have been in this document, please log in using the account used to purchase the file and email via my user page contact form here. Thanks so much!
For questions on basic HTML, JavaScript or CSS editing - please give your question a quick Google or visit W3Schools as theme issues get top priority. You will need some knowledge of HTML/CSS to edit this theme.
Do not start from scratch, use an existing page I have created and modify it to learn how it works
Quickly find what you're looking for in this document by using your browser's "Find in Page" feature, typically Control+F.
Trying to locate/replace text, styles or code in themes? "Find in Files" command which is commonly found in any decent text editor which will save you hours of searching
Getting an error message, chances are someone else has seen it too, try a google search for a quick fix.
Many times plugins are to blame when a site fails, always try disabling any third-party plugins if you encounter an error you can't solve.
Don't forget to re-explore the live demo for layouts, usage ideas and sample code
Due to local security restrictions, some things will not work locally, especially in Chrome. But everything will work once the files have been updated to your website.
- css (Template CSS) - fonts (Flexslider icon font) - revo-slider (revo-slider CSS ) - owl-carousel(owl-carousel CSS ) - icon-fonts - text-rotator - animate - ie warning - video (All Videos) - audio (All Audio) - images (All Images) - js (Template JS) - views (JS to run in specific pages. I.E: Home or Contact Us) - rs-plugin (Revolution Slider files) - php (PHP Helpers - I.E: Contact Us form) - fonts (All fonts)
The template is based on Bootstrap Framework - http://getbootstrap.com/
The default Bootstrap grid system utilizes 12 columns, making for a 1170px wide (in template 1200px) depending on your viewport. Below 767px viewports, the columns become fluid and stack vertically.

...

If you need more information, please visit this site: http://getbootstrap.com/
These are the CSS file we're using in the template:
- style.css (main CSS) - flexslider-for-posts.css (Flexslider CSS for carousels in posts) - flexslider.css (Flexslider CSS for slider) - bootstrap.min.css - (Generic styles, resets & normalization) - bootstrap-theme.min.css - (Generic styles, resets & normalization) - animate.min.css - (Animate CSS) - magnific-popup.css - (Magnific popup CSS in style.css file) - magnific-anim.css - (Animation for magnific-popup CSS style.css file) - icons-fonts.css - (CSS of icon fonst - Elegant icons font, Font Awesome, Linea Icons) - ie-warning.css - (ie warning CSS) - ie8-fix.css - (ie8 fix CSS) - text-rotator.css - (Text rotator CSS)
jQuery - is a Javascript library that greatly reduces the amount of code that you must write.
For more information, please visit http://www.jquery.com
You can see some help info, when click links which are below each regarding script:
- main.js (main JS) - jquery.flexslider.js (Flexslider JS) - http://www.woothemes.com/flexslider/ - flexslider.js (Options of Flexslider) - bootstrap.min.js - (Bootstrap JS) - http://getbootstrap.com/ - contact-form-validation.js - (Contact form validation JS) - jquery.validation.js - (JS for contact form validation) - http://jqueryvalidation.org/ - jquery.placeholder.js - (JS for placeholder validation) - https://github.com/mathiasbynens/jquery-placeholder - gmap3.min.js - (Google maps plugin JS) - http://gmap3.net/ - jquery.countdown.min.js - (JS plugin for countdown) - http://hilios.github.io/jQuery.countdown/ - jquery.easing.1.3.js - (JS for animations) - https://github.com/gdsmith/jquery.easing - jquery.magnific-popup.js - (JS plugin for lightbox) - http://dimsemenov.com/plugins/magnific-popup/ - jquery.nav.js - (JS for "one page" navigation) - https://github.com/davist11/jQuery-One-Page-Nav - jquery.isotope.pkgd.min.js - (JS plugin for filter & sort) - http://isotope.metafizzy.co/ - jquery.masonry.pkgd.min.js - (JS plugin for filter & sort) - http://masonry.desandro.com/ - jquery.imagesloaded.pkgd.min.js - (JS plugin for filter & sort) - https://github.com/desandro/imagesloaded - jquery.appear.js - (JS for event fired when in the user’s viewport) - https://github.com/protonet/jquery.inview - wow.min.js - (JS plugin for animation when you scroll) - http://mynameismatthieu.com/WOW/docs.html
Haswell has been built using a modular, responsive blocks that makes designing easier. Combining blocks you can easily get a new page.
Mix blocks, like lego bricks, and you can get unlimited variations of pages. This allows easy create unique pages. In Haswell includes more than 500 function blocks it allows you to create a huge number of combinations of pages for your unique site
CSS, JS, HTML files were created on the principle of modularity. If you do not need all elements for your site, you can easily remove the unnecessary components. Code of the template clean, friendly and well commented. This makes it easy to edit and customize the template.
Also, for better performance you can compress (minify) your files using online services or node/grunt, or any other method you like
For example online services for file compression
or use any other services
You can create new page guided by the same principles like in video tutorial - https://www.youtube.com/watch?v=8WxutoccPgs
If you want to change color of the template, you must edit style.css
Example, change yellow color to blue. Find row "color:#ffea00" and change it to this "color:#466fcc"
If you want to change color of the template, you must edit style.css
To change the embedded font, please take a look in the head part of the website and you will find this tag:
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,700,300,400' rel='stylesheet' type='text/css'>
To change the font, first go to http://www.google.com/webfonts choose a font and use the generated code.
Video tutorial - https://www.youtube.com/watch?v=mSg2ck3BLKI
Haswell theme include some popular icon fonts: Font Awesome, Elegant Icon Font, Glyphicons, Linea Icons. More information you can find on page icons.html and on the links: http://fortawesome.github.com/Font-Awesome/ , http://www.elegantthemes.com/blog/resources/elegant-icon-font , http://getbootstrap.com/components/, http://linea.io/
They placed in "fonts" folder. Also don't foget to connect CSS file with icons - "icons-fonts.css"
 <link rel="stylesheet" href="css/icons-fonts.css" >
If you want to use an icon -

 simply paste it where you want and connect css file - "icons-fonts.css" to the HTML page. You simply connect "icons-fonts.css" file to the HTML page and use any icon presented on page "icons.html"
This is one of the best slider plugins we have seen so far.
"Slider Revolution is a fully developed slide displaying system offering the capability to show images, videos and captions paired with simple, modern and fancy 3D transitions. On top of that, Slider Revolution is fully responsive and mobile optimized and can take on any dimensions."
More details about Revo Slider you can find in "Documentation" folderhttp://codecanyon.net/item/slider-revolution-responsive-jquery-plugin/2580848
Flexslider is the slider you'll find in the content.
Flexslider is a simple slideshow script but with lots of options. You can find more documentaion here http://www.woothemes.com/flexslider/
The filter is driven by the Magnific Popup script.
For more information check the documentation and view licensing options. http://dimsemenov.com/plugins/magnific-popup/
The filter is driven by the Isotope script - http://isotope.metafizzy.co/
Here's an example of usage:
Filter Options:

All works
Development
Design
Photography

Filter Data:

MINIMALISM BOOKS

ui elements/media

...

If you want to use Google Custom Search on your website you have to create an API Key and configure following these steps: - Go to: http://www.google.com/cse
You'll see that the search redirects you to the file - page-search-results.html
Google update 22.06.2016 requires API keys to be used from now on. For more information please read this post - https://googlegeodevelopers.blogspot.com.by/2016/06/building-for-scale-updates-to-google.html
It’s a Google requirement. You simply need to input an API key for your Site Google Maps widget and it’ll work 100% as desired. To create an API key please navigate to this page - https://developers.google.com/maps/documentation/javascript/get-api-key and press the blue “Get a Key” button and follow the prompts.
The Google Maps HTML code:

Replace the value of attribute data-address with your own address.
Please don't forget to connect the necessary Javascript files.

Example
Your address - 182 Duke's Ride, Berkshire, Crowthorne, UK and your API key - AIzaSyDzf6Ghbcv4c4HijOERAmC_j0g2c (this is only example API key, it's not working)
Change this address

to this address

  To this API key

You can simply replace the marker ( located images/loc-marker.png) to your file with the same name or can customize the initialization of the plugin for google maps (icon: "images/loc-marker.png" row) to another file in main.js file (see below)
In order to change the map style (color, line thickness, etc.) you need to customize the "styles" settings in initializaion of the plugin for google maps in main.js file (see below)
Google documentation for google maps styles here - https://developers.google.com/maps/documentation/javascript/styling#overview
Many examples of google maps styles you can find here - https://snazzymaps.com/
For map in template used Google Maps GMAP3 6.0 Plugin for jQuery, documentation of this plugin and examples you can find here - http://v6.gmap3.net/en/
Initialization of plugin for google maps located in main.js file
Example (initialization google maps plugin is in main.js file)
/* --------------------------------------------- GOOGLE MAP --------------------------------------------- */ var gmMapDiv = $("#google-map"); function initMap(){ (function($){ var gmCenterAddress = gmMapDiv.attr("data-address"); var gmMarkerAddress = gmMapDiv.attr("data-address"); gmMapDiv.gmap3({ action: "init", marker: { address: gmMarkerAddress, options: { icon: "images/loc-marker.png" /* Location marker */ } }, map: { options: { zoom: 17, zoomControl: true, zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL }, mapTypeControl: false, /* hide/show (false/true) mapTypeControl*/ scaleControl: false, /*hide/show (false/true) scaleControl */ scrollwheel: false, /*hide/show (false/true) scrollwheel*/ streetViewControl: false, /*hide/show (false/true) streetViewControl*/ draggable: true, styles:[ { stylers: [{ invert_lightness: true }, { saturation: -100 }, { lightness: 10 }] } ] /*CHANGE STYLE (colors and etc.) */ } } }); })(jQuery); }
For map in template used Google Maps GMAP3 6.0 Plugin for jQuery, documentation of this plugin and examples you can find here - http://v6.gmap3.net/en/
To configure contact form, you need to enter recipient email address(at this address emails will be come), and enter email address of sender emails (contact form placed on your website and emails are sent from your website, you can enter email address of your website or any other email address), and enter sender name (eg name of your website or any other name).
For example, emails from users will be sent to you from your website (your-website.com), so enter email address of your website<EMAIL_ADDRESS>(if you don't have it, enter any email, which you want) and enter name of your website (your-website.com).
To do this, please open "php/contact-form.php" file and change<EMAIL_ADDRESS>to your email address (at this address emails will be come), change sender email<EMAIL_ADDRESS>to your sender email address, and change sender name 'your-website.com' to your sender name
Example
Your email is -<EMAIL_ADDRESS>(address where the emails will be come)
Change this (~line 29 in contact-form.php)$mail->addAddress('abcgomel@gmail.com');To this
$mail->addAddress('john-doe@gmail.com');
Example, your website is - nicesite.com (this is sender name, you can enter name of your website or any other name. Contact form placed on your website and emails are sent from your website),
and sender email is -<EMAIL_ADDRESS>(this is sender email, you can enter email address of your website or any other email address)
<EMAIL_ADDRESS>'your-website.com');To this
<EMAIL_ADDRESS>'nicesite.com');
Please don't forget to connect the necessary js scripts:

One notice: contact form will be functional only on server, php can not be executed on local computer ( https://en.wikipedia.org/wiki/PHP )
If contact form not workingList of probable reasons:
If your web hosting doesn't support PHP Mail function, you can use SMTP method. To configure the contact form with SMTP method, open file contact-form.php, uncomment following lines and enter your email, host, username, password, port, etc. :
$mail->isSMTP(); // Tell PHPMailer to use SMTP $mail->Host = 'mail.yourserver.com'; // Specify main and backup server $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'username'; // SMTP username $mail->Password = 'secret'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted $mail->Port = 25; // Set the SMTP port number - likely to be 25, 465 or 587
Useful links:
If contact form don't works, try installing on hosting "clean version" of the template and send the email. If email sent ("in stock" to my email address), then everything is OK, if email not sent, then the problem is on the hosting side, because contact form in the live demo (the same as "in stock") works.
Don't forget to re-explore the live demo for layouts, usage ideas and sample code. If you have problems with some things, see how they work in the original template.
For contact form used plugin PHPMailer, documentation and more details about PHPMailer you can find here - https://github.com/PHPMailer/PHPMailerTo start working with captcha, you need to get 2 special keys. The first key is used to display the widget on your site. The second key (secret) is used to authenticate the CAPTCHA widget on your site, and google servers to check the result sent by people, or bots.
Get these keys you can on google recaptcha - https://www.google.com/recaptcha
Login to your Google account and submit the form.
Google will provide you two keys (Site key and Secret key).
Then you need put your site key in attribute data-sitekey of html tag

 in file contact-recaptcha.html
Example
Your site key is - 6fdg35dfig50n0jdfgvDD3dsc3486Gj
Change this

To this

Then you need put your secret key in file contact-form-recaptcha.php in $key = "PUT YOUR SECRET KEY HERE";
Example
Your secret key is - 6LfEDyo45bPsY445Ikfls54dfvFSD
Change this... $key = "PUT YOUR SECRET KEY HERE"; ...To this
... $key = "6LfEDyo45bPsY445Ikfls54dfvFSD"; ...
For more details on configuring your reCAPTCHA take a look at developers.google.com
To configure contact form, you need to enter recipient email address(at this address emails will be come), and enter email address of sender emails (contact form placed on your website and emails are sent from your website, you can enter email address of your website or any other email address), and enter sender name (eg name of your website or any other name).
For example, emails from users will be sent to you from your website (your-website.com), so enter email address of your website<EMAIL_ADDRESS>(if you don't have it, enter any email, which you want) and enter name of your website (your-website.com).
To do this, please open "php/contact-form-recaptcha.php" file and change<EMAIL_ADDRESS>to your email address (at this address emails will be come), change sender email<EMAIL_ADDRESS>to your sender email address, and change sender name 'your-website.com' to your sender name
Example
Your email is -<EMAIL_ADDRESS>(address where the emails will be come)
Change this (~line 29 in contact-form.php)$mail->addAddress('abcgomel@gmail.com');To this
$mail->addAddress('john-doe@gmail.com');
Example, your website is - nicesite.com (this is sender name, you can enter name of your website or any other name. Contact form placed on your website and emails are sent from your website),
and sender email is -<EMAIL_ADDRESS>(this is sender email, you can enter email address of your website or any other email address)
<EMAIL_ADDRESS>'your-website.com');To this
<EMAIL_ADDRESS>'nicesite.com');
Please don't forget to connect the necessary js scripts:

One notice: this will be functional only on your server, php file can not be executed on your local computer.
If contact form not workingList of probable reasons:
If your web hosting doesn't support PHP Mail function, you can use SMTP method. To configure the contact form with SMTP method, open file contact-form.php, uncomment following lines and enter your email, host, username, password, port, etc. :
$mail->isSMTP(); // Tell PHPMailer to use SMTP $mail->Host = 'mail.yourserver.com'; // Specify main and backup server $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'username'; // SMTP username $mail->Password = 'secret'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted $mail->Port = 25; // Set the SMTP port number - likely to be 25, 465 or 587
Useful links:
If contact form don't works, try installing on hosting "clean version" of the template and send the email. If email sent ("in stock" to my email address), then everything is OK, if email not sent, then the problem is on the hosting side, because contact form in the live demo (the same as "in stock") works.
Don't forget to re-explore the live demo for layouts, usage ideas and sample code. If you have problems with some things, see how they work in the original template.
For contact form used plugin PHPMailer, documentation and more details about PHPMailer you can find here - https://github.com/PHPMailer/PHPMailerTo Use twitter feeds you will need a small part of HTML and JavaScript code.Twitter feeds uses a a div with id "twitter-feeds"

But the real magic happens in JavaScript. In document you will found code that makes twitter feeds work.
//TWITTER FEED---------------------------------------------------- $(document).ready(function() { $("#twitter-feeds").tweet({ // join_text: false, username: "abcgomel", // Change username here modpath: './js/twitter/', // Twitter files path avatar_size: false, // you can active avatar count: 3, // number of tweets loading_text: "loading tweets..." }); });
You'll have to replace username "abcgomel" with your own, and you can change the "count:3" wich represents the number of tweets.
Then, you need a consumer key and secret keys. Get one from dev.twitter.com/apps.Edit twitter/index.php file and replace variables with your Consumer and oAuth Keys.
// Your Twitter App Consumer Key private $consumer_key = 'YOUR_CONSUMER_KEY'; // Your Twitter App Consumer Secret private $consumer_secret = 'YOUR_CONSUMER_SECRET'; // Your Twitter App Access Token private $user_token = 'YOUR_ACCESS_TOKEN'; // Your Twitter App Access Token Secret private $user_secret = 'YOUR_ACCESS_TOKEN_SECRET';
To Use flickr feeds you will need a small part of HTML and JavaScript code. Flickr feeds uses a a ul with id "flickr-feeds"

In html you will found js code that makes flickr feeds work.
//FLICKR FEED------------------------------------------------------------------ $(document).ready(function() { $('#flickr-feeds').jflickrfeed({ limit: 6, qstrings: { id: '91212552@N07' }, itemTemplate: '
' + '' + '' + '' + '
' }, function(data) { $(".lightbox").fancybox({ 'overlayShow' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic' }); }); });
You'll have to replace id "91212552@N07" with your own, and you can change the "limit:6" wich represents the number of images.
Add html code

Please enable JS

If you don't need a preloader, just delete all of this code
If you dont need this warning, you can simply delete it or change

Css code for warning for users of older versions IE:
Css for "warning for users of older versions IE" located in folder "css" and has name "ie-warning.css"
Template are included PSD files in "PSD" folder. Layers are named, grouped and slices are named, ready to be export in PNG or JPG file if you want to change graphic element.
Images:
Video:
Audio:
Fonts:
Scripts:
PHP:
Once again, thank you so much for purchasing this theme.
Regards,
AbcGomel


Synergy and Live365
-
Zazie
Since installing Synergy, when I go to Live365 and try to play one of the internet radio stations (which always worked before), the Live 365 player opens up, but nothing plays/can be heard. I tried again after quiting Synergy, still nothing. Has anyone else experienced this? Am I correct in correlating the problem with Synergy (I've changed nothing else)? Any ideas about how to fix it? Thanks for your ideas.
-
Greg Hurrell
I haven't heard of Live365 before. What is it?
Is it separate from iTunes, or integrated with it in some way? I ask because Synergy only communicates with iTunes.
-
Zazie
www.live365.com is a site offering connection to gazillions of internet radio stations. You select the type of music to listen to, and Live365 displays a list of stations playing that type of music. To listen you click on the speaker icon to the left of a listing, this opens a Live365 Player window which loads the music play list, you click play, and enjoy. If you have a Macintosh, as I do, after a minute or so, iTunes automatically opens up with the URL of the station you're listening to in Live365 already in your Library. That's it.
This always worked without a problem in the past; but since I installed Synergy, which I love (it's a great program), when I've selected a station in Live365, the Live365 Player opens up as usual and displays the music playlist, but no music is forthcoming. I've also tried quiting Synergy and then going to Live365, but it still doesn't work. Any suggestions? Thanks for your ideas. Live365
-
Greg Hurrell
I don't know what the solution might be, but I can give you more information about what Synergy is doing behind the scenes.
Synergy doesn't patch the operating system or hack iTunes in any way. It's an independent program that runs as a normal application. The bit that does all the work is an application called Synergy.app that is stored inside the Synergy.prefPane bundle. You could drag the app anywhere and double-click it and it would launch and run fine, because it doesn't have any hooks into the system.
So? What's happening here?
Synergy communicates with iTunes via AppleScript. You can do the same by opening the Script Editor and writing a script like 'tell application "iTunes.app" to get the current track'; or 'tell application "iTunes.app" to pause' etc. So as you can see, Synergy isn't doing anything weird here.
In order to keep up with iTunes, Synergy asks it every three seconds what song it's playing. You can adjust this interval in the preferences.
My only guess is that this Live365 player is doing the same thing (communicating via AppleScript). Perhaps iTunes can't keep up with the simultaneous requests? Perhaps Live365 is asking for more data than iTunes can deliver? Perhaps there's some other dynamic going on.
In short, I don't know what's causing your problem, but I can assure you that once you stop Synergy, it's well and truly gone. There are no background processes or daemons or hacks hanging around. So if you continue to see problems when it's not running there really is something else fishy going on...
-
Zazie
Eureka! Problem solved. The difficulty was with the Live365's player. They've just come out with a new beta version for Mac OS X. I had decided to wait for the final version, so I had not installed it. However, the Live365 site had already been updated to use only the new Radio365 player -- thus, the old player didn't work. Ouff! I cannot thank you enough for your careful explanation and analysis of the situation. That was what pointed me in the right direction. Now I have the best of all possible worlds: Synergy and Live365 and iTunes. Thank you for your kind help with sorting it all out.
Reply
This topic is now closed.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
A garnish of scallops adds a luxurious finish to this simple, lightly spiced soup.
For the soup, melt the butter in a large saucepan. Add the shallot and garlic and cook for 2-3 minutes. Add the parsnips, thyme, honey and curry powder and cook for a further 2-3 minutes. Pour in the stock and cook for 8-10 minutes, or until the parsnips are tender.
Transfer to a blender and blend until smooth. Pour back into the pan, stir in the cream and gently warm though.
Meanwhile, heat the oil in a large frying pan. Add the spinach and a few tablespoons water, then cook until wilted. Keep warm.
For the scallops, heat the oil in a large frying pan. Once hot, add the scallops and cook for 1 minute on each side, or until just cooked through. Remove from the pan and season with salt and pepper. Set aside to rest for a few minutes before serving.
To serve, divide the wilted spinach between shallow serving bowls and pour over the hot soup. Garnish with the scallops and coriander cress.


{% include "formMacros.html" %}
Enter a URL. To create an email link, enter<EMAIL_ADDRESS><EMAIL_ADDRESS>You can also name this point in the text as a target for other links ending in #name.
#name
Enter an optional tab name to open the link in a new tab. Usually you will leave this blank. Use _blank to guarantee a new tab each time.
_blank


To get started, either add tables/resources using the "Add Table/Resource" button or upload a json object with keys being the resources you want to specify permissions for using the "Upload Schemas" button.
You can copy and paste the result of your work at any time from the output text area.
You can resume where you left off by uploading an existing whitelist/blacklist to the "Upload Current State" button.


Castlebar mourns passing of much-loved personality
THE death has taken place of Margaret Moran (née Roache), Westport Road, Castlebar, and late of Fisherhill, Parke, Castlebar.
A member of a popular and respected family, news of her passing is widely mourned in the community.
Wife of the late Pete, she is deeply regretted by her sons Peter, Noel and Paraic, daughters Ann Marie and Patricia, sister Annie (Reilly), daughter-in-law Brenda, grandchildren Sean, Kevin, Brianna and Eddie, sister-in-law Mai (Connor, Belcarra), nephews, nieces, relatives, neighbours and friends, to whom sympathy is tendered.
Her remains will be reposing at the Coady Funeral Home, Linenhall Street, Castlebar, this evening (Tuesday) from 5 p.m. with removal at 7 p.m. to the Church of the Holy Rosary, Castlebar.
Funeral Mass takes place on Wednesday at 11 a.m. with burial afterwards in the Old Cemetery, Castlebar.
May her gentle soul rest in peace.


Before I begin, I want to state that I am an advanced DXM user. To all the novices out there, don't try this at home.
Mindset/Preparation:
My friend 'Y' and I decided we were going to do some DXM. A fun, recreational dose, 6 ounces of Maximum Strength Robitussin Cough (which for us and our tolerances, puts us at the 2nd plateau). Well, the rest of the night held something entirely different in store for me.
The Quest Begins:
At 7pm, my friends and I were smoking pot at someone's house and we were getting pretty stoned. The owner of the house was boiling some isopropyl (rubbing) alcohol for some reason and the place reeked of it. But it only added to the stoning effect of the pot. I was pretty calm but eagerly anticipating drinking some beer and my Robitussin.
At 8:30pm, 'Y' and I started in on the Robitussin. I managed to get mine down in about 30 minutes while 'Y' could only get 4 ounces down and then an hour later he threw up. We were watching Spaceballs and Ready to Rumble, both comedies.
At about 10pm or so I began to go into the 3rd plateau. It was just like my previous 3rd plateau experiences. The minutes seemed like days, but I was able to get the room totally upside down! I was so happy.
At 11pm I found the rest of the cough syrup that 'Y' couldn't finish and asked if I could have some. He agreed and I drank about one ounce, so that makes 7 ounces so far. At this point I had drank 3 beers and smoked a little bit of pot. I went into the bathroom to take a piss.  Yet I could see perfectly!!  I quickly ran out and told my friends about my newfound superpowers.
At 11:30pm I decided to take two pills of Xenadrine diet pills, each of which contains 20mg of ephedrine. It was on a whim, I feeling pretty good at this point.
At 12:30am, my friends leave and I am all alone and that is when the REAL fun began. I lied in bed expecting to fall asleep because it felt like I was coming down from the 3rd plateau. But actually, I was going up to 4th plateau! I was NOT expecting this.
I tried to write down as much as could while I was tripping but some of my handwriting so shaky I can't even read it but this is the summary of my only 4th plateau experience.
First, there was my overhead light in my bedroom. It began to spin and took on the form of a pinwheel. I stared at it for an eternity and for a little bit it looked like it was a cocoon from the movie Aliens and it began to spit out little objects. But I knew it was friendly and I congratulated it on its power. It then turned into even more of a pinwheel and then a vortex in my ceiling. It asked for my energy, which I gave. As the vortex took my energy, I could actually FEEL the pull on my body as if I was getting sucked into the vortex. Then the vortex turned back into the pinwheel and offered me energy. Bands of different colors of light spread along the ceiling, the walls and then across my body. I could actually FEEL the colors hit my body and increase my energy. I would need that energy for the encounters ahead.
If I explained everything I saw, this report would take 100 pages. Throughout the night, I had all the lights off for the part. One time my living room was an Irish pub and my entertainment center turned into this moss-covered ape that tried to sell me something. I was chased by a snake until I turned the light on and I heard people off and on trying to open the door to my apartment until I found a silver snake of my own and sent it to kill the would-be intruders.  Another time it snowing in my living room.
One thing I did learn that night is that on DXM, I had some control over what I saw. At times that night I could even hallucinate at will. I could make the walls and ceiling bend just by thinking about it. A big green wave wanted to splash me while I was laying on the couch but I told it to go away and it wimpered and slowly backed off.
Another I learned that night is that combining drugs can have unexpected side effects.  I was amazed, the DXM should have worn off a long time ago. I saw little green symbols float past my eyes like what I saw in the Matrix. I knew then my brain was out of gas and it was time to call it a night. However, I had a bunch of tencho music stuck in my head and my heart began to beat faster to match the tempo of Paul van Dyk. Fuck, I wasn't going to sleep for a while. I began to get a headache, the backs of my eyes hurt (I couldn't read anything), my jaws hurt. A couple of hours later most of my major muscle groups felt cramped.
I didn't really start to panic until about noon. I took a shower, which felt weird and the heat from the water intensified my headached and my eyes felt like they were going to burst out of my skull. After the shower, I felt so tired... so very tired... I laid in bed and felt totally relaxed, as if I was in the afterglow of ecstasy. Then the questions started. Why am I still tripping? Will this headache ever go away? What if my eyes stay this way? I began to think about the old wives' tale about the guy who took LSD and went on a permanent trip. What if the same was going to happen to me?  Or my girlfriend? I felt defeated.
I called my friends over from last night and they were amazed that I was still messed up. At about 3pm I finally began to feel normal but I still had the head and eye pains. I ate a bowl of cereal and drank a couple of beers and then went to sleep for 16 hours.
When I woke up, I was fine except for a mild headache. Despite the fact that my trip was totally awesome, it was more than I bargained for I don't plan on repeating it anytime soon.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Hello World!


Exists a lot of people with abilities that cannot be shown. We want to make a festival, a diversity of jobs, give the opportunity to people who is unemployed and also, businesses whose are looking for employees. Our festival is called EmpleoMx, we imagine a big space like expo guadalajara, so every big job and every person can show their own work and talent. It will be conferences about how to get a job, how to have a successful interview, advices and assessing, businesses looking for employees, business men who wants to invest, ideas of new businesses; and organizations of entrepreneurship.
In Mexico, once a year the government makes job fairs, exists two types: virtual or face-to-face.For now, the festival will be in Guadalajara. But, if every state has one festival per year, it can change the unemployed problem in all Mexico, and also the many informal jobs. Is specially made for graduates.


1 Enter the address for a public Google Form. For example, here's the kitchen sink.
2 Copy and paste the markup generated below into a new graphic asset.
3 Add that graphic asset to a post using the [graphic id="X"]
shortcode. That’s it.
<%= @form_html %><% else %> <% end %>


UNTIL THE END OF THE WORLD (1991) - Reviewed by Jerry Saravia
Wim Wenders' "Until the End of the World" is a fascinating, fractured, disconnected mess of a movie. Watching it recently for the second time, I found it less enthralling than I had initially. It is like watching a trailer for a film that is not quite complete.
It is the year 1999 and an Indian nuclear satellite has spun out of control causing great alarm around the world. Claire Tourneur (Solveig Dommartin), an adventurous partygoer, could care less about a potential nuclear crisis. She loves to sleep endlessly and listen to rock and roll music, especially Elvis's "Summer Kisses, Winter Tears" (also sung in the film by David Lynch regular Julee Cruise). While traveling back home, Claire finds herself iadvertently involved with two bank robbers, a traveler wearing a fedora hat named Trevor Mcphee (William Hurt), who is being hunted by the government, a bounty hunter, and so on. This all takes them to a spiritual habitat in the Australian Outback where Farber's father, a crotchety scientist (Max Von Sydow), lives with his blind wife (Jeanne Moreau).
I do not wish to reveal much more of the film except to say that the first half is brilliant moviemaking, exploring a world inhabited by videophones, digital video cameras, headsets that can record images, tracking devices, all told in an almost noirish, Godardian landscape (in fact, both Dommartin and Hurt seem to be doing variations on the characters in Godard's "Breathless" and "Pierrot le Fou.") Most of what the film shows has become a reality today in the year 2000, though videophones never took off. The ability to trace anyone anywhere is also a real possibility, even on the Internet.
Once the characters settle in Australia, the film loses its urgency and potency. Basically, we are left with endless shots of people strapped to chairs while enduring dream hypnosis and other sleep-inducing phenomena so that a new kind of camera can record and visualize people's dreams. The characters in this section of the film become less interesting as well. Why the hell does Claire follow the listless Farber all around the world? Does she truly love him or does she want the money he stole from her? I think it may have been a mistake to show a femme fatale with a compassionate, sweet aura - the transition is simply not there and thus not believable. Dommartin seems to be playing the same angelic, melancholy character she played in Wenders' "Wings of Desire." Characters such as the devious bounty hunter, the sloppy government agent, the whimsical bank robbers, and Claire's boring boyfriend, an author (Sam Neill, who also narrates the film) all become ciphers literally kept in the background.
Every sequence set in Australia feels disconnected and rushed, though the soundtrack and the sight of seeing the towering presences of Max Von Sydow and Jeanne Moreau keeps one glued as to what happens next. It all sort of feels choppy and not edited with smooth transitions from one scene to the next. The reason may be that Wim Wenders initially had a longer cut, reportedly five hours long and shown briefly at a university in 1996. I wait for the day when this cut becomes available and shown in cinema screens. Heck, if they did it for "Das Boot" and "The Last Emperor," they can do it for Wenders' film.
Despite the flaws and narrative inconsistencies, "Until the End of the World" is brave, original, risky, full of ambitious ideas, and often a sight to behold (including the innovative use, at the time, of high-definition television). It is often compelling and moving enough to make one wish it were better. I am sure the longer, director's cut is the great film that this truncated version aspires to be.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


First name:
Last name:
Address:
City:
State:
Zip:
Phone:
Area Code:
Phone:
Phone:
-
-
ext.:
Phone:
-
-
-
ext.:
Fax:
Fax Area Code:
Fax:
Fax: (
)
-
ext.:
Fax:
(
)
-
ext.:


PLAY IT TO THE BONE (2000) GRADE: C- Director: Ron Shelton Screenplay: Ron Shelton Starring: Woody Harrelson, Antonio Banderas, Lolita Davidovich, Lucy Lui, Tom Sizemore, Robert Wagner PLAY IT TO THE BONE reeks of desperation. It was written and directed by Ron Shelton, who has managed to base his career on creating quality sports films (and think of all the directors who can't make one good sports film). BONE is his first major failure, a movie so derivative that a computer program using only stock parts from past Shelton films could have assembled it. Here we have the girl who is in love with the two completely opposite macho lugs (sounds a bit like BULL DURHAM, and hey, TIN CUP as well). The two macho lugs are made to compete against each other (TIN CUP, WHITE MEN CAN'T JUMP). And the girl really adores both of them but can never decide between the two, presumably because the director can't either (BULL DURHAM). Though Shelton does throw something new at us: This time all his female characters lack substance. BONE is Shelton's own STARDUST MEMORIES, and like the Woody Allen movie, Shelton takes every charming aspect of his work and overdoes it to the point of irritation. Vince (Woody Harrelson) and Ceaser (Antonio Banderas) are two out of work boxers offered a chance to fight each other on an undercard for a Mike Tyson brawl. Okay, why not? A contrivance, or problem, depending on your perspective (I prefer the former) arises. The fight is in Vegas and neither of the two have any cash for airfare. (Forget about maybe asking the fight promoters to forward them the money). So Caesar is hastened into begging his girlfriend, Grace (Lolita Davidovich) for a ride. She agrees, though there is a catch: she is Vince's former girlfriend. And hilarity ensues, right? Wrong. What ensues is a lengthy, been-there-done-that ride through the desert, that had me incessantly thinking, are we there yet? By the time we got there, I was just about to nod off, but thankfully Shelton tosses some much needed (though completely gratuitous) nudity on the screen. Thus, my interest was momentarily sustained. Harrelson and Banderas are essentially doing the same jokey macho schtick Harrelson did with Snipes in WHITE MEN CAN'T JUMP. The actors work well together, but everything they say, and every conflict between them feels manufactured in order to pad out the running time. As characters they are both underdeveloped except for some outrageous quirks that are supposed to be amusing because they are so at odds with the characters other traits.   When the dynamic between the three grows tiresome, Shelton introduces another character into the fray, Lia (Lucy Lui), a hitchhiker who practically demands sex once she gets in the car.  Once she abruptly exits the picture, Shelton has Davidovich change into an alluringly slinky red dress with copious amounts of cleavage on display.  It's too bad Shelton never gives Davidovich anything to do besides look real hot.  So how is the fight, you ask? Shelton goes for broke with his finale; techno beats pulsate, the sinewy stars pummel each other into pulpy blobs, casual views of celebrities in the audience (look it's James Woods in some hip gold-tinted sunglasses!), and the aforementioned gratuitous nudity.  Believe it or not, for some inexplicable reason Harrelson envisions silicon enhanced topless ring girls in the midst of his battle. I doubt even Oliver Stone could find meaning in that. Now, I know, maybe I'm being a little hard on what is essentially a very 1980's Don Simpson\Jerry Bruckheimerish buddy movie.  No, but I was hoping for something a little less formulaic. Shelton is the only director who has in virtually every film pulled off a compelling story (with laughs and pathos) set amidst a sports backdrop. Here he takes the easy way out, cribbing from his own material, as well as including nearly every road movie cliché right down to the very antiquated, American car that is the customary form of transportation in a road movie. Interesting that one of the first releases of the new millennium would feel just as antiquated as that damn car. http://www.geocities.com/incongruity98 (Ron's Movie Reviews)
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Please select a DROPBOX LINK column in the creator panel.
DROPBOX LINK
Place shared links to Dropbox files or folders into this column to show previews in this widget.
No Dropbox link to show.


public interface UserProvider
public class MyUserProviderActivator implements BundleActivator { ... public void start(final BundleContext context) { context.registerService(UserProvider.class.getName(), new MyUserProviderImplementation(), null); } ... }Consumers of the service interface have to track the availability of an implementation. Example:
public class MyPasswordPolicyConsumerActivator implements BundleActivator { private ServiceTracker userProviderTracker; public void start(final BundleContext context) { userProviderTracker = new ServiceTracker(context, UserProvider.class.getName(), new ServiceTrackerCustomizer() { public Object addingService(final ServiceReference reference) { final UserProvider UserProvider = (UserProvider)context.getService(reference); //store instance of UserProvider return UserProvider; } public void modifiedService(final ServiceReference reference, final Object service) { //nothing to be done } public void removedService(final ServiceReference reference, final Object service) { //remove stored instance of UserProvider } }); userProviderTracker.open(); } public void stop(final BundleContext context) { if (userProviderTracker != null) userProviderTracker.close(); } ... }
| Modifier and Type | Interface and Description |
|---|---|
static class |
UserProvider.CaseSensitive
Two possible ways to search for user attribute values if supported by the
the user provider implementation for the concrete user attribute.
|
static class |
UserProvider.SearchOperator
Searching for exact match of the search criteria.
|
| Modifier and Type | Field and Description |
|---|---|
static String |
USER_PROVIDER_NAME_PROPERTY
Could be used to specify a name of the UserProvider implementation
when it is registered in an OSGi framework.
|
| Modifier and Type | Method and Description |
|---|---|
PasswordCheckResult |
checkUserPassword(String user,
char[] password)
Checks the provided password against the user's stored password.
|
User |
getCurrentUser()
Returns the current authenticated user, or
null if no
there is no such user. |
User |
getUser(String name)
Returns the user which has the provided name, or
null if no
user with the provided name exists. |
User |
getUser(X509Certificate certificate)
Returns the user which has the provided X.509 client certificate assigned,
or
null if the provided certificate is not assigned to any
user. |
Set<String> |
searchUser(String attribute,
String criteria,
UserProvider.SearchOperator operator,
UserProvider.CaseSensitive preferredCaseSensitivity)
Searches users and returns the user names of the users that match the
provided search criteria.
|
static final String USER_PROVIDER_NAME_PROPERTY
public class MyUserProviderActivator implements BundleActivator { ... public void start(final BundleContext context) { Dictionaryproperties = new Hashtable (); properties.put(UserProvider.USER_PROVIDER_NAME_PROPERTY, "MyName"); context.registerService(UserProvider.class.getName(), new MyUserProviderImplementation(), properties); } ... }
User getUser(String name) throws PersistenceException
null
if no
user with the provided name exists. Whether the lookup is done case
sensitive or not depends on the user provider implementation. Usually the
lookup of users by name is done case in-sensitive.name
- The user namenull
if no
such user exists.PersistenceException
- If an unexpected error occurs during the read operation (e.g.
connection to user store broken).User getCurrentUser() throws PersistenceException
null
if no
there is no such user.null
if
no such user exists.PersistenceException
- If an unexpected error occurs during the read operation (e.g.
connection to user store broken).User getUser(X509Certificate certificate) throws PersistenceException
null
if the provided certificate is not assigned to any
user. The implementation of this lookup is user provider specific. So one
user provider can implement the lookup using the binary representation of
the certificate while another provider can implement the lookup by
extracting data like the subject name from the certificate and use this
data for the lookup.certificate
- The X.509 client certificate of the user.null
if
no such user exists.PersistenceException
- If an unexpected error occurs during the read operation (e.g.
connection to user store broken).Set<String> searchUser(String attribute, String criteria, UserProvider.SearchOperator operator, UserProvider.CaseSensitive preferredCaseSensitivity)
attribute
- The user attribute.criteria
- The search criteria.operator
- The search operator.preferredCaseSensitivity
- The preferred case sensitivity.null
if no user matches
the search criteria.PasswordCheckResult checkUserPassword(String user, char[] password) throws PersistenceException
null
is returned. If
the password does not match, or cannot be checked, a password check result
code is returned which provides the details about the failing check.user
- The username which the end user inputs.password
- The password for that username.null
in case of a successful password check, otherwise
a PasswordCheckResult
.PersistenceException
- If an unexpected error occurs during the check operation.Copyright © 2019 SAP. All Rights Reserved.


5N/6D
5N/6D
Arrive at CHANDIGARH AIRPORT at 2:30 pm then transfers to Shimla. Check to the hotel, In the evening you can enjoy local sightseeing then overnight stay in shimla
After Breakfast, you can go on the full-day excursion of Shimla Sightseeing. For your reference, we have added the main POI in the application
Transfer from Shimla to Manali, by surface Enroute you can visit Sundernagar lake, Mandi, Pandoh Dam And River Rafting in Beas River.On arrival, check-in to your hotel. The rest of the evening is at leisure and take a Dinner and Overnight Stay in Manali.
Breakfast in the hotel. Later you can proceed towards the sightseeing of Solang Valley or Snow Point. Solang Valley Famous for Adventurous sports like Paragliding and Skiing. Overnight stay at hotel in Manali
After Breakfast, you can start Day city tour visiting Hadimba Devi Temple, Club House, Van Vihar, Manu Temple, Vashisht Bath, Tibetan Monastery. The rest of the day is at leisure to stroll and shop on the mall road. You may also enjoy after dinner walks on the Mall Road under a starlit sky and hearing the silence of nature, take a Dinner and Overnight in Manali.
After Breakfast check out from the Hotel and proceed to Amritsar,


The Business of Software
Here. One of the major goals of Windows has always been to provide a platform on which ISVs and shareware authors can make money and on which corporate developers can save money.
Towards that end, I've set up an experimental section of the Longhorn Developer Center called "The Business of Software." It's aimed at collecting resources related to Windows business issues.
Check it out and let me know what else you'd like to see there.


Leviticus 27:17
If he sanctify his field from the year of jubilee, according to thy estimation it shall stand.