GDI WordPress Workshop
Let's learn about what WordPress can do for you.
### Welcome! Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction. Some "rules" - We are here for you! - Every question is important. - Help each other. - Have fun!
### Welcome! Tell us about yourself. - What do you like to be called? - What do you hope to get out of this workshop?
### What are we going to do? - Introduction to WordPress - Setting up a WordPress site - Posts and Pages and Widgets - Plugins and Themes
### What is WordPress? - Started in 2003 as a blogging tool. - Has become one of the most popular web publishing platforms. - Powers a massive 28% of the web. - Can be used to create any kind of website, store, or app.
### WordPress.org WordPress is open-source software. It is **freely** available and can be downloaded at [WordPress.org](https://WordPress.org). However, the software must be run on a **web host**. Public web hosts use bandwidth which has a **cost**.
### WordPress.org There are many companies that offer **web hosting** as a product. eg: GoDaddy, WPEngine, Dreamhost, Bluehost, etc.
### WordPress.org vs. WordPress.com The co-founder of WordPress also created [WordPress.com](https://WordPress.com). This is also a public web host, but you can use it to create WordPress sites for **free**. These free sites have **limitations**: - Advertisements - Cannot install unapproved plugins or themes
### Creating a Site Let's create a WordPress site! There is a great tool by [Soflyy](http://soflyy.com/) that makes temporary WordPress sites: http://poopy.life/create
### Viewing your Site
### Front and Back End Each WordPress site has a "Front" and a "Back" end. The **Front** is what people will see who visit the site. The **Back** is what you use to build and manage your site.
### Going to the Back End To switch to the Back end, use the **Masterbar**.
### Going to the Front End To switch to the Front end, also use the **Masterbar**.
### wp-admin The Back end is also sometimes called **wp-admin**. Another way to get there is to add `wp-admin` to the URL: eg: http://my.website/wp-admin
### WordPress started out for Blogs WordPress was originally made for blogs. That has changed, but it explains a lot about how it works.
### The Default Home Page The home page will usually start with a list of blog posts.
### Posts and Pages The two main things you can create in WordPress are **Posts** and **Pages**.
### Posts and Pages Both Posts and Pages have a **title**, a **body**, and **meta-data** (information about the post or page).
### Posts A **Post** is stored by the date it was published. It can be used for blog posts, but also for any content that can be shown in a list, like photos, recipes, products, etc.
### Pages A **Page** is stored just by its title. It can be used for a home page, a information page, a store, an app, or anything else.
### Editing a Post There are two ways to edit a post, from the **Front** end or the **Back** end.
### Editing from the Front End To edit a post from the Front end of a site, look for a link that reads **"edit"** somewhere near the post title or body. The exact location varies by theme.
### Editing from the Back End To edit a post from the Back end of a site, visit the **Posts** section.
### The Post Editor This is where you add content to a WordPress site.
### The Post Editor Parts
### Visual Mode The editor has two modes. The default is "Visual". This is like a word processor. What you see is (mostly) what you get.
### Embeds You can also **embed** other content in your post. Just paste the URL of the other content (other blog posts, Twitter, Facebook, Soundcloud, etc...) into the Visual editor.
### Embedding from Twitter If you paste the URL for a Tweet, for example, it instantly becomes a card.
### Advanced Editing If you are familiar with HTML, you can also edit your post in **text mode**. This is **TOTALLY OPTIONAL**!
### Edit your Post Let's change the title and content of the first post! You can preview the changes and then press **Update**.
### View your Changed Post After updating, check out your post on the Front end.
### Making a New Post You can make a new post by clicking "New" in the Masterbar.
### Pages Pages are very similar to Posts. One difference is that their URL does not include a date. Page: http://my.website/my-friend-atrus/ Post: http://my.website/2017/03/09/hello-world/ The other difference is that Posts can have **Tags**.
### Tags Tags (and Categories, which are similar), are words you can use to organize Posts.
### Metaboxes Remember the **meta-data** that Posts can have? Mostly you can edit it with **"Metaboxes"**, which are on the side of the editor.
### Tag Metabox
### Tag Pages WordPress automatically creates pages for each tag. eg: http://my.website/tag/poetry/ That page lists all the posts with that tag.
### Adding Tags Add a tag to your post! (Remember that you have to edit the post.) (Remember that you have to press "Update".)
### Featured Images Both Posts and Pages can have a **Featured Image**, which is an image shown prominently alongside the content. The exact place it is shown varies by theme.
### Editing a Featured Image To set a Featured Image, use the Metabox in the editor.
### Add a Featured Image Let's add a Featured Image to a post! (Remember to press "Update"!)

### The Future Editor The core WordPress developers have been hard at work on a new editor, code-named **Gutenberg**.
### Gutenberg
### Gutenberg is made of Blocks The main difference is that in Gutenberg, all content is made of **blocks**.
### Gutenberg is not ready yet Gutenberg is still under development, but it will be in the next version of WordPress. (You can use it today as a Plugin.)
### Making a new Page
### The Page Editor The Page editor looks almost the same as the Post editor.
### Add a Page Let's add a Page! You can make one about your best friend.
### Linking to Pages You'll notice that there is no way by default to find a page. You have to make **links** to pages.
### Menus Menus are one way to link to pages.
### Entering the Customizer To make a menu, we will need to use the **Customizer**.
### The Customizer The Customizer has settings on one side and a preview on the other.
### The Customizer does a lot There are many settings in the Customizer and they vary with themes and plugins.
### Updating the Site Title For example, you can change the site title and see the result in the preview.
### Remember to Save If you make changes in the Customizer, make sure to press "Save and Publish" when you are done!
### Adding a Menu In the Menus section, click "Add a Menu".
### Name your Menus The name is not important.
### Menus have Locations Each theme decides where menus can appear. Assign your new menu to one location.
### Menus must have Items Add links to pages inside your menu by clicking "Add Items".
### Adding Menu Items Click on each Page you want to include in the menu.
### View your Menu Once you're done, save the changes and visit the Front end of your site.
### Things on the side Most themes also have **sidebars**.
### Sidebars can be anywhere They're not always on the side.
### Sidebars contain Widgets Widgets are little boxes that live in sidebars.
### Edit Widgets in the Customizer To edit Widgets, we must go back into the Customizer.
### Use the Shortcuts Widgets that already exist can be edited by clicking the blue circle adjacent to them.
### Add a Widget You can add a new Widget by clicking "Add a Widget".
### Available Widgets WordPress comes with lots of Widgets, but many more are available from Themes and Plugins.
### Add an Image Widget Let's add an Image Widget to our site!
### Home Page The default home page is a list of blog posts, but it can also be any Page you like.
### Changing the Home Page You can change the home page in the Customizer.
### Front Page Settting In the "Static Front Page" section, choose "A static page" and pick a new home page from the list.
### A Static Home Page With that setting changed, your home page will no longer be a list of blog posts. If you still want a blog somewhere, you can change that too with the "Posts page" setting.
 They are much more than just a "skin".
### Themes Control Everything The layout of your pages, your menus, sidebars, and the available options for everything are controlled by the Theme.
### Theme Directory There is an official Theme directory at https://wordpress.org/themes/ But there are also many others like https://themeforest.net/
### Change Themes in Customizer You can browse and change themes in the Customizer.
### Installable Themes You can also install new themes from various places. Some themes are **free**, some are **paid**.
### Professional Themes Most professional websites that use WordPress use custom themes, made for the specific purpose of that site. Like the New York Post http://nypost.com/
### Plugins Themes are all-powerful, but Plugins can also be used to add more features to a WordPress website.
### Plugin Directory Just like Themes, there is an official Plugin Directory at https://wordpress.org/plugins/
### Plugins Section To add Plugins, visit the Plugins section of the Back end.
### Powerful Sites WordPress is extremely flexible and when combined with Plugins and Themes, it can be any sort of website.
### What Else? What would _you_ like to know?


Here are some package-level API docs.
| name | path | occurs | description |
|---|---|---|---|
| somenamethatissomewhatlong |
|
0..1 (attribute) | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename |
|
0..* | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
|
| name | description |
|---|---|
| somenamethatissomewhatlong | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| name | description |
|---|---|
| somenamethatissomewhatlong | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| name | type | description |
|---|---|---|
| somenamethatissomewhatlong | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| name | type | description |
|---|---|---|
| somenamethatissomewhatlong | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| name | type | description |
|---|---|---|
| somenamethatissomewhatlong | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |
| somename | array of xmlns:xmltype | Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. Some descriptive text that will be long enough to figure out how to best format it in the table. |


Customs nabs man with 2.5 million fake currency, intercepts 40 drums of NAFDAC stamped ethanol
by Lukman ABOLADEAdvertisement
THE Nigeria Customs Service (NCS) Ogun State Command 1 said it has apprehended a man with 2.5 million fake Nigerian currency notes on Tuesday during patrol by the anti-smuggling unit of the service.
In a statement by NCS Public Relations Officer, Abdullahi Maiwada, he said the NCS Ogun State Command 1 arrested one Samson Odejiba who was in possession of the fake notes at Ihunbo checking point along Sango-Idiroko road.
According to Maiwada, he said the suspect assented to the allegation and confessed that he was contracted by one Alfa who promised to remunerate him with N5,000 if he delivers them to Owode-Yewa.
The notes are allegedly being targeted at people who have the intention of changing their cash to new notes.
Advertisement
Maiwada added that the anti-smuggling team also intercepted 40 drums of ethanol stamped by the National Agency for Food and Drug Administration and Control (NAFDAC) for industrial use.
He noted that some people are in the habit of distributing the product to unsuspecting members of the public, who ignorantly mix it with water and sell as an alcoholic beverage.
He said the ethanols are mostly dispersed as alcoholic beverage in Idiroko and neighbouring towns of the state.
He added that the ethanol are imported from the Republic of Benin for industrial use but the suspects sell it to final consumers without going through industrial processing.
Maiwada said the consumption of the product taken as alcoholic beverage is harmful to the health of those who drink it.


