What is Ember?
- A framework for creating web applications.
- An ecosystem for building web applications that utilize the framework.
The Ember 2.x Stack
-
Ember.js — MVC, routing URLs, rendering templates
-
Ember CLI — Command line build tools, server, add-ons
-
Ember Data – Ember's de-facto data store
-
Liquid Fire — Animations and transitions
-
List View — View renderer for large lists
-
Ember Inspector — Inspecting & debugging
Ember CLI is Ember
Installing Ember CLI
Requirements
You'll need the latest version of Node & NPM (https://nodejs.org/).
Installing
# install the cli client
$ npm install -g<EMAIL_ADDRESS># install bower
$ npm install -g bower
# we got it?
$ ember -v
Creating the app
$ ember new frontend
Created files
What did we get?
- app — most of our code'll go here
- app/router.js — define app URLs here
- config — configure Ember CLI
- ember-cli-build.js — configure build (think gulp, grunt)
Using Pods
Pods group related files into named folders.
Default is true
in Ember 2.x.
// No pods
controllers/meetups.js
models/meetup.js
routes/meetups.js
// With pods
meetups/controller.js
meetups/model.js
meetups/route.js
{
"disableAnalytics": false,
"usePods": true
}
Running the app
$ cd frontend
$ ember server
Concepts
Route
- Routes a URL to a template/component resource
- Provides a model to be passed to a controller (or component)
Adding a route
$ ember generate route meetups
or use generate short-hand
$ ember g route meetups
Specify the route's model
The model hook should return a Promise.
model() {
return [1, 2, 3];
}
Route renders the template
Upcoming meetups
{{#each model as |meetup|}}
{{meetup}}
{{/each}}
Controllers
- Wiring between Route and Template.
- Created automatically even if you don't define one.
- Soon to be fully replaced by Components.
$ ember g controller meetups
Models
Let's get some data into our app
$ ember g model meetup title:string createdAt:date updatedAt:date
Prepping data for the app
Adapters - Connection to datasource
$ ember g adapter application
Serializer - Translates JSON objects into Ember objects
$ ember g serializer application
Adapter Scope
Change our namespace since our API is at /api
import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend({
namespace: 'api'
});
Serializing data
Special case until Ember Data 2.x stable release:
import Ember from 'ember';
import DS from 'ember-data';
var underscore = Ember.String.underscore;
export default DS.JSONAPISerializer.extend({
keyForAttribute: function(attr) {
return underscore(attr);
},
keyForRelationship: function(rawKey) {
return underscore(rawKey);
}
});
Proxying requests
Start the server with the --proxy
flag to have all requests proxy through to your dev server.
$ ember server --proxy http://localhost:3000
OR in .ember-cli
"proxy": "http://localhost:3000"
Using Ember Data
Use the service on this.store
to retreive data via promises.
model() {
return this.store.findAll('meetup');
}
Components
Reusable HTML controls
$ ember g component meetup-item


Coding: I started coding in a language called just basic back in 2011. That is when i started to like coding and moved on to learn many other languages like java, C++ and python.
Video Games: I have been playing games since i was a little kid. Started playing super mario on nintendo gameboy and now i play on PS4 and pc. It is because of games I started to develop other interest like my interest in technology (hardware/software).
Tennis: In highschool my friends all used to play tennis. One day i decided to join to tennis team so i could also play with them. I really started to enjoy playing tennis and played almost everyday with my friends. I even made the vasity team.


Notebooks
Story: The hartebeest resembles the Mantis
The hartebeest resembles the Mantis
Title
The hartebeest resembles the Mantis
Collection
Summary
The hartebeest's head resembles that of |kaggen (the Mantis), so it feels itself to be 'Mantis's thing'. Some remarkable superstitions concerning the Hartebeest, whose head is said to resemble that of the Mantis; and also a curious charm made from the foot of the Hartebeest, and used by Bushman women for their children as a protection against the Mantis (L V.-6. 4414 rev.-4418 rev.).
Comments
1) See The hartebeest and the eland belong to the Mantis and More about the hartebeest and A mother's prohibitions with regard to the hartebeest and her child and The Mantis turned into a hartebeest, 2) This story is found in Book V-6
Contributors
Date
19 March 1875
Categories
Keywords
hartebeest (resembles |kaggen) , hartebeest (is |kaggen's thing) , hartebeest (its head resembles |kaggen's) , hartebeest (|xam beliefs regarding) , |kaggen (the Mantis) , |kaggen (and the hartebeest) , |kaggen (the hartebeest resembles) , |kaggen (the hartebeest is his thing) , |kaggen (his things)
Story Pages
4414v


pnmmargin(1) pnmmargin(1) NAME pnmmargin - add a border to a portable anymap SYNOPSIS pnmmargin [-white|-black|-color colorspec] size [pnmfile] DESCRIPTION Reads a portable anymap as input. Adds a border of the specified number of pixels, and produces a portable anymap as output. OPTIONS You can specify the border color with the -white, -black, and -color flags. If no color is specified, the program makes a guess. SEE ALSO pnm(5) BUGS It's a script. Scripts are not portable to non-Unix environments. AUTHOR Copyright (C) 1991 by Jef Poskanzer. 9 January 1991 pnmmargin(1)


Home
About
Contact
Contact.
Get in touch.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Around the web
Email
Instagram
Twitter
Facebook
LinkedIn
Serving clients since 2011.
instagram
linkedin
øculto studio
personal portfolio


GIF Search Engine
Search for the best GIFs online!
Using GIPHY's API, GIF Search Engine will get you what you are looking for.
Search
Clear


Duke of Cambridge praises Centrepoint on its 50th anniversary
William attended a gala marking the milestone, where he met celebrities including Rita Ora and members of Duran Duran.
The Duke of Cambridge has said it is “upsetting” that youth homelessness has not been eradicated but praised a charity for its work over the last five decades.
William was speaking at the Centrepoint 50th Anniversary Gala, where there were performances by Duran Duran and Rita Ora.
The duke, who was wearing a dark green dinner jacket and black bow tie, told attendees at the Roundhouse in north-west London on Wednesday evening that he had been inspired to support the charity by his mother Diana, Princess of Wales.

William told guests he hoped the charity would not be needed in another 50 years.
He added: “It’s upsetting that in 2019 we still have not managed to end youth homelessness and more young people are being supported by Centrepoint than ever before.”
The gala aimed to promote the achievements of people supported by Centrepoint, highlight the issues they face and encourage supporters to help change the story for homeless young people, the charity said.
The duke has been the patron of the charity – which began in the basement of St Anne’s Church in Soho, central London, in 1969 – since 2005.
Ora told the duke she loved his suit while presenter Claudia Winkleman said she was “too creaky” when he asked her why she did not to dance in the show.
Strictly judge Shirley Ballas, who said Centrepoint was close to her heart, added the duke told her that his wife Kate ”loved” the show and his mother-in-law was also a fan.
Before the gala, William met a group of young people who told him how their lives have been transformed by the charity.
William officially opened Centrepoint’s new accommodation for apprentices – Apprenticeship House – in south London after sitting down for a chat with some of its residents.
The building has been transformed by the charity into a seven-bedroom shared home for young people on apprenticeship programmes, and aims to support them in their journey to independent living.
The duke also unveiled a plaque to celebrate the charity’s first house provided for young people in combination with apprentice schemes.
Centrepoint supports around 15,000 homeless young people a year, offering them accommodation, health support and life skills to get them back into education, training and employment.


Brooklyn Mirage
set times
Main act times:
from 01:30 until 03:00
- This page shows you the set times of various clubs
- Music venues often don't publish the set times as they want you to arrive early to buy more drinks
- At every Facebook Event page, lots of user ask for the set times, this page aims to answer this question
- The data is user-generated, you can submit your own times


HUMCO CHARCOAL ACTIVATED- activated charcoal powder
Humco Holding Group. Inc.
Disclaimer: This drug has not been found by FDA to be safe and effective, and this labeling has not been approved by FDA. For further information about unapproved drugs, click here.
If possibl;e, call a Poison Control Center, emergency facility, or health professional for help before using this product. If help cannot be reached quickly, follow the directions in this label. Read the warnings and directions as soon as you buy this product. Insert emergency phone number(s) in space proviedd on the label.
Poison Control Center: 1-800-222-1222
Emergency Medical Facility: ____________________
Health Professional: _____________________
Do not use if Tamper Evident Seal imprinted "Sealed for Your Protection" is broken or missing. This product is sealed with either a shrink band around the cap or foil seal under cap.
In case of accidental overdose, seek professional assistance or contact a Poison Control Center immediately.
When Activated Charcoal is indicated for use, give 3 to 4 heaping tablespoonfulls (20 to 30 g) mixed in a minimum of 8 ounces of liquid or as directed by a health professional. If an emergency, fill this bottle with water.
Mix well and have poison victim drink all of this mixture. Repeat dose immediately, if possible. If previous attempts to contact a poison control center, emergency medical center or health professional were unsuccessful, continue trying. If possible save the container of poison.
When Activated Charcoal is indicated, the usual dose is as follows:
|
HUMCO CHARCOAL ACTIVATED
activated charcoal powder | ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
|
| Labeler - Humco Holding Group. Inc. (825672884) |
| Establishment | |||
| Name | Address | ID/FEI | Business Operations |
|---|---|---|---|
| Humco Holding Group, Inc. | 825672884 | manufacture(0395-0527) |


Secure Shell (SSH) is a cryptographic client-server protocol for secure data exchange, remote command execution,
and other secure network services between two computers that connects, via a secure channel over an
insecure network. Lucena et al [67] suggest the MAC field for carrying messages up to 160 bits per SSH PDU. To simulate the randomness of the MAC, the embedded messages are previously compressed and then encrypted
(Table 10). Another way is intermediate nodes to intercept the SSH traffic and inserts an additional encrypted
message (up to 20B) at the beginning of the already encrypted payload. A 4 byte “magic” number at the beginning
marks the presence of a hidden message. Hidden message can be carried in the Random padding field [93]
also, with length up to 255B.


[dscrdeql] <SwimedDragon> Maybe he will again tomorrow
[dscrdeql] <Steve10> Yeah it didn't fluctuate as much as it has
[dscrdeql] <SwimedDragon> Still no clue to who it is? Or his wallet adress?
[dscrdeql] <Jellysmash> no...don't know
[dscrdeql] <Jellysmash> they must of had a very big bag to begin with
[dscrdeql] <Jellysmash> nice of them to airdrop on us
[dscrdeql] <SwimedDragon> Yeah, but I'm still curious who it is. Maybe he's even in here looking at us haha
[dscrdeql] <SwimedDragon> Hmmm, where is this secret room?
[dscrdeql] <SwimedDragon> I can't find it
GatewayBOT15-Aug-18 11:55 AM
[dscrdeql] <edsky> hi guys, how do I add EQLI to agama native mode please?
[dscrdeql] <ghost> why naitive?
[dscrdeql] <edsky> any @Moderators have ze answer
[dscrdeql] <edsky> cause that where I manage all my KMD
[dscrdeql] <edsky> I have a few different addresses
[dscrdeql] <edsky> I thought would be easier
[dscrdeql] <CombatWombat-Mod> I still use litemode @edsky
[dscrdeql] <edsky> but if lite is easier to setup i'll go with that
[dscrdeql] <ghost> I go to light mod through KMD
in agama - activate coin
add an equalizer
[dscrdeql] <CombatWombat-Mod> with native mode I could not figure out how to add my key
[dscrdeql] <CombatWombat-Mod> I think one of the founders should be able to help you with this though.. they are much better with agama
[dscrdeql] <edsky> i'll use the lite for the interim I'm going to buy some EQLI
[dscrdeql] <CombatWombat-Mod> with litemode i just put in my pass phrase and im set .. i tried native mode (when we were having wallet issues) but could not figure out how to put in my passphrase
[dscrdeql] <edsky> native mode is weird in agama no seed
[dscrdeql] <edsky> all stored in wallet.dat file
[dscrdeql] <yamakashy> guys where is based the project Costa rica ?
[dscrdeql] <CombatWombat-Mod> @yamakashy The first house will be built in Puerto Rico
[dscrdeql] <SwimedDragon> I know they've said where in the voice channel once but I forgot. I'm not good on names
[dscrdeql] <CombatWombat-Mod> yes not exactly sure where
[dscrdeql] <CombatWombat-Mod> just know its in Puerto rico
[dscrdeql] <SwimedDragon> Anyone else's discord acting a bit strange?
[dscrdeql] <CombatWombat-Mod> yeah discord has been playing up lately but its going ok right now
[dscrdeql] <Podmaster> nah might just b u
[dscrdeql] <SwimedDragon> It doesn't remove notification when I scroll to current chat, and it keeps things as unread
[dscrdeql] <CombatWombat-Mod> @SwimedDragon at the top can you click mark as read?
[dscrdeql] <SwimedDragon> Yeah, but sometimes it goes back to unread
[dscrdeql] <CombatWombat-Mod> ahh not sure try restarting discord?
[dscrdeql] <SwimedDragon> Yeah, alreadyd did that but it's a small thing, nothing big
[dscrdeql] <CombatWombat-Mod> discord was playing up earlier with bots... most groups had problems
[dscrdeql] <edsky> @CombatWombat-Mod thanks mate I got it sorted
[dscrdeql] <CombatWombat-Mod> @edsky on native?
[dscrdeql] <edsky> no lite
[dscrdeql] <CombatWombat-Mod> ahh ok lol if you figure out native let me know @edsky
[dscrdeql] <edsky> I've had too many beers to work out native


@()
@main("Calculate contract rate and hours") {
To work out a roughly how many hours and days you will most likely be working as a contractor, ie invoicable hours per year.
To work out a rough contracting rate based on your existing permanent salary and a few other factors.
To give an idea how much you could earn on a specific rate per year.
With a quick rough comparison to a permanent salary.
How much does actually an extra 25 per day mean? How does that change my annual revenue/income? Will a three weeks delay negate the difference?


You are logged in.
/home
/@da99
/!4567
/nowhere
(c) 2012-2016 megauni.com. Some rights reserved.
All other copyrights belong to their respective owners, who have no association to this site:
Logo font: Aghja
Palettes: dvdcpdshari_foru


Boilerplate Created by Jeremy Barbedienne
>> 'coucou' should aprear in the console, if not JS is not working, please check index.js 👀


kendall Jenner
Cheif Authority
View Profile
Logout
Toggle navigation
Account Information
1. Personal Detail
Full Name
Occupation
Company Name
Phone No.
2. Address
Address
City
State
Postcode
3. Social Links
Linkedin
Facebook
Twitter
Instagram
Save Changes
Copyrights © 2019 Arizona DUI Services - All Rights Reserved
Privacy Policy
|
Terms & Conditions


A skilled and experienced programmer with knowledge in various coding front-end and back-end languages,
I am also adept in the creation and maintenance of various types of databases, as well as mobile and software development.
I am a self taught artist, which coupled with my experience in design, I am knowledgeable in
the design and creation process of UI (User Interface) and UX (User Experience) design.
As a hobby, I enjoy building and over-clocking computers, as well as
the development and maintenance of web-sites and forums for my online guild and gaming community.
I enjoy moderating forums, being a team leader and organizing group interaction.
I have been immersed in digital culture since youth, with my constant desire in knowing the next new tech,
I am a frequent lurker on Tom's Hardware, cnet, PCWorld, metacritic and much more.
As an avid gamer, I have also led multiple guilds and raids in online games,
but also enjoy various outdoor activities during server downtime.


{{include "layouts/head" }}
{{include "layouts/menu" }}
{{template "content" .}}
{{include "layouts/footer"}}


Commands
All
Search
Keys
Webhooks
Channels
Connection
Replication
Scripting
Server
{{ range $i, $name := .SortedCommands }}
{{$name}}
{{ (index $.Commands $name).Summary }}
{{ end }}


service layer is a bundle of all possible business logic operations, such rolling out Elastic Search major updates to interacting with repositories.
this package could be extracted as a module and deployed separately, at compile time all dependencies will be resolved, at runtime only global shared hibernate session is needed.
this package is playing a major roll as it is an


Publications
2023
- JAIRFlexiBO: A Decoupled Cost-Aware Multi-Objective Optimization Approach for Deep Neural Networks 2023 [arXiv]
2022
- AutoMLGetting the Best Bang For Your Buck: Choosing What to Evaluate for Faster Bayesian Optimization In First Conference on Automated Machine Learning (Late-Breaking Workshop) 2022 [HTML]
- LPI
2020
- arXivEnsembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural Networks Against Adversarial Attacks 2020 [arXiv]
2019
- IEEE DSNA Multiversion Programming Inspired Approach to Detecting Audio Adversarial Examples In 2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN) 2019 [HTML]
2014
- A Generalized Fuzzy T-norm Formulation of Fuzzy Modularity for Community Detection in Social Networks In Advance Trends in Soft Computing 2014 [HTML]
- FUZZ-IEEEFuzzy community detection in social networks using a genetic algortihm In 2014 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE) 2014 [HTML]
- IEEE TFSQuadratic Program-Based Modularity Maximization for Fuzzy Community Detection in Social Networks IEEE Transactions on Fuzzy Systems 2014 [HTML]