Hello! My name is Michael Chandra Gondoboentoro. A software developer who has experienced in building website / software for about 3 years. Hardworking person, honest and always finished my task. Very patient, pays attention to the smallest details, very strong technically, loves to work in a team and would be an asset to any organization. Proficient in HTML, JQuery, Vue.JS, CodeIgniter, Phalcon, Golang, VueJS, RestAPI and many more web or software development things.
Design and architect infrastructure, database, API, front-end delivery and fullfilment flow of acceptance of new students at schools or foundations. Relies on extensive experience and judgement to plan and accomplish goals. Performs a variety of tasks, leads and directs the work of others. Build and maintain couples of related project like information system for school and library.
Develop an information system website for handling complaints DOC (Day Old Chicken) at PT Charoen Pokphand Indonesia. The website was build with Native PHP, JQuery, CSS and MySQL.
Teach college students to build a program with certain programming languages such as Java, HTML, CSS, PHP and CodeIgniter. Evaluate college student's capability in programming.
1. Hotel information system and desktop application using C# .NET and Oracle Database (2016)
2. AyoKerja, web-based jobstreed application using CodeIgniter and MySQL (2016)
3. ADA STORE, department store information system application using CodeIgniter and MySQL (2016)
4. Customer Care DOC, web-based for complaining DOC (Day Old Chicken) in PT. Charoen Pokphand Indonesia using PHP and MySQL (2017)
5. FourSquare, web-based recommendation system for restaurant and tourist spots in Google App Engine using Java (2016)
6. DDExpress, a distributed database project which has desktop and website application for handling courie services. Build with C# for desktop and native PHP for website application (2017)
7. Geoindo, an API that serves database service about Indonesia's geographical data. Build with Slim Framework, Eloquent Model and Google Maps API (2018)
8. Taff, project management website using Phalcon and MySQL (2018)
GPA: 36.50
Major in science.
GPA: 3.11
Major in Internet Technology
Worked as assitant lecturer in 2017 at Sekolah Tinggi Teknik Surabaya Laboratory.


| Modifier and Type | Class and Description |
|---|---|
class |
AbstractDDRequest
Created by Jeff Gaynor
on 11/30/16 at 3:21 PM |
class |
DDAttributeRequest
Created by Jeff Gaynor
on 12/2/16 at 12:59 PM |
| Modifier and Type | Method and Description |
|---|---|
Response |
AbstractDDServer.process(Request request) |
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractACRequest
Created by Jeff Gaynor
on 4/17/17 at 10:51 AM |
class |
ACGetRequest
Created by Jeff Gaynor
on 4/17/17 at 10:51 AM |
| Modifier and Type | Class and Description |
|---|---|
class |
AttributeGetRequest
Created by Jeff Gaynor
on 11/28/16 at 1:32 PM |
class |
AttributeListRequest
Created by Jeff Gaynor
on 11/30/16 at 4:22 PM |
class |
AttributeRemoveRequest
Created by Jeff Gaynor
on 11/30/16 at 4:19 PM |
class |
AttributeRequest
Created by Jeff Gaynor
on 11/30/16 at 4:16 PM |
class |
AttributeSetClientRequest
Created by Jeff Gaynor
on 11/30/16 at 3:49 PM |
| Modifier and Type | Class and Description |
|---|---|
class |
ApproveRequest
Created by Jeff Gaynor
on 12/2/16 at 11:28 AM |
class |
ClientRequest
Created by Jeff Gaynor
on 11/28/16 at 1:59 PM |
class |
CreateRequest
Created by Jeff Gaynor
on 12/2/16 at 12:51 PM |
class |
GetRequest
Created by Jeff Gaynor
on 12/5/16 at 2:03 PM |
class |
RemoveRequest
Created by Jeff Gaynor
on 12/2/16 at 1:44 PM |
class |
UnapproveRequest
Created by Jeff Gaynor
on 12/2/16 at 11:53 AM |
| Modifier and Type | Class and Description |
|---|---|
class |
AddClientRequest
Created by Jeff Gaynor
on 12/1/16 at 2:09 PM |
class |
ListAdminsRequest
Created by Jeff Gaynor
on 12/1/16 at 1:54 PM |
class |
ListClientsRequest
Created by Jeff Gaynor
on 12/1/16 at 1:56 PM |
class |
PermissionRequest
Created by Jeff Gaynor
on 12/1/16 at 10:57 AM |
class |
RemoveClientRequest
Created by Jeff Gaynor
on 12/2/16 at 11:20 AM |
| Modifier and Type | Method and Description |
|---|---|
Response |
DelegationService.process(Request request) |
| Modifier and Type | Class and Description |
|---|---|
class |
AGRequest
Created by Jeff Gaynor
on Apr 13, 2011 at 3:37:26 PM |
class |
ATRequest
Created by Jeff Gaynor
on Apr 13, 2011 at 4:02:13 PM |
class |
BasicRequest
Usage
|
class |
CallbackRequest
Created by Jeff Gaynor
on May 12, 2011 at 1:04:34 PM |
class |
DelegatedAssetRequest
Get an asset using delegation.
|
class |
DelegationRequest
Created by Jeff Gaynor
on Apr 14, 2011 at 3:41:25 PM |
class |
PARequest
Created by Jeff Gaynor
on Apr 13, 2011 at 3:38:19 PM |
class |
RFC7009Request
Created by Jeff Gaynor
on 5/19/21 at 6:29 AM |
class |
RFC7662Request
Note that since this uses bearer tokens, the access token must always be supplied.
|
class |
RTRequest
Created by Jeff Gaynor
on 2/24/14 at 11:19 AM |
class |
UIRequest
Created with IntelliJ IDEA.
|
| Modifier and Type | Method and Description |
|---|---|
Response |
AbstractIssuer.process(Request request) |
| Modifier and Type | Class and Description |
|---|---|
class |
CBRequest
Request to a callback server.
|
class |
IssuerRequest
Created by Jeff Gaynor
on May 13, 2011 at 11:57:57 AM |
| Modifier and Type | Method and Description |
|---|---|
Response |
Server.process(Request request) |
Response |
DoubleDispatchServer.process(Request request) |
| Modifier and Type | Method and Description |
|---|---|
Response |
PAServerImpl.process(Request request) |
Response |
CBServerImpl.process(Request request) |
Response |
AuthorizationServerImpl.process(Request request) |
| Modifier and Type | Class and Description |
|---|---|
class |
PARequestImpl
Specific OAuth-based request.
|
| Modifier and Type | Method and Description |
|---|---|
Response |
ASImpl.process(Request request) |
| Modifier and Type | Class and Description |
|---|---|
class |
AGRequest2
This has the lifetime in it directly, since the grant request is done before the transaction
can exist.
|
class |
RTIRequest
Created by Jeff Gaynor
on 2/26/14 at 11:32 AM |
class |
UIIRequest2
Request to issuer for UserInfo.
|
Copyright © 2022. All rights reserved.


@*
* Copyright 2018 HM Revenue & Customs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@import play.api.i18n.Messages.Implicits._
@import uk.gov.hmrc.gform.sharedmodel.form._
@import uk.gov.hmrc.gform.sharedmodel.formtemplate.{FormTemplateId, _}
@import uk.gov.hmrc.gform.config.FrontendAppConfig
@(
formId: FormId,
formTemplate: FormTemplate,
totalSections: Int,
lang: Option[String],
frontendAppConfig: FrontendAppConfig
)(implicit messages: Messages)
@uk.gov.hmrc.gform.views.html.main_template(
title = formTemplate.formName,
bodyClasses = None,
frontendAppConfig = frontendAppConfig
) {
SAVED
Confirmation Number
XXXXX123456789Warning
You Can


Hey, I'm Chris Yin.
Hello! I’m Chris Yin – 26 years old living in the Bay Area working at Coupa, a late stage enterprise software startup as the lead Product Manager for Expenses, Inventory, and Mobile.
A little about myself – I grew up in a small town in the Bay Area. I moved down to San Diego to go to college at UCSD. While I was there, I met some awesome people and started Pathways, a group that worked together on various projects & startups.
While at Pathways, I spent a lot of time at AIC, a coworking space, and got to work with some cool companies like ADI, PremedHQ, Xpenser, KA Lite, LocBit and more. Eventually UCSD decided they wanted Pathways, and we passed it to them.
After finshing undergrad, I spent some time working and learning how to build software, eventually joining Parand at Xpenser. After a few months, we were acquired by Coupa, a company out of San Mateo.
I’ve been a PM at Coupa since and I lead the way building a few of our products – Expenses, Inventory, and Mobile (iOS & Android). Perpetually working on a few side projects (let’s chat!), and always down to meet up with cool people.
Some links to me on the web -
Twitter | Linkedin | Tumblr | Quibb | Quora | RSS


HOME
ABOUT
A painted surface is a real,
living form.
Malevich,
"From Cubism and Futurism to Suprematism"


Configuring Jenkins
1) Copy required admin & optional orb jars to Jenkins classpath (Clicking 'Test Connection' will show the correct path)
2) Enter the IP/DNS of WebSphere Application Server
3) Enter the Port to connect on
4) Select SOAP as the connect type (only supported type)
WebSphere Global Security
5) Enter the Username associated with WebSphere's Admin Console
6) Enter the Password associated with WebSphere's Admin Console
Connecting Remotely (ONLY if WebSphere is using the default untrusted SSL cert)
There are additional steps required for connecting to WebSphere remotely. Since WebSphere ships with an untrusted SSL cert(which the WebSphere Admin Console uses), you must tell the JRE that Jenkins is using to trust the "untrusted" cert. You do this by importing the untrusted
SSL cert provided by WebSphere into your "cacerts" file. ** Please be sure to backup your cacerts file before proceeding with these steps ****
1) By default the WebSphere Admin Console uses an untrusted cert, this cert must be trusted before connecting remotely by either importing it into cacerts for the JRE jenkins uses.
a) point Google Chrome to the WebSphere Admin Console using https
b) Click the https lock icon in the URL address bar of your browser (a dialog window will pop up)
c) Click on the "Connection" tab
d) Click on "Certificate Information" link (another dialog window will pop up)
e) Click on "Details" tab
f) Click "Export..." button and save the certificate to your computer.
g) Import the certificate into <JRE_HOME>/lib/security/cacerts using either the "keytool" command or IKeyMan provided by IBM
example) keytool -keystore <path to jre>/lib/security/cacerts -importcert -alias WebSphereServer -file admin_console.cer
-or-
Download and execute InstallCert.java with "java InstallCert <websphere:9043>", select option 1 then re-execute and select option 2 and copy the created keystore file to the jre/lib/security folder that jenkins is running against.
2) If you cannot ping the short DNS name of the server that's hosting WebSphere, you'll need to add it to etc/hosts on the Jenkins server
Wrapping WAR Deployments
WAR deployments will automatically be wrapped in an EAR based on the EE Level specified in the configuration.


Post edited 2 x times, last by
Topicstarter
The True Story of Battlefield 3, the Battlefield Franchise, Its Community, & EA/DICE
Mordor HQ Thread:
http://bit.ly/Qc0D7K
A nice thread to read up on some facts. It's pretty long for a forum thread but it's really interesting to read :)


Game programmer focusing in gameplay using the Unity engine in both 3D and 2D environments.
Helped start the Video Game Development Asssociation at Cal. State Long Beach in 2013.
Graduated with a Bachelors in Computer Science in December 2017, looking for opportunities to apply my skills and improve myself as a game developer.
A friend's game development thesis project at LCAD I was brought on to assist with as an engineer.
- Worked on various gameplay features and fixes spanning character systems, level features, and UI.
A more long term project to recreate an old favorite game of mine, Spiral Knights, using Unity. Was the sole developer on this project. (The linked video shows 30 minutes of gameplay going through two of the three zones and their bosses.)
- Created a top down character controller with a matching animation controller to handle blending and stances per weapon type.
- Developed an equipment system that allows for on the fly equipping and switching between weapons, as well as equipped shields.
- Designed and implemented the combat system and behaviour tree based enemy/boss AI.
- Developed a modular, event-driven objective system to create progression within levels.
- Scripted a weapons platform that allows for fast prototyping of new designs in both melee and ranged weapons.
- Performed level design and scripting that can plug into the objective system for that level.
- Programmed UI functionality for both worldspace and HUD elements.
- Created a data saving system, with lookup tables for equipment, to save player progress and allow them to continue from the main menu.
Project done for Ludum Dare 44 using Unity.
- Developed resource collection system.
- Created system to deploy and retrieve bees.
- Implemented UI elements to display resource node information.
A weekend project to recreate Match-2 game mechanics in Unreal 4. The game will track total number of blocks popped, as well as their highest amount popped at once.
- Implemented a modified flood fill algorithm in C++ to detect nearby matching colors.
- Implemented the grid using a column major array to handle filling empty columns once blocks were cleared.
- UI and player click detection were done through C++ as well.
A 2D puzzle platformer done for Global Game Jam 2019 using Unity.
Implemented Features:
- Rigidbody based player controller.
- Game's basic loop.
- Environmental hazards and collectables.
- Designed and implemented a cutscene system to take control of the player character and perform a sequence of actions. (Seen at the end of the tutorial.)
- Implemented camera "screen" movements to follow the character through each puzzle using cinemachine.
A simple tower defense done as a solo weekend project. Used splines to implement enemy movement paths, implemented a tower upgrade system and its respective UI, as well as unit placement detection for placing towers.
An emulation of the Fishing skill's minigame from the MMORPG "Mabinogi". The player must cast their rod as far as they feel like by holding down left mouse. When a fish bites, they can click to start the minigame, which involves dragging the mouse to control the "fish".
Used C++ to handle main game logic (i.e. casting the rod and switching from one input scheme to another). Used Blueprints to hook game events to UMG in order to display UI/Text.
The player must make their round around a rapidly failing airship and must maintain and repair rooms before there is too much damage to continue its flight.
Worked as the sole programmer for the team while also implementing art and animation assets for our artists. Also designed two of the implemented levels.
Implemented Features:
- Player input and animation controllers
- Designed and implemented the game's basic loop
- Designed and implemented a quick time event style system for the room repair mechanic
- Designed and implemented a ship durabilty system based on repairable rooms in the ship
- Implemented a Local leaderboard that persists between sessions that displays each level played with the given score and time survived
- Implemented UI elements such as the ship's health, menu screens, and a minimap
Each of the players (up to 4 in local co-op) control a planet, whose goal is to consume smaller moons in order to ram other player's planets out of the galaxy, or just crush them into dust.
Took the project further with a partner to extend gameplay features and increase local co-op player count from 2 to 4.
Implemented Features:
- Moon collection and spawning in the arena
- Player Skin customization system
- Context-based reactions of the faces on the player's planets
- Basic game loop implementation
- Extended game jam code to allow up to 4 players in local co-op
- Created proper UI functionality to handle up to 4 players using any combination of mouse+keyboard and controllers
The player plays as the villain and must spread a deadly plague while avoiding detection from troublesome AI doctors in order to sneak into the CDC and spread the disease as far as possible.
Implemented Features:
- Level design and implementation
- Created doors that react differently to the player vs NPCs
- Bugfixing and QA
You are a hungry raccoon whose goal is to break into homes and eat as much food as you can while avoiding detecting before time runs out.
An IEEE Gamesig 2018 semi-finalist.
Implemented Features:
Core gameplay mechanics
- Updating the gamestate and UI when the player consumes food
- Created a timer and accompanying UI element for each Level
- Created the game's winning and failure states, i.e. having eaten food to pass a level or running out of time
- End-level scoring system based on food eaten in the level
UI features
- Main Menu and in-game UI functionality
Level scripting
- Physics based doors that can be opened with player input and closed with manual interaction
- Level triggers to start and end each level
You are a scientist on a space station that has been overrun by infected former crewmates and strange creatures. You must escape before you too fall to the infestation.
This project was VGDA's first steps into having a team experiment with a 3D project for the semester.
Implemented Features:
- Implemented the combat system
- Healthbar UI for the player and enemies
- AI design and implementation for all enemies in the game
- Level design and level scripting
- A basis for an objectives system for gameplay
- Player decoy ability
Explore space in a branching narrative while discovering the secrets behind your mission.
Implemented Features:
- Created the tractor beam for the player
- Enemy turret AI design + implementation
- Enemy tractor beam interactions with the player
- Hostile proximity mines
- Laser walls that can be obstructed with physical objects
A meditative, musical, cave exploration platformer that has the player solving rhythmic and musical puzzles to uncover the secrets behind the creation of this world.
Implemented Features:
- Puzzle design and implementation
- Dialogue parsing system for NPCs to read from a file
Navigate a twisted incarnation of the character's home to discover the truth behind their recurring nightmares.
Implemented Features:
- Array/Tile based random level generation
- Game balancing and QA
You are the last of your village and must survive an onslaught of demons in order to warn your people about the incoming invasion that devasted your village.
Implemented Features:
- Enemy design and implementation
- Level design for the first level
An established Las Vegas casino games development studio working on porting floor titles into a web format using Cocos Creator.
Reverse engineered existing titles from original C#/Unity source code into Typescript/Cocos Creator.
Largely front-end development spanning all aspects from gameplay, UI, vfx, and client code. Due to small size of team, took ownership on the conversion of 2 of their popular titles "Navy Blitz" and "Deal or No Deal".
Worked closely with our Art Lead to convert old assets and effects into a new engine.
Small studio developing a mobile casino slots experience.
Implemented new UI designs and features outlined by designers and demands of stakeholders.
Created client code to handle and parse data packets sent from the back end.
Developed client systems that fetch and use data from the back end when required.
Engineering liasion for the team.
A VR game development contract to create a VR spin-off of "Car Pong" from the game show "Let's Make a Deal!
Implemented gameplay features to best recreate the experience of Car Pong in VR.
Developed UI elements.
Presented project on the E3 showfloor.
A startup VR training simulation software designed to train forklift operators in a safe manner.
Documented existing sourcecode regarding the log-in processes and the gameplay loop from starting up the simulation to the end.
Refactored local game and client-connection code for clarity and maintainability.
Conceptualized and prototyped new UI/UX designs and features in Unity.
Implemented a networked metrics and logging system to capture data generated by the system during use.
Helped start the club in the fall semester of 2013. The club emulates a large studio environment with a multidisciplinary membership whose goal is to finish and publish a game every semester.
I have personally worked on many projects as a generalist gameplay programmer, with some UI when tasked.
- C# (4.5 years)
- C++ (1 years)
- Java (3 years)
- Unity3D & 2D (4 years)
- Unreal 4 (1 year)
- Git, Github, SourceTree, Trello, JIRA, AGILE development, NLog
Favorite thing to do is look at a game mechanic and breakdown its potential implementation. When not developing games, I am most often found playing them. Will gladly discuss any game I've played.
Currently playing: Destiny 2, Mabinogi


[1]
suites are neglected which was a convenience store.
[2]
suites are neglected which take the room description said.


Items enqueued/published by processes and other sources for automation processes to consume.
| Name | State | State Message | Locked By | Start Time | Expiration Time | End Time | View | Edit | Delete |
|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
Are you Sure you want to delete?


Sign Transaction
FreeWallet would now like you to sign a send transaction using your Trezor.
Please click the button below to get started
Connect to Trezor
Note:
You need to allow popups from freewallet.io to sign transactions
View Transaction


EVENT PROPERTY
Title
Title...
Start day
End day
Start time
End time
Type of Event
Business
Free Time
Social
Flexible Event
MAP COORDINATES
Starting Location
Meeting Location
GET THE PATH
ALARM SETTINGS
Notify me of a starting event before
Remind me the event with this message
Write a short reminder