Jose F. Gomez
Front-End Ninja
17 March 2019
Featured Work
The Gomez Bunch Worldwide LLC
https://gomezbunchworldwide.com
The San Antonio Knight Football Team
https://sanantonioknights.com/
Sgt Jo's Auto Repair & Restoration
https://www.facebook.com/SgtJosTowingRepair/


- READ_TIMEOUT - Static variable in class com.iasmar.rome.configuration.NetworkConfig
-
- RecyclerViewHelper<T extends android.support.v7.widget.RecyclerView.ViewHolder,S extends ModulesHolder> - Class in com.iasmar.rome.ui.views.custom.recyclerview
-
Created by asmar on 02/7/2018.
- RecyclerViewHelper(RecyclerView, BaseAdapter<T, S>, int) - Constructor for class com.iasmar.rome.ui.views.custom.recyclerview.RecyclerViewHelper
-
- registerIdleTransitionCallback(IdlingResource.ResourceCallback) - Method in class com.iasmar.rome.util.testing.SimpleCountingIdlingResource
-
- RemoteEngineersDataSource - Interface in com.iasmar.rome.data.repositories.engineers
-
Created by Asmar on 01/7/2018.
- replace(String, String, String) - Static method in class com.iasmar.rome.util.GeneralUtils
-
- replaceData(S) - Method in class com.iasmar.rome.ui.views.base.BasePagerAdapter
-
- replaceData(S) - Method in class com.iasmar.rome.ui.views.custom.recyclerview.BaseAdapter
-
- replaceData(S, boolean) - Method in class com.iasmar.rome.ui.views.custom.recyclerview.RecyclerViewHelper
-
- replaceFragment(BaseFragment, int, String, Bundle) - Method in class com.iasmar.rome.ui.views.base.BaseActivity
-
Replace the current view to the new one.
- replaceFragment(FragmentManager, Fragment, int, String, Bundle) - Static method in class com.iasmar.rome.util.ViewUtils
-
Replace the current view to the new one.
- requireNonNull(T, String) - Static method in class com.iasmar.rome.util.ObjectHelper
-
Ensures that an object reference passed as a parameter to the calling method is not null.
- requireNonNull_nonNull() - Method in class com.iasmar.rome.util.ObjectHelperTest
-
Require non null non null object.
- requireNonNull_null() - Method in class com.iasmar.rome.util.ObjectHelperTest
-
Require non null null object.
- resetFragmentView() - Method in class com.iasmar.rome.ui.views.base.BaseFragment
-
reset the fragment view means reset fragment as new.
- resetFragmentView() - Method in class com.iasmar.rome.ui.views.main.engineers.EngineersFragment
-
reset the fragment view means reset fragment as new.
- resetFragmentView() - Method in class com.iasmar.rome.ui.views.main.schedules.SchedulesFragment
-
reset the fragment view means reset fragment as new.
- RETRY_ON_CONNECTION_FAILURE - Static variable in class com.iasmar.rome.configuration.NetworkConfig
-
Configure this client to retry or not when a connectivity problem is encountered.
- RomeApplication - Class in com.iasmar.rome.app
-
Created by Asmar on 01/7/2018.
- RomeApplication() - Constructor for class com.iasmar.rome.app.RomeApplication
-
- rotateOrientation(Activity) - Static method in class com.iasmar.rome.TestUtils
-


{% extends 'layout-lab-3-diabetes.html' %} {% block pageTitle %} About erythromycin - NHS.UK {% endblock %} {% block beforeContent %} {% endblock %} {% block content %}
Erythromycin is an antibiotic.
It's widely used to treat chest infections, such as pneumonia, skin problems, such as acne and rosacea, dental abscesses, and sexually transmitted infections.
Erythromycin is used in children, often to treat ear infections or chest infections.
The medicine is available on prescription as tablets, capsules, or a liquid that you drink.
It's also available as a skin solution to treat skin infections like acne. It can be given by injection, but this is usually only done in hospital.
Page last reviewed: 8 August 2017
Next review due: 8 August 2020