Equality constraints are added to the store implicitly each time variables that have been mentioned in explicit constraints are bound—either to another such variable or to a number.
clp(r) ?- {2*A+3*B=C/2}, C=10.0, A=B. A = 1.0, B = 1.0, C = 10.0
Is equivalent modulo rounding errors to
clp(r) ?- {2*A+3*B=C/2, C=10, A=B}. A = 1.0, B = 0.9999999999999999, C = 10.0
The shortcut bypassing the use of {}/1
is allowed and makes
sense because the interpretation of this equality in Prolog and clp(R)
coincides. In general, equations involving interpreted functors,
+/2
in this case, must be fed to the solver explicitly:
clp(r) ?- X=3.0+1.0, X=4.0. no
Further, variables known by clp(R) may be bound directly to floats only. Likewise, variables known by clp(Q) may be bound directly to rational numbers only; see CLPQR Fragments and Bits. Failing to do so is rewarded with an exception:
clp(q) ?- {2*A+3*B=C/2}, C=10.0, A=B. ! Type error in argument 2 of = /2 ! 'a rational number' expected, but 10.0 found ! goal: _254=10.0
This is because 10.0
is not a rational constant. To make clp(Q) happy
you have to say:
clp(q) ?- {2*A+3*B=C/2}, C=rat(10,1), A=B. A = 1, B = 1, C = 10
If you use {}/1
, you don't have to worry about such details.


Congrats you got the mess of the group. .
Megan is an example that it's okay to make mistakes, living life clumsily (or stupidly) as it helps you become the person you are today. She's a huge sap and loves to surround herself with people who make her a better person. She is AWKWARD but CARING AND PATIENT.
I think I'm a mess.  - Megan


--- layout: default title: 'Playbook | Jump start your interface development.' body_class: 'index' ---
Congrats, you just created your Playbook. Start building!


| |
The Lafayette House was constructed in 1892 and opened for business as a boarding house at the turn of the century. Rooms cost fifty cents a night or three dollars a week, including meals! Boarding houses played an integral role in Lafayette's development. Many of the men who worked in the mines were single or lived alone until they could afford to send for their families. The Lafayette House was home for the Baldwin-Fells detectives who were brought to town by the mine owners to break the strike of 1910. |
|


Removes the credentials stored in the credentials file in your global configuration directory.
credentials


Engagement Shoot
Location: West Village - New York, NY
😍 Scroll Down 😍
Go Back
photography by
Haseok Chung Studio
×


UW-Madison uses robots to deliver food to students
MADISON, Wis. (AP) - The University of Wisconsin-Madison is using rolling robots to deliver food.
The school entered into a contact with Starship Technologies this summer to get access to a fleet of 30 robots that resemble coolers on wheels. The robots can navigate sidewalks autonomously although human controllers can take over at a moment’s notice.
Students and faculty can order food from several university restaurants through a Starship app on their phones and watch the robots’ progress as they travel to their address. Users will get an alert when the robot arrives. Each delivery will cost $1.99. That money will go to Starship Technologies.
The robots began deliveries Monday on the campus’ north side. University officials hope to expand service campus-wide once the robots have mapped the entire area.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Project Resident Evil
Resident Evil is a system that registers virus spreads across the world.

Resident Evil is a system that registers virus spreads across the world.


Resize the window to see the effect!!
this text will use 12 columns on a small screen, 4 on a medium scree (m4), and 3 on a large screen (m3)


Prerequesites: You should be comfortable with both HTML and JavaScript.
WebRTC is a technology that allows two peers to communicate peer-to-peer, that is to say, to exchange data that doesn't go through a server. It includes the ability to capture, transmit, receive, and play audio/video data, well as text and raw byte arrays. It's audio/video transmission is optimized to reduce latency (the delay between when audio/video is captured on end and played on the other end), which means its better for applications like video conferencing than watching movies.
WebRTC is currently supported by several brands of browsers (Chrome, Firefox, Opera, maybe Edge, but not Safari yet). It is also possible to write native WebRTC clients, but that is a more advanced topic than covered in this document.
The crucial thing to realize is that peer-to-peer doesn't mean that no servers are involved, it just means that the regular data doesn't go through them. At the bare minimum, a server is still needed for two clients to exchange some basic information (where am I on the network, what codecs do I support) so that they can establish that peer-to-peer connection. The information used to establish the peer to peer connection is called signaling, and the server is called a signaling server.
WebRTC makes no specification of what you use for a signalling server or what protocol it uses. Websockets is the most common, but people have also used long polling and even email (twitter is possible but more painful due to the character length limitation).
When your product is in development, running your own server locally is very convenient; you can restart it whenever you want so that its at a known state, it's easier to check the logs, you can customize it's behavior, and it doesn't cost you anything. However, when your product moves into production you'll eventually be more concerned with robustness and scalablity, which are full time jobs in their own right.
EasyRTC OpenSource is:
Together, these two components will let you write a simple video conferencing application, or a file sharing application, etc in just a few lines of simple code.
Web Browser
Your EasyRTC Application Code
EasyRTC Client Libraries
EasyRTC
EasyApp
EasyRTC_Rates
EasyRTC_Recorder
Socket.io
WebRTC
EasyRTC Server
Another EasyRTC Client
Installing an EasyRTC server on your workstation (be it a desktop or laptop) is the quick and easy way to get started. It will let you run your EasyRTC clients on the same workstation without having to fuss with SSL certificates. It will be less useful for testing your application with clients running other devices; WebRTC clients running on Chrome, can't access cameras or microphones unless they are hosted from SSL servers or on the same machine (it's a browser security constraint).
The easy way to do this is:
git clone git@github.com:priologic/easyrtc.git
cd easyrtc
npm install
cd server_example
npm install
Assuming you haven't gotten any nasty errors, you should be able to start the seserver by issuing the following command (while in the server_example directory):
node server.js
By default, the server serves demo applications on port 8080, so if you run a compatible browser on the same machine, and point it at localhost:8080, it should take you to the demos page. Pick a demo to run (the simple audio video demo is a good choice). Open a new tab and point it at the same URL to have a second instance of the demo so you can try the two way communications.
Warning: if you run two instances of the same webrtc application in the same physical room without using earphones, each will pick up the audio output of the other, resulting in a shrill feedback squeal. If there is anybody else in the same room, consider muting your speakers first.
Note: the simple audio video demo displays the output of the local camera (it's a good reminder so you don't do anything uncouth while in a conference) and the output of a potentially remote camera. When you are running everything on the same machine you'll notice that one display is mirrored compared to the other. If you are wondering why this is done, try the following:
Video track: An object representing the output of a single camera or equivalent device
Audio track: An object representing the output of a single microphone or equivalent device
Media Stream: An object that serves as a package to hold one or more video tracks and/or one or more audio tracks.
Data channel: An object used to send strings or binary data from one peer to another peer.
Peer connection: An object that serves as portal between two peers, allowing media streams and data channels to be shared across a network.
Easyrtcid: An id for a peer that is unique across an EasyRTC server.
Call: As a verb, the act of establishing a peer connection with another peer so that media streams or data can be sent. As a noun, the state of having a working peer connection to another peer.
Our simple browser app is going to follow the model of the simple audio video demo, which has two parts: an HTML file that defines some HTMLVideoObjects to display media streams and some buttons to initiate calls, and a JavaScript file for the program logic.
The HTML will look like this:
<!DOCTYPE html>   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>MyFirst app</title> <link rel="stylesheet" type="text/css" href="/easyrtc/easyrtc.css" />       <button onclick = "connect();"> Connect to server</button>
Peers:

 <video autoplay="autoplay" class="easyrtcMirror" id="selfVideo" muted="muted" volume="0" ></video>

 <video autoplay="autoplay" id="callerVideo1"></video>

 <video autoplay="autoplay" id="callerVideo2"></video>

 <video autoplay="autoplay" id="callerVideo3"></video>

The first thing you'll notice is the reference to /easyrtc/easyrtc.css and /easyrtc/easyrtc.js. The easyrtc.css and easyrtc.js files are actually in the api folder, but the server is set up to map /easyrtc to the api folder.
The easyrtc.js file contains the basic Easyrtc methods and the Easyrtc_App methods. The easyrtc.css file contains a css definition for making a video mirrored and for positioning a "close call" icon above on the videos. The socket.io.js file provides websocket communication with the server. The MyFirstAp.js file is where our application specific JavaScript code will reside.
The connect method will be used to start the connection to the server.
The otherClients div will be used to hold buttons to call the other peers.
The divs that surrond each of the video objects are part of a mechanism that positions the "close call" icon on the contained video object.
The JavaScript we will need is below.
function connect() { easyrtc.setRoomOccupantListener(convertListToButtons); easyrtc.easyApp("easyrtc.audioVideoSimple", "selfVideo", ["callerVideo1", "callerVideo2", "callerVideo3"], loginSuccess, loginFailure); } function convertListToButtons (roomName, data, isPrimary) { var otherClientDiv = document.getElementById('otherClients'); otherClientDiv.innerHTML = ""; for(var easyrtcid in data) { var button = document.createElement('button'); button.onclick = function(easyrtcid) { return function() { performCall(easyrtcid); }; }(easyrtcid); var label = document.createTextNode(easyrtcid); button.appendChild(label); otherClientDiv.appendChild(button); } } function performCall(otherEasyrtcid) { var successCB = function() {}; var failureCB = function() {}; easyrtc.call(otherEasyrtcid, successCB, failureCB); } function loginSuccess(easyrtcid) { easyrtc.showError("none", "Successfully connected"); } function loginFailure(errorCode, message) { easyrtc.showError(errorCode, message); }
The connect method does two things:
The convertListToButtons function builds a button for each peer known by the server. Each button has a callback that generates a call to a particular peer.
The performCall method takes a peer's easyrtcid and requests a call to it. When the call is established and a remote media stream is received from the peer, a callback (implicitly set up by the easyApp method) will attach that media stream to the first available video object. The easyApp method we used to initialize the connection sets up callbacks; one of the callbacks attaches a media stream received from the peer to a free video object, another callback clears a video object when the associated media stream ends.
This application just scratches on the surface of the EasyRTC API.
There are three parts to hosting your application on a server.
To change the port that the applications serves on, open your server_example/server.js file in an editor. Look for a line that reads:
var webServer = http.createServer(app).listen(8080);
This line is determining what port your server is reached at. Change the 8080 to some other port number that isn't already being used. Be aware that on linux based systems, the lower numbered ports (< 1024) can normally only be used by a service that is run with root level permissions, so sticking with a higher numbered port is a good idea.
As mentioned earlier, apps running on Chrome browsers can't access local cameras and microphones unless the application is hosted from localhost or an SSL server (https). When you are doing development, it is simplest to get node.js to handle the SSL. You can find detailed instructions on the EasyRTC: Using SSL page.
For production however, you should look at using NGINX, HAProxy, or a similar tool. These tools will map a low numbered port (like 443, the default https port) to a high-numbered port while handling the SSL encryption so your server code just sees regular non-SSL traffic coming in from a high numbered port. Our experience is that they offer much greater performance and reduced latency compared to handling the SSL inside the easyrtc server itself.
WebRTC is advertised as being peer-to-peer, so the first question a new comer to the technology has is, "if it's peer-to-peer, why do I still need servers?"
In an ideal world (from the perspective of implementing peer-to-peer applications), all our devices would have unique addresses that could be reached from anywhere on the internet. Of course, the real world is far from ideal thanks to routers and firewalls that provide NAT and symmetric NAT behavior.
NAT is an abbreviation for Network Address Translation. What it basically means is that devices behind a router (that provides NAT) all appear to have the same IP address. When a device inside the network sends a packet to a device behind the router, its IP address is replaced by the routers external address, and its port is replaced by a unique port on the router (allocated for just that dialog). When the device in front of the router sends a packet back, the router looks up the port number to figure out original device's address and relays the packet onto it. What this means is that a device in front of the router can't initiate a dialog with a device behind the router, which implies, two devices that are behind different routers can't initiate dialogs with each other at all (since neither can initiate the dialog). This is where a STUN server becomes useful.
STUN servers take advantage of something called port busting. When a device behind a NAT enforcing router contacts a device in front of the router, a hole is opened for the allocated port on the router, and the router doesn't check who (in front of the router) is sending packets through that hole. The way it works is: each devices contacts a STUN server, which opens up a hole in their respective routers and tells them the location of hole (IP address and port) as seen by the outside world. Using a signaling service, each device tells the other device the address of the hole it's opened. After that communication can proceed in a true peer-to-peer manner without further reliance on the STUN server.
While consumer owned devices tend to be behind routers with NAT behavior, but corporations lock down their networks much more, enforcing a policy called symmetrical NAT. Symmetrical NAT means that a router only allows an outside device send packets back through a router hole if it was the original device that was contacted to create the hole. If two devices are behind different routers that both have symmetrical NAT behavior, STUN servers are useless and you need a proxy service (that both devices can reach) to relay packets between the two of them. This is call a TURN service. Because it has to relay every packet between the two devices. In theory, only %5 of all calls will need the use of a TURN server, but that is generalization for WebRTC in general and the actual percentage is going to reflect what target audiences a particular WebRTC application serves.
In theory, you can make use of public STUN servers for free. STUN servers only need to send a few packets to help initiate any particular call, so they are very cheap to run. However, public STUN servers aren't always there when you need them, they come and go. Having your own means you have a stable set of servers whose addresses don't change.
TURN servers, being bandwidth intensive, are not available for free, except as a "freemium" service with limitations that prevent you from using it for production.
If your peer-to-peer traffic is staying inside a particular organization, a few STUN servers at various levels of the network may be all you need. In the more general case, you want TURN servers located someplace that minimizes the packet travel times between the peers and the TURN server. For example, if you are running service on people in Australia, you'd want to use a TURN service hosted in Australia instead of the United States.
There are two possible directions you can go with TURN services; run your own or rent somebody elses. In choosing, you'll need to consider pricing structure, scalability, ease of integration, locality to your clients, and how much of your own time you want to devote to setting up and running the service.
In the "run your own" camp, the popular solution is called CoTURN which can be found here.
In the "rent somebody elses" camp, there is a lot to choose from. Below is a partial list of the bigger names.
Priologic Software is also planning to offer a STUN/TURN service that will have advantage of being trivial to integrate with your EasyRTC Server and very competitive pricing. See EasyRTC STUN / TURN Service for more details.
This is covered in detail in this document: EasyRTC Server: ICE Configuration.
The EasyRTC Open offering has scalability limitations in two different areas: the number of peers that can be in a video conference together, and the number of peers that can connect to the server.
Any client using a purely peer-to-peer connection is limited in the number of media streams it can send and receive. That limit depends on the the processing power of the hardware the client is running on, and the upload speed of its connections to other peers. Typically, the later is encountered well before the former. We've seen a 640x480 video successfully shared to 14 peers when all parties are on the same local network, but struggle with 3 peers when the peers were spread across the internet. The user observed effect is that the frame rate gets low, the picture gets grainy and pixelated, sound gets choppy, and connections can get dropped.
There are two solutions for this general problem: Media Servers and Selective Forwarding Units (SFU's). The idea of a media server is that everybody sends their local media to the media server, and in return the media server sends everybody a single composite media stream. An SFU also receives the peers local media streams, but instead of combining them, it relays the received media streams to the other parties.
EasyRTC doesn't currently support SFU's and Media Servers.
Currently, the EasyRTC server runs on a single Node.js instance. That means it is limited by the amount of memory and the number of ports the node.js instance has access to. It can also only send out and receive messages so fast. The number of clients it can support can range from hundreds to thousands, depending on how much demand your application puts on the server. This also means the EasyRTC server isn't as robust as you want for a production system. If the host running the server process goes down, the service fails.
The upcoming PlatformRTC PAAS has a wrapper that will let most EasyRTC clients run with minimal (if any) changes, while providing scalibilty and robustness through a distributed system. See EasyRTC Enterprise link for more details.
There are also plans to add MediaServer and/or SFU support to the PlatformRTC service.


New energy comparison
According to the discussion on Oct 07, we have to modify the function in terms of the problem mentioned in http://jdily.github.io/draft/2015/10/06/Energy-Discussion/
Also, we want to add a bias term for each data point, i.e. $b_i$, to reveal the fact that not all laplacian values from ground truth are 0..
Optimization with weighted laplacian (i.e. normalize the distance)
Here we first define a laplacian function for each $e_i$:
where denotes as weight for $e_{i-1}$ with respect to $e_i$.
Term1 : minimizing curvature
where $b_i^1$ is a bias value for each $e_i$, and we can learn this $b_i^1$ from data.
Term2 : keeping curvature constant
And can be expand as complicated version as follow:
where and ${w}’_{i+1}$ are respect to $\mathcal{L}(e_i)$.
Comparison : both gt and optimized data (from previous energy) on new energy
| data | type | term1 | term2 | total |
|---|---|---|---|---|
| bubble | gt | 0.33 | 0.35 | 0.68 |
| optimized | 0.69 | 0.40 | 1.09 | |
| circle109 | gt | 0.047 | 0.052 | 0.099 |
| optimized | 0.69 | 0.61 | 1.30 | |
| heart298 | gt | 0.39 | 0.45 | 0.84 |
| optimized | 0.74 | 0.47 | 1.21 | |
| phone-hang-up | gt | 0.27 | 0.26 | 0.53 |
| optimized | 0.44 | 0.21 | 0.65 | |
| |
||||
| |
||||
| triangle36 | gt | 0.46 | 0.76 | 1.22 |
| optimized | 0.83 | 0.94 | 1.77 |


EVENT HORIZON A film review by Mark R. Leeper
Capsule: A good cast, good special effects, and an intriguing title all go to make a really exciting-looking coming attraction. The film itself has nearly nothing of value that was not in the trailer. This is not so much set in the universe of modern physics as in Clive Barker's horror universe.  Rating: -1 (-4 to +4), 3 (0 to 10)
I have heard it observed that any film that starts out with an aerial view of a city is not a film worth seeing. That may be helpful on cable, but not for films in a movie theater. I guess I would claim that any film whose publicity uses the word "terror" is a film well worth avoiding. I saw a coming attraction for EVENT HORIZON and thought that it looked pretty good. At the time I did not realize that I knew the rule about the word "terror." I knew but knew not that I knew. I only realized that I knew when I looked up some information about this interesting looking film on the web and saw the word "terror" in the ad, that I realized it had to be a bad film and I knew that only on the basis of seeing that one word. PSYCHO is one film that could be said to produce terror, but the ads did not use the word. Hitchcock never claimed to be a master of terror; William Castle made that claim. As a rule of thumb, if you are terrified by a William Castle film you should wait five or six years until you hit puberty and try it again.
EVENT HORIZON is essentially a haunted house film in space that rather artfully uses scenes and touches from a lot of different films to tell a new story. There is a lot of ALIEN and a lot of HELLRAISER with bits of THE HAUNTING, FORBIDDEN PLANET, 2001, STAR TREK VI, MARY SHELLEY'S FRANKENSTEIN, THIS ISLAND EARTH, and probably others I missed.
These days too many films tend to have a great look but not very much content. It is the music video aesthetic. This is a film with great visual images, but the plot is really basically the haunted house film in space. The film shovels images at the viewer so fast that it is difficult to interpret just what has been seen, and really it may not matter. When you find out what is really going on, it is a real letdown. This has to be one of the least intriguing concepts possible for a film. I will not give it away, but this is more a Clive Barker sort of horror film in a science fiction setting than it is a science fiction film. The title is the most intriguing thing about the film, but "Event Horizon" is just the name of a spacecraft, and there is no internal evidence that anyone involved in the production knew even what the term meant.
This film is really a good cast wasted. Sam Neill and Laurence Fishburne are, of course, major actors. I suspect they will take the money and run.  She is an actress who always added a certain fragility to her roles. She is sort of the anti-Bette-Davis. Here that quality is not just ignored, it is plastered over and she is nearly unrecognizable. She is cast against type and brings nothing special that is usable to her role.
This is a film that needed a writer with vision, but instead had one with a high concept. I would rate this letdown a -1 on the -4 to +4 scale.
Mark R. Leeper<EMAIL_ADDRESS>Copyright 1997 Mark R. Leeper
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


What is Information Science and Engineering?
Information Science and Engineering is a discipline which includes theories, standards, methods and innovations of various different domains like mathematics, cognitive science and information theory to solve complex IT problems. Information Science Engineering focuses on collecting, categorizing, strategizing, and storage of information. It also throws light on how to analyze and interpret the raw data. It is an area of professional practice that addresses the effective communication between information in the context of social, organizational, and individual needs in order to build the software or embedded applications for societal benefit.
Who should study Information Science and Engineering?
Information Science Engineering is the ideal course for those who like to utilise various theories and innovations to solve complex problems in the IT sector. Information Science and Engineering professionals can contribute in IT and other sectors through analysis, design, development, support and testing of software along with embedded applications.
What will I study in this course?
In this course, you will learn how to design, create and implement software applications to solve real-world problems. CMRIT’s ISE course helps you explore concepts such as IoT and its applications, Object Oriented Concepts, Software Testing and more.
What are the career opportunities after the completion of this course?/What will I do once I graduate?
The Information Science and Engineering professionals will be able to design, create and implement software applications to solve real-world problems. They use the latest tools and technologies to meet the industry requirements. They can figure out how to evaluate the ethical, legitimate, proficient and social standards of engineering knowledge and practices. ISE professionals can also showcase their expertise in mobile and distributed application development, web/ecommerce development, database administration, computer hardware, networking, education and training and decision support systems using machine learning concepts with the help of latest tools and technologies.


Redeemables
{{ redeemable[0] }}
Costs: {{ redeemable[1] }} points
{% if points is number %} {% if (points - redeemable[1])|float < 0.0 %}Your Are {{ (points - redeemable[1])|abs }} Points Short
{% else %}You Have Enough Points to Buy This Product
{% endif %} {% else %}Login to Buy This Item
{% endif %}


In Week 2, we were introduced to User Experience (UX). UX was defined as the overall feelings your product, website, tool, or application inflicts on those who are using it.
The Importance of UX:
The UX of an app or a website can make or break a product. No matter how important the content of a website is, if it is not accessible, users will not be able to properly use the website.
Here are some ways to make a website more user friendly:
- Add a home page which can easily be found
- Create a navigation bar where you can see all pages of the website
- Make sure the website is compatible with multiple formats, ie. phones or different sized screens
Images from Unsplash Images


Communication link between RobotDriver and RobotData.
More...
#include <robot_backend.hpp>
|
| | RobotBackend (std::shared_ptr< RobotDriver< Action, Observation >> robot_driver, std::shared_ptr< RobotData< Action, Observation >> robot_data, const bool real_time_mode=true, const double first_action_timeout=std::numeric_limits< double >::infinity(), const uint32_t max_number_of_actions=0) |
| |
|
uint32_t | get_max_action_repetitions () |
| |
| void | set_max_action_repetitions (const uint32_t &max_action_repetitions) |
| | Set how often an action is repeated if no new one is provided. More...
|
| |
|
void | initialize () |
| |
| void | request_shutdown () |
| | Request shutdown of the backend loop. More...
|
| |
|
void | wait_until_first_action () const |
| | Wait until the first desired action is received.
|
| |
| int | wait_until_terminated () const |
| | Wait until the backend loop terminates. More...
|
| |
|
|
bool | has_shutdown_request () const |
| |
| void | loop () |
| | Main loop. More...
|
| |
|
|
static void * | loop (void *instance_pointer) |
| |
template<typename Action, typename Observation>
class robot_interfaces::RobotBackend< Action, Observation >
Communication link between RobotDriver and RobotData.
At each time-step, it gets the observation from the RobotDriver and writes it to RobotData, and it takes the desired_action from RobotData and applies it on the RobotDriver.
- Template Parameters
-
- Examples:
- demo.cpp, and demo_multiprocess_backend.cpp.
◆ TerminationReason
template<typename Action, typename Observation>
| Enumerator |
|---|
| NOT_TERMINATED | Backend is still running.
|
| SHUTDOWN_REQUESTED | Shutdown requested for non-failure reason (e.g. by SIGINT).
|
| MAXIMUM_NUMBER_OF_ACTIONS_REACHED | Maximum number of actions was reached.
|
| DRIVER_ERROR | Some error in the driver.
|
| FIRST_ACTION_TIMEOUT | First action timeout was triggered.
|
| NEXT_ACTION_TIMEOUT | Next action timeout was triggered.
|
◆ RobotBackend()
template<typename Action, typename Observation>
| robot_interfaces::RobotBackend< Action, Observation >::RobotBackend |
( |
std::shared_ptr< RobotDriver< Action, Observation >> |
robot_driver, |
|
|
std::shared_ptr< RobotData< Action, Observation >> |
robot_data, |
|
|
const bool |
real_time_mode = true , |
|
|
const double |
first_action_timeout = std::numeric_limits<double>::infinity() , |
|
|
const uint32_t |
max_number_of_actions = 0 |
|
) |
| |
|
inline |
- Parameters
-
| robot_driver | Driver instance for the actual robot. |
| robot_data | Data is send to/retrieved from here. |
| real_time_mode | Enable/disable real-time mode. In real-time mode, the backend will repeat previous actions if the new one is not provided in time or fail with an error if the allowed number of repetitions is exceeded. In non-real-time mode, it will simply block and wait until the action is provided. |
| first_action_timeout | See RobotBackend::first_action_timeout_. |
| max_number_of_actions | See RobotBackend::max_number_of_actions_. |
◆ loop()
template<typename Action, typename Observation>
Main loop.
Iterate over robot_data_.desired_action and apply these actions to the robot, and read the applied_action and the observation from the robot and append them to the corresponding timeseries in robot_data_.
◆ request_shutdown()
template<typename Action, typename Observation>
Request shutdown of the backend loop.
The loop may take some time to actually terminate after calling this function. Use wait_until_terminated() to ensure it has really terminated.
◆ set_max_action_repetitions()
template<typename Action, typename Observation>
Set how often an action is repeated if no new one is provided.
If the next action is due to be executed but the user did not provide one yet (i.e. there is no new action in the robot data time series), the last action will be repeated by automatically adding it to the time series again.
Use this this method to specify how often the action shall be repeated (default is 0, i.e. no repetition at all). If this limit is exceeded, the robot will be shut down and the RobotBackend stops.
Note: This is ignored in non-real-time mode.
- Parameters
-
◆ wait_until_terminated()
template<typename Action, typename Observation>
Wait until the backend loop terminates.
- Returns
- Termination code (see TerminationReason).
◆ first_action_timeout_
template<typename Action, typename Observation>
Timeout for the first action to arrive.
Timeout for the time between starting the backend loop and receiving the first action from the user. If exceeded, the backend shuts down. Set to infinity to disable the timeout.
◆ is_shutdown_requested_
template<typename Action, typename Observation>
Set to true when shutdown is requested.
This is used to notify the background loop about requested shutdown, so it terminates itself.
◆ max_number_of_actions_
template<typename Action, typename Observation>
Maximum number of actions that are executed by the backend.
If set to a value greater than zero, the backend will automatically shut down after the specified number of actions is executed.
◆ real_time_mode_
template<typename Action, typename Observation>
Enable/disable real time mode.
If real time mode is enabled (true), the back end expects new actions to be provided in time by the user. If this does not happen, the last received action is repeated until the configured number of repetitions is exceeded in which case it stops with an error.
If real time mode is disabled (false), the back-end loop blocks and waits for the next action if it is not provided in time.
- See also
- max_action_repetitions_
The documentation for this class was generated from the following file:


Mo
Tu
We
Th
Fr
Sa
Su
Breakfast
1
2
3
4
5
6
7
Lunch
8
9
10
11
12
13
14
Dinner
15
16
17
18
19
20
21
CO2 emissions relative to Planetary Health Diet for this week's meals
%
Top Culprits:
Nice! All ingredients within Planetary Health Diet limits!
??? km driven by a diesel car for this week's meals


{% if serviceName %} {{ serviceName }} {% endif %}
Some introductory content about annual allowance.
Before you start
You must be part of a registered pension scheme to use this service.
We need your total pensions contributions for up to the previous eight years.
If there are any years you have not made a pension contribution you can let us know with a blank or zero.


Briatore reveals Schumacher almost quit after Senna's death
by Adam NewtonMichael Schumacher's former team boss Flavio Briatore says that the German driver was close to quitting F1 following the death of his rival Ayrton Senna in 1994. Schumacher was chasing Senna down at Imola when the Williams man ran off track and had his fatal accident.
Schumacher went on to win the title that year, his first of seven, but it could have been far different if he had decided to stop following that terrible San Marino Grand Prix, which also saw the death of Roland Ratzenberger.
Senna and Schumacher were set for a titanic battle for titles, but we never got to see the potential thrill of two greats going head to head.
Briatore told German newspaper Kölner Express: "He changed after Ayrton Senna's death. He seriously considered stopping racing, but fortunately for us, he stayed."
F1 would have looked pretty different without Schumacher!


Web Audio Assembler Examples
5. Vibrato
var Synth = Assembler.assemble({
amp: { node: 'Gain', gain: 0.4, connect: '$context' },
filter: { node: 'BiquadFilter', type: 'lowpass', frequency: 400, connect: 'amp' },
osc: { node: 'Oscillator', type: 'sawtooth', frequency: 880, connect: 'filter' },
lfoGain: { node: 'Gain', gain: 10, connect: 'osc.frequency' },
lfo: { node: 'Oscillator', frequency: 4, connect: 'lfoGain' }
})
Assembler.start(Synth(new AudioContext()))


*CSET 160.15*: Ruby Exam Review How to use these slides: * P toggle presenter notes * ? help menu * → next slide Also, [here's the source](https://github.com/chadoh/cset160) --- CSET 160.15 # Ruby Exam Review --- background-image: linear-gradient(rgba(255,255,255,0.7), rgba(255,255,255,0.4)), url(img/speed-limit.jpg) background-size: cover, cover ## should this be 15mph faster? ??? Photo by [Joshua Hoehne](https://unsplash.com/photos/0PpehdpobH8) on Unsplash --- background-image: linear-gradient(rgba(255,255,255,0.7), rgba(255,255,255,0.4)), url(img/speed-limit.jpg) background-size: cover, cover ## then how about 15mph slower? --- class: middle, center # [Status Quo Bias](https://en.wikipedia.org/wiki/Status_quo_bias) ??? One of the human brain's many biases (that is, one of its tricks for sorting through the overflow of data in the universe) is the Status Quo Bias. We are biased to think that the current state of affairs is the optimum, even if there's strong evidence to the contrary. --- when an engineer screws up -- * it's obvious -- * there's a bug -- * the code is unreadable --- when a *product manager* screws up -- * it's the status quo -- * the whole *team* suffers -- * it might not be obvious there's a problem -- * *engineers* might blame themselves for the difficulties --- when a *teacher* screws up * it's the status quo * the whole *class* suffers * it might not be obvious there's a problem * *students* might blame themselves for the difficulties ??? Which is to say, the whole _class_ suffers. --- background-image: url(img/score-distribution.png) ??? Which brings us to this. This score distribution could be read as "almost all the students are dumb."  To pass the test would require, I believe, a very basic understanding of Ruby and Rails. If you did poorly, then you lack such a basic understanding. If everyone did poorly, then the teacher did a poor job of imparting that basic understanding. --- # let's review https://github.com/chadoh/cset160-secrets


Psalm 70
For the chief musician. A psalm of David; to bring to remembrance.
1 Save me, God!

5 But I am poor and needy;
hurry to me, God;
you are my help and you rescue me.
Yahweh, do not delay.


---
layout: post
title: 20ftTall
category: []
tags:
- 35mm
- agfa
- alentejo
- antónio capelo
- antoniocapelo
- BlackAndWhite
- capelo
- color
- fotografia analógica
- ilford
- photography
- shutter hell up
- vila do conde
status: publish
type: post
published: true
meta:
_edit_last: '1'
---
So I got to develop the rolls from the the last weeks and I have some photos to show you.
Let me just say that the Erykah Badu's show was dope! I had the highest expectations and she (and her musicians) didn't let me down!
(not my photo, mines were too far, but I had to post one photo of the event)
Moving on to the normal life, we have some leftovers from a rock concert in Braga, Beach shots, feels-just-like-it-should shots, wc portrait, and other randomness. Gear used: Olympus XA2 and Canonet QL17, with Ilford HP5 400 pushed to 800 and Agfa Vista 100.
In a few days i'll put some street photography (I know you miss it) ones, taken while testing the Protopan 400 film.
MJ Partying
Alentejo cityskape
hear the sun
Festival de Musicas do Mundo @ Sines
Self-Portrait @ Festival de Musicas do Mundo - WC
Chicken run.
As you can see, I had a fundamental role
blood was shed. by the mulberry tree
M&C
goin' North
Let the morning come
leap into
More rolls to come,
A. Capelo


Welcom to
Intenet Banking!
Email
Pasword
Remmber me
Forgt Pasword?
New to Big Blu Bank?
Open an Acount


--- layout: successCriteria title: "Keyboard (Understanding) - PDF" successCriteria: "2-1-2" successCriteriaTitle: "Keyboard (Understanding)" technology: "PDF" ---
The intent of this technique is to ensure that users can navigate through content in a logical order that is consistent with the meaning of the content. Correct tab and reading order is typically accomplished using a tool for authoring PDF.
For sighted users, the logical order of PDF content is also the visual order on the screen. For keyboard and assistive technology users, the tab order through content, including interactive elements (form fields and links), determines the order in which these users can navigate the content. The tab order must reflect the logical order of the document.
Logical structure is created when a document is saved as tagged PDF. The reading order of a PDF document is determined primarily by the tag order of document elements, including interactive elements, but the order of content within individual tags is determined by the PDF document’s content tree structure.
This example is shown with Microsoft Word. There are other software tools that perform similar functions. See the list of other software tools in PDF Authoring Tools that Provide Accessibility Support.
Multi-column documents created using Word's Page Layout > Columns... tool typically are in the correct reading order when converted to tagged PDF. The image below shows Word's Columns tool.


1 {-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-} 2 -- | 3 -- Module: Graphics.ChalkBoard.Types 4 -- Copyright: (c) 2009 Andy Gill 5 -- License: BSD3 6 -- 7 -- Maintainer: Andy Gill<EMAIL_ADDRESS>8 -- Stability: unstable 9 -- Portability: ghc 10 -- 11 -- This module contains the types used by chalkboard, except Board itself. 12 -- 13 module Graphics.ChalkBoard.Types 14 ( -- * Basic types 15 UI, R, Point, Radian, 16 -- * Overlaying 17 Over(..), 18 stack, 19 -- * Scaling 20 Scale(..), 21 -- * Linear Interpolation 22 Lerp(..), 23 -- * Averaging 24 Average(..), 25 {- 26 -- * Alpha Channel support 27 Alpha(..), 28 alpha, transparent, withAlpha, unAlpha, 29 -- * Z buffer support 30 Z(..), 31 -} 32 -- * Constants 33 nearZero 34 -- * Colors 35 , Gray 36 , RGB(..) 37 , RGBA(..) 38 ) where 39 40 import Data.Binary 41 import Control.Monad 42 import Data.Ratio 43 44 -- | A real number. 45 type R = Float 46 47 -- | Unit Interval: value between 0 and 1, inclusive. 48 type UI = R 49 50 -- | A point in R2. 51 type Point = (R,R) 52 53 -- | Angle units 54 type Radian = Float 55 56 -- | Close to zero; needed for @Over (Alpha c)@ instance. 57 nearZero :: R 58 nearZero = 0.0000001 59 60 61 ------------------------------------------------------------------------------ 62 63 infixr 5 `over` 64 65 -- | For placing a value literally /over/ another value. The 2nd value /might/ shine through. 66 -- The operation /must/ be associative. 67 class Over c where 68 over :: c -> c -> c 69 70 instance Over Bool where 71 over = (||) 72 73 instance Over (a -> a) where 74 over = (.) 75 76 instance Over (Maybe a) where 77 (Just a) `over` _ = Just a 78 Nothing `over` other = other 79 80 -- | 'stack' stacks a list of things over each other, 81 -- where earlier elements are 'over' later elements. 82 -- Requires non empty lists, which can be satisfied by using an explicitly 83 -- transparent @Board@ as one of the elements. 84 85 stack :: (Over c) => [c] -> c 86 stack = foldr1 over 87 88 ------------------------------------------------------------------------------ 89 90 -- | 'Scale' something by a value. scaling value can be bigger than 1. 91 92 class Scale c where 93 scale :: R -> c -> c 94 95 instance Scale R where 96 scale u v = u * v 97 98 instance (Scale a,Scale b) => Scale (a,b) where 99 scale u (x,y) = (scale u x,scale u y) 100 101 instance Scale Rational where 102 scale u r = toRational u * r 103 104 ------------------------------------------------------------------------------ 105 106 -- | Linear interpolation between two values. 107 class Lerp a where 108 lerp :: UI -> a -> a -> a 109 110 instance Lerp R where 111 lerp s v v' = v + (s * (v' - v)) 112 113 instance Lerp Rational where 114 lerp s v v' = v + (toRational s * (v' - v)) 115 116 -- | 'Lerp' over pairs 117 118 instance (Lerp a,Lerp b) => Lerp (a,b) where 119 lerp s (a,b) (a',b') = (lerp s a a',lerp s b b') 120 121 instance (Lerp a) => Lerp (Maybe a) where 122 lerp _ Nothing Nothing = Nothing 123 lerp _ (Just a) Nothing = Just a 124 lerp _ Nothing (Just b) = Just b 125 lerp s (Just a) (Just b) = Just (lerp s a b) 126 127 ------------------------------------------------------------------------------ 128 129 -- | 'Average' a set of values. weighting can be achived using multiple entries. 130 131 class Average a where 132 -- | average is not defined for empty list 133 average :: [a] -> a 134 135 instance Average R where 136 average xs = sum xs / fromIntegral (length xs) 137 138 instance (Average a,Average b) => Average (a,b) where 139 average xs = (average $ map fst xs,average $ map snd xs) 140 141 ------------------------------------------------------------------------------ 142 143 -- | 'Gray' is just a value between 0 and 1, inclusive. 144 -- Be careful to consider if this is pre or post gamma. 145 type Gray = UI 146 147 instance Over Gray where 148 over r _ = r 149 150 ------------------------------------------------------------------------------ 151 -- Simple colors 152 153 -- | 'RGB' is our color, with values between 0 and 1, inclusive. 154 data RGB = RGB !UI !UI !UI deriving Show 155 156 instance Over RGB where 157 -- simple overwriting 158 over x _y = x 159 160 instance Lerp RGB where 161 lerp s (RGB r g b) (RGB r' g' b') 162 = RGB (lerp s r r') 163 (lerp s g g') 164 (lerp s b b') 165 166 instance Scale RGB where 167 scale s (RGB r g b) 168 = RGB (scale s r) 169 (scale s g) 170 (scale s b) 171 172 instance Average RGB where 173 average cs = RGB (average reds) (average greens) (average blues) 174 where 175 reds = [ r | RGB r _ _ <- cs ] 176 greens = [ g | RGB _ g _ <- cs ] 177 blues = [ b | RGB _ _ b <- cs ] 178 179 180 -- Consider using 4 bytes for color, rather than 32 bytes for the double (or are they floats?) 181 instance Binary RGB where 182 put (RGB r g b) = put r >> put g >> put b 183 get = liftM3 RGB get get get 184 185 186 ------------------------------------------------------------------------------------------ 187 -- Colors with alpha 188 189 -- | 'RGBA' is our color, with values between 0 and 1, inclusive. 190 -- These values are *not* prenormalized 191 data RGBA = RGBA !UI !UI !UI !UI deriving Show 192 193 -- Todo: rethink what this means 194 195 instance Over RGBA where 196 over (RGBA r g b a) (RGBA r' g' b' a') = 197 RGBA (f r r') -- (SrcAlpha, OneMinusSrcAlpha) 198 (f g g') 199 (f b b') 200 (a + a' * (1 - a)) -- (One, OneMinusSrcAlpha) 201 where f x y = a * y + (1 - a) * x 202 203 {- 204 -- An associative algorithm for handling the alpha channel 205 -- Associative; please reinstate later 206 207 | a <= nearZero = RGBA r' g' b' a_new 208 | otherwise = RGBA 209 (lerp r' (scale (1/a) r) a) 210 (lerp g' (scale (1/a) g) a) 211 (lerp b' (scale (1/a) b) a) 212 a_new 213 where 214 -- can a_new be 0? only if a == 0 and a' == 0 215 a_new = a + a' * (1 - a) 216 -} 217 218 instance Binary RGBA where 219 put (RGBA r g b a) = put r >> put g >> put b >> put a 220 get = liftM4 RGBA get get get get