More celebs join Michelle Obama’s voter outreach drive
NEW YORK (AP) - Election Day is over, but Michelle Obama is still trying to get out the vote.
The former first lady announced that Selena Gomez, Liza Koshy, Shonda Rhimes, Megan Rapinoe, Tracee Ellis Ross and Kerry Washington have signed on as co-chairs of the national organization When We All Vote .
Obama is already a co-chair, along with Lin-Manuel Miranda, Faith Hill, Tom Hanks and wife Rita Wilson, and basketball star Chris Paul.
When We Vote, a nonprofit, describes itself as a nonpartisan group dedicated to increasing voter participation. The announcement Thursday marks a year until the 2020 elections, which includes the presidential race.
The organization was founded in 2018.
Hanks said “registering new voters is an act of hope and taking part in the American idea.” He added that voting guarantees the blessings of “liberty for the grandkids.”
This story has been corrected to delete incorrect reference that the 2020 general elections are happening a year to the date of Thursday.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


| PostgreSQL 9.6.15 Documentation | |||
|---|---|---|---|
| Prev | Up | Appendix E. Release Notes | Next |
Release date: 2016-10-27
This release contains a variety of fixes from 9.6.0. For information about new features in the 9.6 major release, see Section E.16.
A dump/restore is not required for those running 9.6.X.
However, if your installation has been affected by the bugs described in the first two changelog entries below, then after updating you may need to take action to repair corrupted free space maps and/or visibility maps.
Fix WAL-logging of truncation of relation free space maps and visibility maps (Pavan Deolasee, Heikki Linnakangas)
It was possible for these files to not be correctly restored during crash recovery, or to be written incorrectly on a standby server. Bogus entries in a free space map could lead to attempts to access pages that have been truncated away from the relation itself, typically producing errors like "could not read block XXX: read only 0 of 8192 bytes". Checksum failures in the visibility map are also possible, if checksumming is enabled.
Procedures for determining whether there is a problem and repairing it if so are discussed at https://wiki.postgresql.org/wiki/Free_Space_Map_Problems.
Fix possible data corruption when pg_upgrade rewrites a relation visibility map into 9.6 format (Tom Lane)
On big-endian machines, bytes of the new visibility map were written in the wrong order, leading to a completely incorrect map. On Windows, the old map was read using text mode, leading to incorrect results if the map happened to contain consecutive bytes that matched a carriage return/line feed sequence. The latter error would almost always lead to a pg_upgrade failure due to the map file appearing to be the wrong length.
If you are using a big-endian machine (many non-Intel architectures
are big-endian) and have used pg_upgrade to upgrade
from a pre-9.6 release, you should assume that all visibility maps are
incorrect and need to be regenerated. It is sufficient to truncate
each relation's visibility map
with contrib/pg_visibility's
pg_truncate_visibility_map()
function.
For more information see
https://wiki.postgresql.org/wiki/Visibility_Map_Problems.
Don't throw serialization errors for self-conflicting insertions in INSERT ... ON CONFLICT (Thomas Munro, Peter Geoghegan)
Fix use-after-free hazard in execution of aggregate functions using DISTINCT (Peter Geoghegan)
This could lead to a crash or incorrect query results.
Fix incorrect handling of polymorphic aggregates used as window functions (Tom Lane)
The aggregate's transition function was told that its first argument and result were of the aggregate's output type, rather than the state type. This led to errors or crashes with polymorphic transition functions.
Fix COPY with a column name list from a table that has row-level security enabled (Adam Brightwell)
Fix EXPLAIN to emit valid XML when track_io_timing is on (Markus Winand)
Previously the XML output-format option produced syntactically invalid tags such as <I/O-Read-Time>. That is now rendered as <I-O-Read-Time>.
Fix statistics update for TRUNCATE in a prepared transaction (Stas Kelvich)
Fix bugs in merging inherited CHECK constraints while creating or altering a table (Tom Lane, Amit Langote)
Allow identical CHECK constraints to be added to a parent and child table in either order. Prevent merging of a valid constraint from the parent table with a NOT VALID constraint on the child. Likewise, prevent merging of a NO INHERIT child constraint with an inherited constraint.
Show a sensible value in pg_settings.unit for min_wal_size and max_wal_size (Tom Lane)
Fix replacement of array elements in jsonb_set()
(Tom Lane)
If the target is an existing JSON array element, it got deleted instead of being replaced with a new value.

Fix logical WAL decoding to work properly when a subtransaction's WAL output is large enough to spill to disk (Andres Freund)
Fix dangling-pointer problem in logical WAL decoding (Stas Kelvich)
Round shared-memory allocation request to a multiple of the actual huge page size when attempting to use huge pages on Linux (Tom Lane)
This avoids possible failures during munmap()
on systems
with atypical default huge page sizes. Except in crash-recovery
cases, there were no ill effects other than a log message.
Don't try to share SSL contexts across multiple connections in libpq (Heikki Linnakangas)
This led to assorted corner-case bugs, particularly when trying to use different SSL parameters for different connections.
Avoid corner-case memory leak in libpq (Tom Lane)
The reported problem involved leaking an error report
during PQreset()
, but there might be related cases.
In pg_upgrade, check library loadability in name order (Tom Lane)
This is a workaround to deal with cross-extension dependencies from language transform modules to their base language and data type modules.
Fix pg_upgrade to work correctly for extensions containing index access methods (Tom Lane)
To allow this, the server has been extended to support ALTER EXTENSION ADD/DROP ACCESS METHOD. That functionality should have been included in the original patch to support dynamic creation of access methods, but it was overlooked.
Improve error reporting in pg_upgrade's file copying/linking/rewriting steps (Tom Lane, Álvaro Herrera)
Fix pg_dump to work against pre-7.4 servers (Amit Langote, Tom Lane)
Disallow specifying both --source-server and --source-target options to pg_rewind (Michael Banck)
Make pg_rewind turn off synchronous_commit in its session on the source server (Michael Banck, Michael Paquier)
This allows pg_rewind to work even when the source server is using synchronous replication that is not working for some reason.
In pg_xlogdump, retry opening new WAL segments when using --follow option (Magnus Hagander)
This allows for a possible delay in the server's creation of the next segment.
Fix contrib/pg_visibility to report the correct TID for a corrupt tuple that has been the subject of a rolled-back update (Tom Lane)
Fix makefile dependencies so that parallel make of PL/Python by itself will succeed reliably (Pavel Raiskup)
Update time zone data files to tzdata release 2016h for DST law changes in Palestine and Turkey, plus historical corrections for Turkey and some regions of Russia. Switch to numeric abbreviations for some time zones in Antarctica, the former Soviet Union, and Sri Lanka.
The IANA time zone database previously provided textual abbreviations for all time zones, sometimes making up abbreviations that have little or no currency among the local population. They are in process of reversing that policy in favor of using numeric UTC offsets in zones where there is no evidence of real-world use of an English abbreviation. At least for the time being, PostgreSQL will continue to accept such removed abbreviations for timestamp input. But they will not be shown in the pg_timezone_names view nor used for output.
In this update, AMT is no longer shown as being in use to mean Armenia Time. Therefore, we have changed the Default abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.


Home
Create New Contract
Architect Account:
Where is my account?
Contract Time:
How many hours should it take to complete?
Contract Value:
What is Ethereum?
Category:
Programming
Site Analysis
Schematic Design
Engineering System Coordination
Building Cost Analysis
Code Research
Design Development
Construction Documents
Specifications and Material Research
Documents Checking and Coordination
Choosing a category
Architect's Proffesional Statement:
Browse Contracts


Data Sheet
Cookies stand Summary
Add New Branch
Branch Name
Maximum Customer
Minimum Customer
Avg Cookies


Youth Cong stages protest against Centre over Maha
by PTIYouth Congress activists staged a demonstration near the Parliament House on Monday against the BJP's "illegal and undemocratic" move to form government in Maharashtra.
There were several questions over the manner in which the Bharatiya Janata Party staked a claim for power and was allowed to form government in Maharashtra and it was clear that rules and democratic norms were violated, IYC president Srinivas B V said.
The activists also torched an effigy of Prime Minister Narendra Modi during the protest, Indian Youth Congress (IYC) media in-charge Amrish Ranjan Pandey said.
Hearing a plea moved by the Shiv Sena-NCP-Congress combine against the Maharashtra government's decision to swear-in BJP's Devendra Fadnavis as chief minister, the Supreme Court on Monday said it will give its order on the matter on Tuesday.
"By resorting to such illegal and undemocratic actions the BJP is killing the dignity of democracy in the country. Autocratic unilateral actions on the part of BJP has shown that it can go to any extent to remain in power," Srinivas alleged.
The protesters tried to march towards the Parliament House but were stopped at a barricade and detained by the police. They were released later from Mandir Marg police station.