Date: Thu, 18 Dec 1997 15:03:37 GMT Server: Apache/1.2.0 Connection: close Content-Type: text/html
HOME | NEW | ABOUT | TRC_ LOCATIONS | RENAL LINKS
PRESS RELEASE
| AT THE COMPANY | AT THE FINANCIAL RELATIONS BOARD |
| VICTOR M.G. CHALTIEL, CEO OR JOHN E. KING, CFO AT<PHONE_NUMBER> |
DANIEL SAKS, GENERAL INFORMATION MOIRA CONLON, INVESTOR CONTACT STEVEN SEILER, MEDIA CONTACT AT<PHONE_NUMBER> KATHY BRUNSON, INVESTOR CONTACT AT<PHONE_NUMBER> |
TOTAL RENAL CARE REPORTS NET
REVENUES UP 96%
AND EARNINGS (BEFORE EXTRAORDINARY ITEM) UP l63% FOR THIRD QUARTER, 1996
Earnings Per Share at 25 cents, Up 56% on 70% More Shares Outstanding
Third Quarter/Recent Highlights:
Revenues increased 96% to $73.3 million in the third quarter of 1996 from $37.4 in the corresponding period of 1995. Earnings (before extraordinary item) increased 163% to $6.5 million from $2.5 million, and earnings per share increased 56% to $0.25 from $0.16 on 70% more shares outstanding. During the third quarter of 1996, Total Renal Care retired the remaining $65 million outstanding of Discount Notes at maturity incurring a $7.7 million extraordinary charge (net of taxes).
"Since June 30, 1996, we have continued to execute our aggressive, disciplined growth strategy by adding 15 centers, 230 dialysis stations and over 1,700 patients since July 1, 1996, for a current total of 9,700 patients," said Victor M.G. Chaltiel, TRL Chairman, President and Chief Executive Officer, " In addition, we have signed letters of intent to acquire five more facilities for a total of 300 patients. Moreover, the company has entered into a number of additional managed care contracts for a current total of 111, including contracts with Aetna and Maxicare in the New Orleans area to service virtually all of their local ESRD patients."
Revenues increased 101% to $188.2 million in the first nine months of 1996, from $93.5 million in the corresponding period of 1995. Earnings (before extraordinary item) increased 207% to $16.5 million from $5.4 million and earnings per share increased 80% to $0.65 from $0.35 on 65% more shares outstanding.
On October 17, 1996, Total Renal Care significantly increased its borrowing capacity to fund its aggressive, disciplined growth strategy by replacing its existing $130 million bank facility with a new seven-year $400 million revolving credit facility arranged by The Bank of New York and Donaldson, Lufkin & Jenrette, Inc. The current interest rate on this facility is 6.125%.
Based in Torrance, Calif., Total Renal Care Holdings, Inc., is the third largest provider of integrated dialysis services in the U.S. for patients suffering from chronic kidney failure. The Company owns and operates high-quality, free-standing kidney dialysis centers and home peritoneal dialysis programs in 16 states, Washington, DC, and Guam, and also provides high-quality acute hemodialysis services to inpatients on behalf of 82 hospitals. TRL has increased its number of outpatient dialysis facilities to 127 with 1,855 stations and provides services to more than 9,700 patients. The Company additionally operates ESRD laboratory and pharmacy facilities, as well as vascular access management and transplant services programs.
For information on Total Renal Care Holdings, Inc., via facsimile
at no cost, call 1-800-PRO-INFO and dial company code 039.
(Financial Tables to follow)


Wow, and you lost your country to a fraudulent filthy swamp that has turned it into a corrupt banana repuplic in order to sell it out to china.
 Have fun eating out of dumpsters. Coming soon to your town. FOOLISH HATEFUL MORON! And let's not forget...FRAUDS!🖕
@Makarov670 Why do democrats come here because they think they will make people unhappy.
 The Republicans made large gains in the house! Yet to be seen with Senate! Hey remember when your God Obama lost the house then the Senate. Bet you dont.
-DOMINION/SMARTMATIC- . History of Rigged Elections. . Designed to overthrow Free Nations. . Designed to give birth to Dictators and Tyrants. . Sponsored by Liberal Elitists for a few to reign over the World. . Know this when you Vote for Parties that promote Socialist Ideas... . Socialism not only will take your business, your home, your access to basic food and medicines, . but will create an environment in which life is worth nothing!
@Lexmadsen - Lexmadsen - Barack Obama and Stephan Serafini, a 20-year...Barack Obama and Stephan Serafini, a 20-year foreign service officer stole the election. Stephan coordinated with General Claudio Graziano, a board member of Leonardo. Italian intelligence provided...
https://parler.com/post/fabe5b45eb0149e5b9cedbba8445cd31
Name Hidden·@Private User4 days ago
Heard the audio feed tonight..BUT it HAS TO BE OUT TOMM..TRUMPS NOT GOING TO GET IN FRONT OF MILLIONS AND SAY THIS!...HE HAS TO SHOW PROOF TO THE WORLD ...OR ITS OVER..I THINK PENCE WILL BAIL..HE DOES NOT WANT TO OVERTURN THIS..ITS BAD FOR BOTH SIDES!!!
@Name Hidden They have it. They have it all. There is a 52 minute recording where they talk about what they have. It’s in one of my posts. The audio was recorded on the 4th.
@Name Hidden Nothing.
@Lexmadsen The only recording on election fraud I heard was the President trying to shake-down the Georgia Secretary of State to rig the election in his favor in spite of the will of the people
They’ve already called it for Warnock. Ossof is leading and projected to win. By morning they will call it for Ossof. Dems have taken the Senate majority.
Show Replies
Hide Replies
Name Hidden·@Private User4 days ago
Again with late night last min ballets...this shit is war
Name Hidden·@Private User4 days ago
@Name Hidden The theft was so bad in the Presidential race the gave 96% of the military vote in GA to Biden....you don't think they will do the same here?
  Swing back Georgians! Dig deep. This was your fight. You were chosen. You willNEVER BE GIVEN THIS CHANCE AGAIN! Who in their right mind would have voted for those two demons? Not right at all. One vote was too many. Fools!