Add to Cydia or Add to Sileo, Cydia should work better but Sileo also works (as long as Coolstar doesn't remove web depictions).
Online, message @Flipp3rrr on Twitter for more information and help.
This repo has been made with a tutorial by Winneon. I've also read the code of PinPal's repo at https://pinpal.github.io/


Philadelphia dance studio offers father-daughter ballet dancing
by Morgan PhillipsA Philadelphia dance studio is bringing fathers and father figures out of their comfort zones with a Daddy and Me dance class, in which men participate with their little girls.
E’Chappe Dance Arts hosts the two-hour class, which combines ballet with yoga.
Video showing local fathers and daughters taking part in the “BOGA” class has circulated online, with celebrities including Jennifer Garner and Kristen Bell doing some reposting. “Dads are the best. #TutuTuesday on a Monday,” Garner posted.
MCDONALD'S WORKER FILES CLASS-ACTION LAWSUIT OVER SEXUAL HARRASSMENT CLAIMS
“There are some amazing papas out there!!!!” said Bell.
Filmmaker Ava Duvernay tweeted out the clip as well. "I miss my Dad. He would have done this for me," she said. "To all the many, many millions of brothers out there being great, thank you."
“I can’t even believe it,” studio owner Erin Lee told Fox 29 of the sudden attention. “I am ecstatic.”
“This is what I care about,” Lee added. “Good dads being highlighted. This is the part that’s amazing for me.”
CLICK HERE TO GET THE FOX NEWS APP
The classes are open to children ages 4-8, and no dance experience is necessary.


fun readBoolean(key: String, defaultBooleanValue: Boolean = false): Boolean
Reads an Boolean from SharedPreferences. If no value is found the method returns false by default
key
- the key provided to find the stored value
Return
Boolean
the value saved to SharedPreferences of type Boolean


Skylight should install and launch automatically. To open Skylight when it’s not running, you may double-click the Skylight icon on your desktop.
To open Skylight, you may double click Skylight icon in your Applications folder, or click the Skylight icon in your Launchpad.
Because Skylight launches at user login by default, a prompt of “Skylight wants access to control System Events” is expected on macOS 10.14 or newer. You can change this setting later in the Skylight preference settings.
The process of making the AppImage file executable is required only for the first launch. After that, you could open Skylight by simply double click on Skylight.AppImage.


Starlight
Start Game
Credits
Music
Sound
For best performance,
play this game in
Google Chrome
!
Created by
Stephen Haney
from scratch in 48 Hours,
For
Ludum Dare
I hope you have a great time exploring!
Thanks to:
Amazing Girlfriend
and Imagineer in Chief:
Kayla Celestial
Textures Used in Planets:
Texture
Texture
Texture
Texture
Texture
Texture
This game is open source:
github
×


Scroller is a virtual rendering plug-in for DataTables which allows large datasets to be drawn on screen every quickly. What the virtual rendering means is that only the visible portion of the table (and a bit to either side to make the scrolling smooth) is drawn, while the scrolling container gives the visual impression that the whole table is visible. This is done by making use of the pagination abilities of DataTables and moving the table around in the scrolling container DataTables adds to the page. The scrolling container is forced to the height it would be for the full table display using an extra element.
Scroller is initialised by simply including the
letter
S
in the
domDT
for the table you want to have this feature
enabled on. Note that the
S
must come after the
t
parameter in
domDT
.
Key features include:


GIGANTIC BOLIVIAN ARCHITECTURAL DIAGRAMS
A Thrilling Yarn by Frank Key
I. September 1894
I had been marooned on the island for eleven weeks when I discovered the gigantic Bolivian architectural diagrams, rolled into a metal canister and wedged in a narrow crevice between two rocks. Taking a swig from my bag of turtle's blood, I squatted on the ground and removed the diagrams from the canister. There were about a dozen large sheets, rather frayed around the edges but perfectly legible. The top left corner of each sheet had been stamped with an official device of the Bolivian administration, showing an escutcheon, a ziggurat, the helmet of a conquistador, the hand of God, and abbreviations in neat italic lettering. The signature of what I supposed to be a petty official had been scratched across each of the stamps in mauve ink.
Munching a whelk, I turned my attentions to the diagrams themselves. They were fearfully complicated. I am no architect, and at first all I could make out were miriad lines meeting at angles and criss-crossing each other seemingly at random. Most of the diagrams had been subjected to revision, and there was much evidence of erasure, overprinting and churlish emendation. My studies were interrupted by a sudden and ferocious thunderstorm. Shoving the diagrams hastily back into the canister, unfortunately tearing one of them, I hobbled back to my shelter, where my viper was busy biting the head off an unidentified rodent. Tossing my crutches into the corner, I lay back on my pallet and spent a profitable hour mucking about with bits of wire and driftwood to make a trap for bats.
The life of a maroon, on an island such as this, is not unpleasing. Food is plentiful and easily gathered, or slaughtered. The vegetation is lush and the animals are slow-witted and trusting. On my very first day I was able to bash out the brains of a badger which trundled innocently towards me as I sat on the beach idling with my club. Quite what a badger was doing on the island is beyond me. I have not come across any others. But I am ever vigilant. I will not risk boring you by listing the stupendous array of equipment I managed to salvage from the wreck of the HMS Tot of Magnesium. Suffice to say the club was not my only weapon; nor am I at a loss for a change of trousers.
I have told you that I am not an architect. The truth is, I cannot remember what I am, what trade or business I followed on dry land. Perhaps I was a jolly jack tar; but I think it unlikely. I like to think that I was aboard the Tot of Magnesium as a supernumerary passenger, a merchant of sorts, my cabin crammed with samples of tea, or silk, or mustard. In the final desperate moments, as the ship pitched and rolled and smashed against gleaming rocks, I received a blow to the head which has impaired my memory. It was not the only injury I received. My right leg is only just recovering. I was thankful that among the first items from the ship washed up on the beach was a wooden box of sinapisms from the surgeon's casket. In the first days of my marooning, the lifeless bodies of my shipmates were washed up on shore, white, puffed, gruesome. I ticked off the dead in an impromptu ledger, which I have since mislaid. The bodies did not lie there long.  Their nests are not on this island; I have searched every inch of it. The gigantic Bolivian architectural diagrams came to light on one of my earliest searches. For the first few weeks I was so sure of being rescued by a passing smack or schooner that I could barely bring myself to move. I sprawled on the beach, knocking out the brains of a variety of curious animals, applying sinapisms to my wounds and gashes, and covering myself with an old bit of sailcloth at night, or during rainfall. At last a ship hove into view. I hopped about like a mad thing, shouting and raving in Latin, following the advice of my Jesuit mentors. Eventually I realised that the craft I was hailing was none other than what was left of the Tot of Magnesium, seen from an advantageous angle. If, dear reader, you were expert in tides and currents, in the pleasingly complex science of the movement of seas, I would ask you how it was that this broken wreck of a ship sailed about for nine or ten weeks without sinking, only to return to the spot where razor-sharp rocks hidden beneath the waves had pierced its fabric and brought about its doom. But I suspect you are not.
It was at this stage that I conquered my indolence and set to work. In forty-eight hours, I salvaged everything I could carry from the ship, constructed a raft, knocked up a shelter from planks and sail-cloth, knocked up another shelter when the first one collapsed on top of me, this time shoring up the sides with some sort of metal, killed eight turtles, made a store for buckets, dug some holes, lost my death-ledger, ate a pickled wren I found in the surgeon's casket, and hardly paused for sleep. The next day I began my search of the island. I found a mulberry bush and some gemstones. On the second day I found bauxite deposits, a waterfall, big grains of sand and what looked like the bones of a horse. On the third day I found the gigantic Bolivian architectural diagrams. On the fourth day I found a crushed encampment of beetles, and a cave full of the most loathsome bats I had ever seen. So it went on, day after day. In two weeks I had covered the island. All the while I had been making careful notes, and now I rested and spent my days drawing an exquisitely detailed map. I tacked this up above my pallet. As night fell, and my blubber candles spluttered, I lay back and considered my island home. With nary a smack or schooner in sight, I could remain marooned for years on end. My shelter may not last, buffeted as it was by howling winds and freezing rain. I decided that the best place for me to live would be the cave. I declared war on the bats.
II. January 1911
I had been marooned on the island for just two days when I discovered the gigantic Bolivian architectural diagrams. They were spattered with blood, rolled up and jammed into a rotting wooden casket. I carried them back to my hut to examine them. There were about a dozen large sheets, rather frayed around the edges but perfectly legible. The top left corner of each sheet had been stamped with an official device of the Bolivian administration, showing an escutcheon, a ziggurat, the helmet of a conquistador, the hand of God and abbreviations in neat italic lettering. The signature of what I supposed to be a petty official had been scratched across each of the stamps in mauve ink. I could not understand why they were in such good condition. I tacked them up on the walls of my hut, where they rapidly grew so familiar that I no longer noticed them. I am no architect, and I had more urgent matters to attend to.
I have never forgiven myself for my stupidity. I had been warned not to row my skiff into uncharted waters near the Antarctic Circle. Oh, but did I listen as Captain Peabody harangued me? "You d----'d fool!" he shouted, his frosty whiskers twitching in the cold morning light. I turned for one last look at the ship as I guided my skiff into oblivion. I have not seen a human face since that day. Within minutes I was overwhelmed by chilling, poisonous mists. The hideous stench of crocuses made me sick to my stomach. I let fall the oars. The tholes, tampered with by my enemies, Glubb and Mufton, fell to pieces, and the oars floated away, out of reach. I drifted for hours. My anorak, with its hood of reindeer hide, froze solid, encasing me so that I was unable to move an inch. An auk, or some such feathery ingrate, shat on me repeatedly, hovering above my head like a malign shade. I could not move to shoo it away. Eventually - mercifully - I passed out.
When I came to I was surrounded by members of the Royal Canadian Mounted Police. One of them, with icicles forming on the brim of his hat, was solicitously offering me a tin mug of brandy. I took a grateful swig, then noticed that his colleagues did not seem so friendly. They were glaring at me menacingly. One brandished a rather archaic halberd in the air and shouted horrifying words. All of a sudden I became aware that I was aboard a huge, shiny boat, its sails billowing, its decks scrubbed clean. I turned to look again at the Mountie with the tin mug. For the first time I took in his features. It was Mufton! My deadly enemy....
There were other hallucinations, other dreams. I shall not repeat them here. Hours, days, perhaps weeks after I had set out in my skiff, I came at last to dry land again when I woke to find myself sprawled on the beach of this island. Was it yet another phantasm? There were a number of ways to find out. I tried three of them.  This caused what seemed like real pain. Then I shovelled handfuls of coarse sand into my mouth and attempted to swallow. This caused me to retch uncontrollably for some minutes. Almost satisfied, I conducted a third test. Taking from the breast pocket of my anorak a small phial, I poured a minuscule quantity of a decoction of sandalwood, cresol, gutta percha and pitch into the palm of my hand, held it aloft in the salty air, and mumbled incantations and gibberish. Sparks crackled in my hair, shot up into the sky, and brought tiny jewels of hail pinging down around me. Within seconds they evaporated, and were gone. But now I knew for certain that I was wide awake, no longer prey to visions and vapours. Being a resourceful sort, I managed to provide myself with adequate food, drink, warmth and shelter within a few hours. I began to search my temporary home, and found the gigantic Bolivian architectural diagrams. That was over a month ago. I found the remains of my skiff, crushed and broken, swept up on some rocks on the northern coast, which seems to be the wildest. I have been working hard at my almanack, and at keeping my beacons lit.
Last night, as I hurled dried and matted vegetation upon my northern beacon, I was attacked by a swarm of bats. They swooped at me one after another, squealing horribly, pecking at my flesh. I fought them off with a burning stick, but I was shaken. I ran back to my hut, and blocked up the doorway and some of the holes in the walls with mulberry paste. Tonight the bats are back, chewing their way frenziedly through the walls. I have on my rickety home-made desk a small bag of sulphur bombs with which I hope to fight them off. But timing will be crucial. I do not intend to perish.
III. October 1928
We docked at 0800 hours. Bingle, Carg, Linnet, Frack and Pinmouth were detailed to search the northern half of the island, while Bewg, Shimm, Jabber, Thurp and myself took the south. I left Wicket and Birdhole aboard the ship, with strict instructions. I cannot remember what the instructions were, but they were strict, make no mistake about that.
The five of us who comprised the southern party set out. It rapidly became apparent that the boulders and rocks on the island were giving off violent magnetic discharges. The tension was oppressive. We saw what looked like ball lightning far in the distance. I instructed Bewg to make sketches in his little pad, but he complained that his pencil was blunt. Between us we could not muster a pencil sharpener. I was loth to have Bewg return to the ship alone to fetch the required implement, so I instructed Jabber to accompany him. I pressed on with Shimm and Thurp, the latter carefully scraping rock and mud samples into our canister. The path ahead was burned and scorched - by what agency was not clear to us.
At 0950 hours Birdhole joined our party. She brought with her the ship's pencil sharpener. Apparently Bewg had suffered an attack of the seeds, and was having a lie down in his cabin. I made a mental note to tick him off later. I remember that clearly, because at the very moment I thought it a mighty crevasse opened in the ground directly in front of us. Thurp was swallowed up, as the earth cracked apart. The rest of us staggered backwards. I am glad that I had the presence of mind to tell Birdhole to execute a quick sketch in Bewg's pad. She complained that she had not yet had a chance to sharpen the pencil, but I cut her short with a screech of blood-curdling ferocity. One is taught to do that sort of thing at officer school.
Shimm put down her accordion and made an impromptu bridge across the crevasse using all our footwear tied together. We clambered across, and pressed on, although not before Birdhole had insisted upon holding a commemorative service for the sadly departed Thurp. Why I allowed it I do not know. I can be a sentimental old buzzard. While Birdhole was ululating, we were joined by the northern party, who had completed their investigations.  I commanded Frack or Pinmouth - I never could tell them apart - to return to the ship, but I cannot remember why. Whichever one it was sent Jabber back to us. I had suspected her of idling around like Bewg, but she made haste to tell me that she had cast a Mackenzie Beam from the ship. I patted her on the head, not without some misgivings, as I do not think she had ever washed her hair. At last Birdhole stopped howling, and we pressed on. We passed an enormous heap of skeletons - bat and human, according to Bingle's eagle-eyed diagnosis - and various other manifestations of what Lamouche calls la flaque de la mort. I have Jabber to thank for that quotation. Birdhole wanted to delay further to give the two human skeletons a decent Christian burial, but I cuffed her on the temples and snarled at her.
The ground over which we passed became rough and spiky, and we had to tread carefully in our socks. We would retrieve our tough adventurer's boots on our return trip, when we would be able to dismantle Shimm's bridge. Frack or Pinmouth handed around some custard-balls for sustenance. Then, as we hacked our way through some overhanging foliage, we suddenly came face to face with the building. It was smaller than we expected, like a scale model of a typical nineteenth century Bolivian civic hall, and it had all the hallmarks of having been constructed out of bat droppings. I removed my hat in awe. The others did likewise, except for Shimm, who was not wearing a hat, Linnet, whose hat had snagged on the branch of a dunstable tree a few hundred yards back, and Birdhole, whose hat had been glued to her head for the duration of the expedition for some obscure religious purpose. I had interrogated her on this point back at Tantarabim, and will publish the documents separately.
 I jammed my hat back on my head and commanded my team to get to work. I was heartened to see that they set to it with such gusto. Within minutes, the instruments had been unpacked, the music stands set up, sheet music distributed, and everyone was at their post ready to tune up. The band was as follows: Bingle on bugle, Carg on bassoon, Shimm on accordion, Jabber on sackbut, Linnet on harmonium, Frack or Pinmouth on castanets, and Birdhole on handbells. I myself conducted and played the cornet. We ran through a few bars of Bring Me Your Winding-Sheet, Oh Mother Of Mine before settling down to the concert proper. Macaws shrieked but we drowned them out. We played my arrangements of Die sieben letzten Worte des Erlösers am Kreuze (Haydn), Sonatine Bureaucratique (Satie) and The Anti-Abolitionist Riots (Ives). For an encore, we performed a rousing version of The Consumptive's Vest (Jabber, arr. Birdhole). Then we packed up. I ordered Birdhole to make some detailed sketches of the building in Bewg's little pad, and we also took measurements and poked about the place a bit. But night would soon be falling, and there was no let up in the magnetic activity of this accursed island. The sooner we returned to the ship the better. The journey back passed without incident. We collected our boots after re-crossing Shimm's bridge over the chasm. Thurp's body had fallen so far it was not visible. We did not tarry. Wicket and Pinmouth or Frack were on duty on the bridge. They had received warnings of volcanic activity over the radio. Before we set sail, I went into Bewg's cabin and told him I would brook no further nonsense from him. I presented him with a rag and told him to go and polish everything on the ship. Back on deck, I found Linnet mucking about with the Mackenzie Beam. I let it pass; I was a tired woman. We weighed anchor, and headed home at last. Only later did I discover I had left my cornet on the island. I cannot bear to go back there to retrieve it.


Check out the browser console to see how you can read the value of CSS properties - for example, the font-size of the previous heading.
Use the .css method to read or set the value of a CSS property.
Need to make lots of CSS changes? Try using an object!


Apple reportedly Has A Secret Screen Factory
The tech giant has been content buying components from its competitors until now.
By Eric Limer Mar 19, 2018
The Science Of The Smartphone Backlash
Are our devices doing us more harm than good? It’s complicated.
By Jacqueline Detwiler Mar 15, 2018
The Samsung Galaxy S9 And Galaxy s9+, Reviewed
Setting a new standard for mobile photography capabilities.
By Stefan Vazharov Mar 8, 2018
The Best 360 Cameras For Capturing Your World
Because 2D is so 20th century.
By Don Melanson Mar 6, 2018
Bitcoin Heist: 600 Powerfull Computers Stolen In Iceland
The computers, which have not yet been found, are worth almost $2 million.
By Associated Press And Egill Bjarnason Mar 5, 2018


Preparation time
less than 30 mins
Cooking time
over 2 hours
Serves
Serves 6-8
I love the traditional Sussex pond pudding but the whole thing always collapses when served so I thought it would be a good idea to pack the pudding with apples (as well as traditional lemon). The result is even more delicious!
Equipment and preparation: You will need a 1.5 litre/2¾ pint pudding basin, foil and kitchen string.
For the suet crust, put the flour and suet into a bowl. Measure the milk in a jug and then add 75ml/2½fl oz cold water to make 150ml/5½oz of total liquid. Add this to the suet and mix to make a soft dough.
Lightly dust the work surface with flour and then roll out the dough to a 30cm/12in circle. Cut one-quarter out of the circle and set aside for the lid. Thickly butter the pudding basin and then line with the pastry, pressing the join together.
For the filling, peel and core the apples, then cut them into cubes and mix together in a mixing bowl with the butter and sugar. Place a little of this mixture in the pudding basin on top of the suet pastry. Prick the lemon all over with a cocktail stick and then place it in with the apples so that it sits upright. Pack the remaining apples and butter mixture around the lemon.
Roll out the reserved suet pastry to a circle to fit on top of the pudding, trim any excess pastry and pinch the edges to seal.
Cut a square of foil and make a pleat in the centre. Tie the foil around the basin with string, then loop the string over the basin and back under the string a couple of times to make a handle. Tie securely.
If you don’t have any string, fold a long strip of tin foil horizontally in half – and then half again. Place the foil around the bottom of the basin, and wrap the sides up and around to act as support as the basin is lowered into the pan.
Place the lid of a jam jar in the large saucepan to stop the basin touching the bottom of the pan.
Add the pudding basin to the pan and then pour boiling water around it so that it comes three-quarters of the way up the side of the basin. Cover with a tight-fitting lid, and simmer for 3½ hours. Check occasionally and top up with more boiling water as necessary.
To serve, remove the foil and invert the basin onto a large serving plate. Remove the basin and serve in slices with cream or custard.


Most Oracle reads are pseudo-random. They are not truly random, just pseudo-random, because some segments are accessed more heavily than others, and within segments some data is normally accessed more heavily than the rest. For example, in a sales database the orders table would be accessed more heavily than the cancellations table, and more recent orders and more popular products would be accessed more frequently than others would. The parts of the datafiles that are accessed most heavily are called hot spots.
Hot spots are of concern because it is commonly necessary for multiple processes to access the hot spots concurrently. For example, a key application index may need to be accessed by every concurrent transaction. Read hot spots are typically not small. If they were small, Oracle would be able to keep all the hot data in its cache, and there would be no hot spot on disk at all. Write hot spots, on the other hand, can be as small as a few blocks. The solution for hot spots is once again striping. This is striping to improve concurrency, as opposed to striping to improve the transfer rate, which we considered in an earlier tip.
When striping to improve concurrency, the choice of the stripe element size depends heavily on whether you have raw or file system based datafiles.
The database blocks of file system based datafiles cannot normally be aligned to stripe element boundaries. So some single block reads must be serviced by two disks, rather than one. Of course, concurrency is maximized if only one disk is needed to service most single block reads. So for file system based datafiles, concurrency is maximized if the stripe element size is large relative to the database block size. However, the stripe element size must not be so large that a single stripe element might contain an entire hot spot. The optimal stripe element size for a database with an 8K database block size and file system based datafiles seems to be 128K. Unfortunately, this is often too large to yield any significant improvement in the multiblock read transfer rate, when full table scans are performed against the tablespace.
For raw datafiles, the alignment of database blocks to stripe elements is affected by the size of the initial logical volume control block, if any. If there is none, or if it is a multiple of the database block size, then the stripe element size need only be a multiple of the database block size to ensure the alignment of database blocks to stripe elements. Therefore, in such cases, the stripe element size can be chosen to optimize the transfer rate for multiblock reads. There is no trade off between concurrency and transfer rate; you can have your cake and eat it too. However, if the logical volume control block is smaller than the database block size, misalignment cannot be avoided, and so a large stripe element size is required.
The choice of a data protection method also affects the performance of high concurrency pseudo-random reads. Specifically, if an unprotected or parity based protection scheme is chosen, then there is only one copy of the data on disk from which reads can be serviced. Whereas if mirroring is used, then there are two or more copies of the data from which reads can be serviced. It is often possible to service multiple reads concurrently from the different copies of the data. In many cases you will have a choice of mirror read service policies. This is a complex issue, and highly dependent on your choice of technology. However, in general dynamic load balancing policies perform better than fixed policies, and hardware implementations perform better than software ones. A good mirror read service policy can almost double the concurrency of pseudo-random access to hot data, and therefore should not be overlooked when configuring disks for pseudo-random read intensive I/O.
One form of data protection that deserves special mention is RAID-S. RAID-S is a form of RAID-5 where the stripe element size is large (in the order of gigabytes) and each non-parity stripe element is presented to the host system as a logical unit (LUN) to be used in place of a disk. The fundamental point to grasp about RAID-S LUNs is that they reside on a single disk spindle; that is, there is no striping. If RAID-S is to be used for random I/O datafiles, it is imperative that you use an LVM product to stripe independent RAID-S LUNs together into striped logical volumes.
However, great care is needed when striping RAID-S LUNs, because you need to ensure not only that the LUNs themselves are from distinct spindles, but also that the corresponding parity disks are not represented in the stripe. Otherwise, concurrent pseudo-random writes to the same striped logical volume may well contend for some of its underlying disks.
To ensure the independence of striped RAID-S LUNs, it is recommended that you adopt the following guidelines.
For example, the LUNs from the four RAID-S groups in the diagram below would be grouped into four volume groups: one for the LUNs from the A disks, one for the LUNs from the B disks, and so on; and the logical volumes would be striped across the corresponding LUNs from the distinct RAID-S groups. Backups should be configured so that only one backup stream is used for each volume group. This guarantees complete I/O separation of the backup streams, and thus sequential I/O at the disks, optimal transfer rates, and streaming at the tape drives. Similarly, I/O separation between the volume groups is guaranteed for random reads, which enables, say, table and index data to be separated physically, as well as logically. However, even when these guidelines are followed, great care is needed in disk load balancing to avoid contention between apparently unrelated logical volumes, when the workload is write-intensive.
Another optimization that should be considered for pseudo-random reads is to place the hot data on the faster parts of the disk. The outer cylinders of a disk are about 25% faster than the inner cylinders. This is because disks are divided into zones, and the tracks in the outer zones are longer and contain more data than those in the inner zones, and that data moves past the disk heads more quickly.
However, if you put your hottest data right at the beginning (outside edge) of the disks, then the average seek time away from and back to that part of the disk will be unnecessarily long. Therefore it is best to put very hot data about 1/3 of the way into a disk, and to reserve the last ¼ of the disk (the inner cylinders) for relatively cool data. Even if you do not expect to go to such lengths, you should recognize that not all logical volumes are equal, even though they may be of the same size. It is recommended that you adopt a naming convention for your raw logical volumes that reflects this, because it may well help you with disk load balancing later on. For example, if creating four logical volumes out of a stripe of 4 physical disks, you may add the letters F, H, W and S to the logical volume names to mean respectively Faster, Hot, Warm, Slower. This is illustrated in the figure below.
We have seen that striping is vital to the performance of high concurrency pseudo-random reads. However, an important consideration to bear in mind when planning striping is data growth. When a datafile is added to a tablespace to allow for data growth, that datafile should have the same I/O characteristics as its peers, otherwise a hot spot may be introduced. That is, the stripe breadth should be the same, the hardware I/O path should be as broad, the disk should be of the same type, and it should be on the same part of its disks. The I/O characteristics of two datafiles might also differ if either one shares a controller with a significantly slower device, such as a tape drive or an older disk. In the same way, if mirroring is used for data protection, the two mirrors should have identical I/O characteristics as well.
One final consideration in maximizing the concurrency of access to hot data for pseudo-random reads is I/O request queuing. If you are using a disk array that can service a hundred or more I/O requests concurrently, you don't want the operating system queuing up I/O requests to prevent what it sees as a single device from being overloaded. On HP-UX for example, you should use the scsictl command at system startup to raise the number of I/O requests that the SCSI device driver will pass to the disk array. The default of 8 concurrent requests is normally far too low. However, beware of setting the queue depth too high also, because there are limits on what the disk arrays can manage and if you attempt to exceed those limits some disk arrays will not handle the situation at all gracefully!
| Copyright © Ixora Pty Ltd |
|


Class: Sass::Stack::Frame
- Inherits:
-
Object
- Object
- Sass::Stack::Frame
- Defined in:
- /usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb
Overview
A single stack frame.
Instance Attribute Summary (collapse)
-
- (String) filename
readonly
The filename of the file in which this stack frame was created.
-
- (String) line
readonly
The line number on which this stack frame was created.
-
- (String?) name
readonly
The name of the stack frame.
-
- (Symbol?) type
readonly
The type of this stack frame.
Instance Method Summary (collapse)
-
- (Frame) initialize(filename, line, type, name = nil)
constructor
A new instance of Frame.
-
- (Boolean) is_base?
Whether this is the base frame.
-
- (Boolean) is_import?
Whether this frame represents an import.
-
- (Boolean) is_mixin?
Whether this frame represents a mixin.
Constructor Details
- (Frame) initialize(filename, line, type, name = nil)
Returns a new instance of Frame
35 36 37 38 39 40 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb', line 35
def initialize(filename, line, type, name = nil)
@filename = filename
@line = line
@type = type
@name = name
end
|
Instance Attribute Details
- (String) filename (readonly)
The filename of the file in which this stack frame was created.
11 12 13 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb', line 11
def filename
@filename
end
|
- (String) line (readonly)
The line number on which this stack frame was created.
16 17 18 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb', line 16
def line
@line
end
|
- (String?) name (readonly)
The name of the stack frame. For mixin frames, this is the mixin name; otherwise, it’s nil
.
33 34 35 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb', line 33
def name
@name
end
|
- (Symbol?) type (readonly)
The type of this stack frame. This can be :import
, :mixin
, or :base
.
:base
indicates that this is the bottom-most frame, meaning that it represents a single line of code rather than a nested context. The stack will only ever have one base frame, and it will always be the most deeply-nested frame.
27 28 29 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb', line 27
def type
@type
end
|
Instance Method Details
- (Boolean) is_base?
Whether this is the base frame.
59 60 61 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb', line 59
def is_base?
type == :base
end
|
- (Boolean) is_import?
Whether this frame represents an import.
45 46 47 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb', line 45
def is_import?
type == :import
end
|
- (Boolean) is_mixin?
Whether this frame represents a mixin.
52 53 54 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/stack.rb', line 52
def is_mixin?
type == :mixin
end
|


A warehouse organization system for medical services
User and developer friendly cross-platform classes and gui
Developed with Java and uses an easy-to-manage XML database
Only tested with OpenJDK 16
$ git clone https://www.github.com/libalis/utopia
$ cd utopia/JAVA
$ javac Xml.java Gui.java Main.java
$ jar cfe Utopia.jar Main Xml.class Gui.class Main.class
Only tested with OpenJDK 16
$ java -jar Utopia.jar
MIT License
Copyright (c) 2020 Robert Kagan, Marcel Rose and Julius Fels
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


| First Day of School: | ||
| Last Day of scheduled school (day 185): | ||
| Last Day of required instruction (day 180): | ||
| Last Day of required instruction (990 hours): | ||
| Dates Chosen by You: | ||
| Minutes of instruction: | ||
| LPS block schedule used for minute counter - 990 hours or 59,400 minutes are required | ||
| Required Holidays by Law (Massachusetts 185 school days required) | ||
|---|---|---|
| New Years Day, January 1 (monday if falls on weekend) | ||
| Martin Luther Kings Birthday (3rd Monday in January) | ||
| Presidents' Day (3rd Monday in February) unchecking also drop Feb vac | ||
| Patriots Day (3rd Monday in April) unchecking also drop April vac. | ||
| Memorial Day (Last Monday in May) | ||
| Labor day (First Monday in September) | ||
| Columbus Day (2nd Monday in October) | ||
| Veterans Day November 11, 2015 | ||
| Thanksgiving Day (4th Thursday in November) | ||
| Christmas Day December 25 unchecking also drop Christ vac.
Christmas Eve - No School Christmas Eve - Half Day (counts as instructional day) Christmas Eve - School | ||
| Other Holidays - days normally 'no school' in Lexington, MA are checked by default | ||
| Christmas Vacation = All days between Christmas and New Years | ||
| Feb Vacation = the weekdays following Presidents Day | ||
| April Vacation = the weekdays following Patriots Day | ||
| Easter Break = the weekdays preceeding Good Friday | ||
| Roshhashana - Jewish New Year (until 2020) | ||
| Yom Kippur - Jewish Holiday (until 2020) | ||
| Good Friday - Christian Holiday (until 2020) | ||
| Chinese New Year (until 2025) | ||
| Diwali (until 2030) | ||
To prevent 'orphan' days, the code is set up so that if New Years is a Thursday, the next day is a holiday. Likewise, if Christmas is a Tuesday, the previous day is a holiday. | ||
| Some links:
The law regarding school days in Massachusetts summary: We need to schedule 185 days ad actually have 180 (leaves 5 days for snow and meteor scares). List of most other states' requirements List of lots of holidays the DOE posted so it looks open-minded Massachusetts official holidays Lexington Teacher Contract | ||
Email me. I made this using the finest recycled javascript code. You can see everything, just view-source. Version March 15, 2015. Probably still bugs. |


Result
public enum Result<T>
Result represents async response from the server. It can be either success or failure using internal enum values to represent response data.
-
Undocumented
Declaration
Swift
case success(T)
-
Undocumented
Declaration
Swift
case failure(ErrorResponse?)
-
Convenience accessor to succesful response object.
Declaration
Swift
public var responseObject: T?
-
Convenience accessor to failure error messeage.
Declaration
Swift
public var errorMessage: String?


{% extends "tutorial.html" %} {% block html5badge %} {% endblock %} {% block iscompatible %} return true; {% endblock %} {% block content %}
We recently launched the Gallery section on the Google Photography Prize site. The gallery shows an infinite scrolling list of photos fetched from Google+. It gets the list of photos from an AppEngine app that we use for moderating the list of photos in the gallery. We also released the gallery app as an open source project on Google Code.
The backend of the gallery is an AppEngine app that uses the Google+ API to search for posts with one of the Google Photography Prize hashtags on it (e.g. #megpp and #travelgpp). The app then adds those posts to its list of unmoderated photos. Once a week, our content team goes through the list of unmoderated photos and flags ones that break our content guidelines. After hitting the Moderate-button, the unflagged photos are added to the list of photos shown on the gallery page.
The Gallery frontend is built using the Google Closure library. The Gallery widget itself is a Closure component. At the top of the source file we tell Closure that this file provides a component named photographyPrize.Gallery
and require the parts of the Closure library used by the app:
goog.provide('photographyPrize.Gallery'); goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.classes'); goog.require('goog.events'); goog.require('goog.net.Jsonp'); goog.require('goog.style');
The gallery page has a bit of JavaScript that uses JSONP to retrieve the list of photos from the AppEngine app. JSONP is a simple cross-origin JavaScript hack that injects a script that looks like jsonpcallback("responseValue")
. To handle the JSONP stuff, we’re using the goog.net.Jsonp
component in the Closure library.
The gallery script goes through the list of photos and generates HTML elements for them to show them on the gallery page. The infinite scrolling works by hooking up to the window scroll event and loading a new batch of photos when the window scroll is close to the bottom of the page. After loading the new photo list segment, the gallery script creates elements for the photos and adds them to the gallery element to display them.
The image list display method is pretty basic stuff. It goes through the image list, generates HTML elements and +1 buttons. The next step is to add the generated list segment to the gallery's main gallery element. You can see some Closure compiler conventions in the code below, note the type definitions in the JSDoc comment and the @private visibility. Private methods have an underscore (_) after their name.
/** * Displays images in imageList by putting them inside the section element. * Edits image urls to scale them down to imageSize x imageSize bounding * box. * * @param {Array.<Object>} imageList List of image objects to show. Retrieved * by loadImages. * @return {Element} The generated image list container element. * @private */ photographyPrize.Gallery.prototype.displayImages_ = function(imageList) { // find the images and albums from the image list for (var j = 0; j < imageList.length; j++) { // change image urls to scale them to photographyPrize.Gallery.MAX_IMAGE_SIZE } // Go through the image list and create a gallery photo element for each image. // This uses the Closure library DOM helper, goog.dom.createDom: // element = goog.dom.createDom(tagName, className, var_childNodes); var category = goog.dom.createDom('div', 'category'); for (var k = 0; k < items.length; k++) { var plusone = goog.dom.createDom('g:plusone'); plusone.setAttribute('href', photoPageUrl); plusone.setAttribute('size', 'standard'); plusone.setAttribute('annotation', 'none'); var photo = goog.dom.createDom('div', {className: 'gallery-photo'}, ...) photo.appendChild(plusone); category.appendChild(photo); } this.galleryElement_.appendChild(category); return category; };
To see when the visitor has scrolled the page to the bottom and we need to load new images, the gallery hooks up to the window object's scroll event. To paper over differences in browser implementations, we're using some handy utility functions from the Closure library: goog.dom.getDocumentScroll()
returns an {x, y}
object with the current document scroll position, goog.dom.getViewportSize()
returns the window size, and goog.dom.getDocumentHeight()
the height of the HTML document.
/** * Handle window scroll events by loading new images when the scroll reaches * the last screenful of the page. * * @param {goog.events.BrowserEvent} ev The scroll event. * @private */ photographyPrize.Gallery.prototype.handleScroll_ = function(ev) { var scrollY = goog.dom.getDocumentScroll().y; var height = goog.dom.getViewportSize().height; var documentHeight = goog.dom.getDocumentHeight(); if (scrollY + height >= documentHeight - height / 2) { this.tryLoadingNextImages_(); } }; /** * Try loading the next batch of images objects from the server. * Only fires if we have already loaded the previous batch. * * @private */ photographyPrize.Gallery.prototype.tryLoadingNextImages_ = function() { // ... };
To load the images from the server, we're using the goog.net.Jsonp
component. It takes a goog.Uri
to query. Once created, you can send a query to the Jsonp provider with a query parameter object and a success callback function.
/** * Loads image list from the App Engine page and sets the callback function * for the image list load completion. * * @param {string} tag Fetch images tagged with this. * @param {number} limit How many images to fetch. * @param {number} offset Offset for the image list. * @param {function(Array.<Object>=)} callback Function to call * with the loaded image list. * @private */ photographyPrize.Gallery.prototype.loadImages_ = function(tag, limit, offset, callback) { var jsonp = new goog.net.Jsonp( new goog.Uri(photographyPrize.Gallery.IMAGE_LIST_URL)); jsonp.send({'tag': tag, 'limit': limit, 'offset': offset}, callback); };
As mentioned above, the gallery script uses the Closure compiler for compiling and minifying the code. The Closure compiler is also useful in enforcing correct typing (you use We also needed unit tests for the gallery script, so it’s handy that the Closure library has an unit testing framework built into it. It follows the jsUnit conventions, so it’s easy to get started with.
To help me in writing the unit tests, I wrote a small Ruby script that parses the JavaScript file and generates a failing unit test for each method and property in the gallery component. Given a script like:
The test generator generates an empty test for each of the properties:
These autogenerated tests gave me an easy start in writing tests for the code, and all the methods and properties were covered by default. The failing tests create a nice psychological effect where I had to go through the tests one by one and write proper tests. Coupled with a code coverage meter, it’s a fun game to make the tests and coverage all green.
Gallery+ is an open source project to display a moderated list of Google+ photos matching a #hashtag. It was built using Go and the Closure library. The backend runs on App Engine. Gallery+ is used on the Google Photography Prize website to display the submission gallery.
In this article we walked through the juicy bits of the frontend script. My collague Johan Euphrosine from the App Engine Developer Relations team is writing a second article talking about the backend app. The backend is written in Go, Google's new server-side language. So if you're interested in seeing a production example of Go code, stay tuned!
Unit tests
Foo = function() {}
Foo.prototype.bar = function() {}
Foo.prototype.baz = "hello";
function testFoo() {
fail();
Foo();
}
function testFooPrototypeBar = function() {
fail();
instanceFoo.bar();
}
function testFooPrototypeBaz = function() {
fail();
instanceFoo.baz;
}
Summary
References
{% endblock %}


This is an example of a logged in dashboard view.
The HTML templates used in this App are very easy to replace


{% extends "application/layout.html" %} {% block page_title %}Travelling now{% endblock %} {% block content %} {% include "includes/alpha.html" %} Back {# #} Why can't you carry on ? How often does your work travel include ? Count each journey separately, eg if you go to and from work the same way, that would be 2 journeys a day. times a week a month Form Navigation {% include "application/rightcol.html" %} {% endblock %} {% block page_script %} {% endblock %}
Back
Count each journey separately, eg if you go to and from work the same way, that would be 2 journeys a day.


129
They Have Afflicted Me from My Youth
A SONG OF ASCENTS.
1 “Greatly have they afflicted me from my youth”—
let Israel now say—
2 “Greatly have they afflicted me from my youth,
yet they have not prevailed against me.
3 The plowers plowed upon my back;
they made long their furrows.”
4 The LORD is righteous;
he has cut the cords of the wicked.
5 May all who hate Zion
be put to shame and turned backward!
6 Let them be like the grass on the housetops,
which withers before it grows up,
7 with which the reaper does not fill his hand
nor the binder of sheaves his arms,
8 nor do those who pass by say,
“The blessing of the LORD be upon you!
We bless you in the name of the LORD!”


Npt documentation.
Reference: ANSI Common Lisp npt
Prev: 3. Arguments
Next: 5. Specific Features
The npt amalgamation is a collection of npt sources into a few pieces.
Currently, there are over 800 npt source files, but npt amalgamation combines them into the following three sources.
lisp.c
lisp.h
shell.c
There is no difference in functionality between regular npt and amalgamation as it is simply combined.
It was originally created by imitating amalgamation from sqlite.
In some cases, it is easier to handle because the number of source files is reduced.
A drawback exists, the file lisp.c
is so large that a C language debugger, for example gdb
, would take a long time to load the source.
According to the sqlite page, some software cannot read the source files if they are too large.
Therefore, after merging the sources, we have also prepared a mode to split them into several files. It depends on the size of the source, but at the moment it can be combined into 12 files.
npt-amalgamation is available at the following github
https://github.com/nptcl/npt-amalgamation
However, the above page does not always reflect the latest source.
So, the following is how to make an amalgamation using the source from github/npt.
First, go to the github/npt directory.
$ cd github/npt
Go to the amalgamation directory.
$ cd develop/amalgamation
Run the program to create the file.
$ npt --script amalgamation-single.lisp
Name: npt
Output: lisp.c
Output: lisp.h
Output: shell.c
This lisp
file can be executed by any Common Lisp implementation.
If the npt
command is not available, you can use another implementation.
Here is an example.
$ sbcl --script amalgamation.lisp
$ ccl -l amalgamation.lisp
$ clisp amalgamation.lisp
With the three generated files, npt can be built.
Compilation is the same as usual.
Here’s an example of compiling on FreeBSD
$ cc -o npt -DLISP_FREEBSD lisp.c shell.c -lm
$ ./npt --version-script | grep amalgamation
amalgamation true
$
The following is an example of splitting into multiple parts. This is a separate operation from the previous one, so be careful not to continue working on it.
$ npt --script amalgamation-header.lisp
Name: npt
Output: lisp_file.h
Output: lisp_file_01.c
Output: lisp_file_02.c
Output: lisp_file_03.c
Output: lisp_file_04.c
Output: lisp_file_05.c
Output: lisp_file_06.c
Output: lisp_file_07.c
Output: lisp_file_08.c
Output: lisp_file_09.c
Output: lisp.h
Output: shell.c
The compilation is as follows.
$ cc -o npt -DLISP_FREEBSD lisp_file_*.c shell.c -lm
$ ./npt --version-script | grep amalgamation
amalgamation true
$
lisp_file.h
is used when compiling the npt source.
On the other hand, lisp.h
is a file that is required when developing npt and is not needed when compiling npt.


First Name:
Last Name:
City:
State:
${personal.firstName} ${personal.lastName} lives in ${address.city}, ${address.state}.
Personal InfoAddressView
First Name:
Last Name:
City:
State:
${personal.firstName} ${personal.lastName} lives in ${address.city}, ${address.state}.
Personal InfoAddressView
First Name:
Last Name:
City:
State:
${personal.firstName} ${personal.lastName} lives in ${address.city}, ${address.state}.


Obabo is resourceful and calculating, however he has been increasing absent of late.
Suleh is both resourceful and efficient;the group's creative engine.


--- layout: post title: Stubbie 0.1 available for download tags: - ColdFusion - generator - stubbie - stubs - tdd status: publish type: post published: true meta: _edit_last: '2' aktt_notify_twitter: 'no' --- Just wanted to let folks know, and with trepidation, that the 0.1 release of Stubbie is available for download from the project page. I have also added a few blog posts to the project:


Define the system environment where the compliance check will run. If set to TEST the build step will not
failed even the return of the compliance check is violating the USP results. If set to PRODUCTION
the build step will fail only it reurn severity level is higher the severity level that was set in Jenkins


var iconAnimationRotationDeg: Float
A float, in degrees, representing how much the ExpandableFab's icon will rotate when animating. When opening, the ExpandableFab will rotate from 0 to this value. When closing, the icon will rotate from this value to its initial position of 0. Default value is -135f.


Login
Public
Add Accounts
View Profiles
Settings
Logout
Inventory
Loading Items
Queue
Capture
Save
Restore
Add Accounts
Realm
Account
Password
Character(s)
USEast
USWest
Europe
Asia
Login
Upload to Imgur
Loading Items


TOSback
2
TOSback Home
/
[COMPANY NAME]
[COMPANY NAME]
Select policy document:
Red indicates a minor change. Blue indicates a significant change which makes diff comparison across this boundary impossible.
Display ignored versions (gray).


Colophon
Written by Mattt Thompson on
As a way to kick off this new year, I thought it'd be fun to share some insights of just how NSHipster is made. This article covers both the website and the recently-released NSHipster book, so if you've wondered about the nitty gritty of digital or physical publishing, this article is for you.
Website
I created NSHipster in July of 2012 in an attempt to form a lasting writing habit. I committed to putting out a new article each week, and (for the most part) I've been able to stick to that. Having a consistent deadline keeps me motivated and accountable for writing something every week.
Here's the routine: on Monday mornings I wake up at 5AM, grab a bottle of Ito En tea, and get to work. Knowing that I need to get something out then and there allows me to stay focused on the task at hand.
Organization: Things.app
The first step is to figure out what to write about. I have a list of potential topics stashed away in Things.app, compiled from random ideas I get while programming, or while reading through Twitter.
With a topic in hand, then next step is to find as many relevant articles around the web as I can. Apple's documentation and guides serve as an outline of topics to discuss, while Stack Overflow questions serve as data points for where any confusion may lie. Any blog posts that come up in search also help to highlight any interesting tidbits or tricks.
And every so often, I'll find that Mike Ash has already written the definitive blog post on the subject, in which case I go back and find a new topic.
Writing: TextMate & Markdown
After an hour or so of research on the web and experimentation in Xcode, I'll have a basic outline, along with a handful of code samples for the article. At this point, I have enough to go on for a first draft—and more importantly, have sufficiently warmed up my writing muscles, so that the words flow a little more easily.
Everything is written in Markdown, allowing me to focus on the content. My non-Xcode editor-of-choice is TextMate, as it has been for nearly a decade.
With dozens of articles under my belt at this point, I'm able to write comfortably in the familiar voice that you've come to expect from NSHipster. Most articles start with a philosophical interlude, or some background to provide a broader context for that week's topic. What follows is a top-level description of the class, method, function, project, or language feature being discussed, describing what it is, how it works, and why it's cool and significant. Each section follows in a similar fashion, using code samples, figures, and tables to explain each concept. Finally, the conclusion aims to wrap up any concepts introduced in the beginning, and motivate the reader to use what they've learned in their own work.
Editing: Marked.app
Once I've gotten most of the first draft finished, I'll throw the markdown file into Marked to get a sense of the final document as it will read on the site. With all of the formatting in place, I'm able to get a better idea of the actual length and flow of the document. The readability tools and Mac OS X's built-in grammar and spell check act as a first-pass for typos.
Generating: Jekyll & Compass
Jekyll is what brings all of the content together to generate the final HTML of the site. The source code for the site has evolved gradually over time to incorporate things like RSS, syndication on Twitter, Facebook, and Google+, and full-text search, as well as other best practices.
For CSS, I use Sass & Compass. Once you get used to Sass, there's just no going back to doing CSS by hand. The site itself is long overdue for a re-align, so look forward to that at some point.
Hosting: Amazon S3
I recently switched hosting over from Heroku to Amazon S3. As much as
I miss ease and simplicity of Heroku's git-based
deployment, S3 can serve static websites much more
quickly and inexpensively. Hosting in the
us-west-2
(Oregon) region also lends
some extra hipster cred, with its relative proximity
to Portlandia.
I use the ALIAS
feature of DNSimple to host the site
at the Apex domain nshipster.com
, rather
than a CNAME
like
www.nshipster.com
. Everything about
DNSimple has been a dream; I whole-heartedly
recommend them for as a DNS registrar and nameserver
provider.
Deploying: s3cmd & Transmit.app
Switching over from Heroku also meant coming up with
a deployment script. Fortunately, s3cmd makes it easy to
synchronize files from the Jekyll _site
build folder to my static hosting bucket. (If
anything goes wrong during deployment, or I need to
quickly futz around with something in S3 directly,
Transmit is
my go-to tool).
Before sending everything up to S3, I run HTML Tidy (with a
highly-customized config file to accomodate
HTML5), and run my HTML and XML (sitemap & RSS
feed) through gzip
.
By setting the 'Content-Encoding: gzip'
header on S3, compressed assets can be served
directly, which dramatically reduces the
size (and therefore transfer time) for files.
All together, the deploy script looks something like this:
jekyll build --config _config.en.yml
find _site/ -iname "*.html"
-exec tidy -config tidy.conf {} +
find _site/ -iname '*.html'
-exec gzip -n --best {} +
find _site/ -iname '*.xml'
-exec gzip -n --best {} +
for f in `find _site/ -iname '*.gz'`; do
mv $f ${f%.gz}
done
s3cmd sync --progress -M --acl-public
--add-header 'Content-Encoding:gzip'
--exclude '*.*'
--include '*.html' --include '*.xml'
--verbose
_site/ s3://nshipster.com/
Collaboration: GitHub
Using a static site generator like Jekyll has the additional benefit of tracking changes of documents over time with git. If someone finds an issue with an article, or has a correction to make, they can open a Pull Request.
And since all of the content is licensed under a Creative Commons BY-NC License, anyone is welcome to translate the source material into another language.
Internationalization: NSHipster.cn
Speaking of translation—over the last couple months, I've been working with translators to make NSHipster more accessible to Chinese-speaking audiences. It's still a work in progress, but I'm excited to give you a sneak peak at what we have so far: NSHipster.cn.
Book
Which brings us to the book. NSHipster: Obscure Topics in Cocoa & Objective-C is the culmination of all of my efforts so far with NSHipster. It combines articles from the site, along with new articles to create an essential resource for any aspiring iOS or Mac OS X developer.
I'll admit: I had no idea what I was getting myself into when I started. Turns out, writing and publishing a book is quite a bit different from a website. Working in the insulated, digital world of technology allows us to momentarily forget about most of the sharp edges of the real world. The process of writing the book was nothing if not a reality check.
Editing & Layout: Pages.app
I'm not proud of my process in creating the book. It was a long, manual slog using kludgy tools without much of a clue about what I was doing at any step in the process.
At first, I thought it would be pretty straightforward: run the site's articles through Pandoc and call it a day.
Nope.
After sinking at least 10 hours into hacking and tweaking every step of the process, I just wasn't able to produce anything that I could be proud of. Whether this is the fault of the tooling, or my inability to use it correctly, I can't help but conclude from my experiences that stylesheets just don't cut it when it comes to books: each page spread must be designed individually.
With this in mind, I turned to InDesign. After an hour or two of fiddling with content tools and templates, I threw in the towel and decided to just use Pages.
Yes, Pages. Seriously.
I even specifically upgraded to the latest iWork '13 version, which turned out to be even less capable than its predecessor.
What started as a command-line driven process became 40 hours of getting to know this WYSIWYG editor. To its credit, WYSIWYG can actually be a really nice way to design content, as it allows for copy-editing decisions to be made in a tight loop with its implications on layout. This was especially useful when it came to placing Conor Heelan's delightful animal illustrations.
Using Pages, I was able to generate the PDF that is available online, as well as the source document for the physical book. Even now, I'm still at a loss for what would have been a better solution.
Electronic Publishing: Gumroad
Of all of the options for selling and distributing online goods, Gumroad is the best. In just a few minutes, I was able to put together an attractive listing, with options for pre-sale and physical book add-ons.
Gumroad's dashboard analytics and tools provide an attractive view of sales, which was exciting to watch in real-time when I first hit publish. The small cut they take on each sale to host and handle payment (including international and state sales tax) was well worth it. I'll definitely be working with Gumroad again for my next project.
Physical Publishing & Fulfillment: CreateSpace
The good news: it's never been easier to self-publish
a book.

Here's how I did it:
- Create an account with CreateSpace. As I understand it, Amazon effectively cornered the market of Print on Demand by acquiring this company and buying all of the book printers it could find.
- Create a new title. In this case, it was a trade paperback book (6" × 9").
- Purchase ISBNs from Bowker. Since a unique ISBN is required for each retail distribution—including one for each digital format (PDF, epub, Kindle Mobi, iBooks)—I bought a 10 pack. (Don't bother buying a barcode, those can be easily generated for free elsewhere)
- Create the cover and internal content. CreateSpace has some pretty decent tools for proofing content. They were able to find issues with margin and bleed before sending out for a physical proof.
- Behold your book, now available for sale on Amazon. It's an incredible feeling, holding something you've created in your hands. This alone made everything worth it. CreateSpace offers impressive wholesale price for a physical book (between $10–15 for printing a book and shipping domestically or internationally)
Here's where I messed up:
Because I did a pre-order for physical books through Gumroad, it was up to me to translate those into wholesale orders from CreateSpace. Unfortunately, CreateSpace had no mechanism for bulk ordering online, and their support staff were unable to process that themselves. Their recommendation: go through the checkout process manually for each of the 1000+ orders.
Yikes.
Fortunately, this was the one part of the book writing process I was able to automate. Using Mechanize, I was able to write a Ruby script to go through each order, one-by-one, and manually create an order for each. Because the user input wasn't 100% correctly formatted, I had to keep watch over the script as it ran, ready to fix any errors as they came up. The process took the better part of two days. I'll try to get that cleaned up and packaged into a proper Ruby library soon.
Some other fun facts:
- I ran into the outgoing SMTP limit for my Gmail account, forcing me to create and send from several email aliases.
- I used Numbers.app to clean up the
.csv
file provided by Gumroad, but because of its delightful insistence on automatically formatting postal codes as numbers, anything with a leading zero got screwed up. NSHipsters in Massachusetts: I love you, but you were the bane of my existence for an afternoon. - For a while, each error would silently create an
order sent to my house. That was the first time a bug
has so directly translated into a monetary cost for
me. For fun, I added an
afplay cha-ching.aiff
after each order from that moment on. - At some point, the script started to fail silently because an order to the Ukraine triggered a fraud warning for my American Express card. Thanks to their amazing customer support, I was able to get everything running smoothly within 5 minutes.
Inspiration
So why did I write the book, anyway? There are 3 primary reasons:
- To Craft a Structured Narrative: NSHipster.com has built up its archive week-by-week, and is likewise organized by its particular chronology. And though articles are organized by topic in a long footer, it can be difficult for new readers to know where to start. A book allows for a linear narrative structure in a way that a blog simply cannot. A great deal of care was put into structuring the content in the book according to a logical progression, such that one could read from start to finish. There are also a number of articles that are exclusive to the book, dealing primarily with the cultural and emotional aspects of coding.
- To Provide Something Tangible: It's been amazing to see how much readers have related to NSHipster. A tangible object like a book offers a tangible something that you can be proud of and cherish. It also creates a tangible means of supporting the site, in the same way that one might for a favorite public radio station, podcast, or website.
- To Change My Life: Last week, on New Year's Eve, I married the most amazing person I've ever met. Thanks to your generous support, she and I are able to start our lives together comfortably, with something set aside for a house downpayment in the future (as well as a lovely honeymoon in Hawaii; I get back later this week). I can't begin to express my gratitude for all of the blessings I've had in my work. Thank you.