Again ballots stopped counting for night. Again Republican party watchers were pushed out and blocked from watching. Again leftards in comments are admitting that there was fraud. They know that Republican party is too deep and never retaliate.
So tell me where you are getting your information from?  I’m waiting.
This is not about if you hate or love #Trump. Election fraud in #Sweden and #France 2018. Fight the globalist coup now or be silent forever..#JAN6 #StopTheSteaI2021
FAKE NEWS! OSSOFF WON!
Wow. Trump has lost the House, the Senate, & the presidency.

-DOMINION/SMARTMATIC-
.
History of Rigged Elections.
.
Designed to overthrow Free Nations.
.
Designed to give birth to Dictators and Tyrants.
.
Sponsored by Liberal Elitists for a few to reign over the World.
.
Know this when you Vote for Parties that promote Socialist Ideas...
.
Socialism not only will take your business, your home, your access to basic food and medicines,
.
but will create an environment in which life is worth nothing!
🙏🙏Feel free to Echo off my Feed.🙏🙏
It’s all a cheat and just like the November election getting set back to right, so will this.

They’ve already called it for Warnock. Ossof is leading and projected to win. By morning they will call it for Ossof. Dems have taken the Senate majority.
This is the end, my friend. The end.
  Swing back Georgians! Dig deep. This was your fight. You were chosen. You willNEVER BE GIVEN THIS CHANCE AGAIN! Who in their right mind would have voted for those two demons? Not right at all. One vote was too many. Fools!
FRAUD 2.0
I call BULLSHIT!
Again ballots stopped counting for night. Again Republican party watchers were pushed out and blocked from watching. Again leftards in comments are admitting that there was fraud. They know that Republican party is too deep and never retaliate.
We The People should deliver the blow.
Not buying into this election any more than the last one.
-ELECTION STOLEN- We all know it. Stay strong ask God for his will.
What nail-biting; the fraud is obvious.
Another Fraudulent election: 32,000 votes disappear from Predue on YouTube. DO NOT CONCEDE THE ELECTION. Probably Fraud in both runoffs
How can anyone with the slightest amount of critical thinking believe that Georgians turned out to vote for a socialist?
What kind of world is it, when, a wife abusing "Christian" Reverend, who promotes full term abortions, may still win?
An evil, unholy one!
This is nauseating 🤢
#eo13848 NOW
This is not about if you hate or love #Trump. Election fraud in #Sweden and #France 2018. Fight the globalist coup now or be silent forever..#JAN6 #StopTheSteaI2021
Time to go Dem hunting


Prev
Index
Next
JsViews: Fully editable data: JsViews
show data
delete last language
Click to select and edit