I've Just Launched "Pwned Passwords" V2 With Half a Billion Passwords for Download Last August, I launched a little feature within Have I Been Pwned (HIBP) I called Pwned Passwords. This was a list of 320 million passwords from a range of different data breaches which organisations could use to better protect their own systems. How? NIS...
The 17-Klein Bottle - Numberphile 17 Klein Bottles become 1 - featuring Cliff Stoll and the glasswork of Lucas Clarke. More links & stuff in full description below ↓↓↓ More Cliff videos: http://bit.ly/Cliff_Videos More Klein Bottle videos: http://bit.ly/KleinBottles Buy glassware from ...
In depth guide to running Elasticsearch in production In this post, I discuss in-depth information on how to manage elasticsearch in production
The Zen of Go | Dave Cheney This article was derived from my GopherCon Israel 2020 presentation. It’s also quite long. If you’d prefer a shorter version, head over to the-zen-of-go.netlify.com.
Should you self-host Google Fonts? A deep dive into the performance implications of using Google Fonts (good and bad) and whether self-hosting is better.
Shared Source CLI Essentials: David Stutz, Ted Neward, Geoff Shilling:<PHONE_NUMBER>517: Amazon.com: Books Shared Source CLI Essentials [David Stutz, Ted Neward, Geoff Shilling] on Amazon.com. *FREE* shipping on qualifying offers. <div> Microsoft's Shared Source CLI (code-named Rotor ) is the publicly available implementation of the ECMA Common Language Infras...
Entity Framework Weekly Status Updates (2020) · Issue #19549 · dotnet/efcore This issue contains status updates from the Entity Framework team to provide insight into what we are focused on, progress made, and other interesting highlights from the week. More Information Bro...
OpenVPN Client Connect For Windows | OpenVPN By accessing this website, you agree to our data policy and privacy policy Learn More
A Simple Range Proof From Polynomial Commitments - HackMD $$ \def\Fp{\mathbb{F}_p} \def\FF{\Fp^{\scriptscriptstyle{(<n)}}[X]} \def\com{\mathbf{com}} \def\ran
Entity Framework Weekly Status Updates (2020) · Issue #19549 · dotnet/efcore This issue contains status updates from the Entity Framework team to provide insight into what we are focused on, progress made, and other interesting highlights from the week. More Information Bro...
Recreating 3 Seconds of STAR WARS (Green Screen Model) This Episode ► Watch us attempt to recreate 3 seconds of Star Wars (1977) footage. Not with Drones or 3d graphics, but with the TIE fighter model I built as a 12 year old. Recommended Gear: Venus Optics Laowa 12mm f/2...
Ella: A Vibrator You Control From Your Phone Ella comes with an app, putting vibrations one tap away. For solo or partner play, in the same room or around the world.

Entity Framework Weekly Status Updates (2020) · Issue #19549 · dotnet/efcore This issue contains status updates from the Entity Framework team to provide insight into what we are focused on, progress made, and other interesting highlights from the week. More Information Bro...
Entity Framework Weekly Status Updates (2020) · Issue #19549 · dotnet/efcore This issue contains status updates from the Entity Framework team to provide insight into what we are focused on, progress made, and other interesting highlights from the week. More Information Bro...
Discussion on lazy-loading of navigation properties · Issue #3797 · dotnet/efcore Note: Issue #10509 has been created to track actual work on lazy-loading. The new issue is locked so that it can be subscribed to for updates on the implementation without noise. This issue has bee...
Software platform dependency analysis with F# and Neo4j It's common for software platforms to consist of many deployed services that communicate with each other and connect to resources over the…
VSTS build failed with nuget buildwebcompiler · Issue #354 · madskristensen/WebCompiler Hi @madskristensen Could you have look please I enable compile on build as seen in the picture below. My scss got compile nicely. Then when i check in the code to source control for DevOps continuo...
Introduction :: Learn TLA+ TLA+ is a formal specification language. It’s a tool to design systems and algorithms, then programmatically verify that those systems don’t have critical bugs. It’s the software equivalent of a blueprint.
Episode 45 - Migrating Stack Overflow to .NET Core with Nick Craver In this episode of The .NET Core podcast we talked with Nick Craver about the on-going migration of Stack Overflow to .NET Core
Under the hood of “Default Interface Methods” 'Default Implementations in Interfaces', sometimes referred to as just 'Default Interface Methods' (DIM) appeared in C# 8. In case you've never heard of the feature, here's some links to get you started:
MongoDB Transactions in .NET Applications This post gives you a general idea on Database Transactions, defines what transactions in MongoDB are and explains how to run your MongoDB as a replicaset. You will also learn how to use MongoDB Transactions in a .NET application.
Inrupt, Tim Berners-Lee's Solid, and Me For decades, I have been talking about the importance of individual privacy. For almost as long, I have been using the metaphor of digital feudalism to describe how large companies have become central control points for our data. And for maybe half a deca...
DDD East Midlands Conference 2020: Call for Speakers / Call for Papers (CfP) @ Sessionize.com Sessionize is the smart way to manage Call for Papers, Speakers and Agenda for your conference.
hediet/vscode-debug-visualizer An extension for VS Code that visualizes data during debugging. - hediet/vscode-debug-visualizer
Part 1 - Introduction and Setting up the REPL As a web developer, I use relational databases every day at my job, but they’re a black box to me. Some questions I have: What format is data saved in? (in memory and on disk) When does it move from memory to disk? Why can there only be one primary key pe...
Daniel Rubino on about.me I am a Microsoft specialist, writer, and Executive Editor in Massachusetts. Visit my company website.
Veniqa - Open-source E-commerce Solution. Built using MEVN Stack (Node.js, Express.js, Vue.js, MongoDB) and more. 100% Code Customizable. Veniqa - Open-source E-commerce Solution. Built using MEVN Stack (Node.js, Express.js, Vue.js, MongoDB) and more. 100% Code Customizable.
ErikEJ/EFCorePowerTools Entity Framework Core Power Tools - reverse engineering, migrations and model visualization for EF Core - ErikEJ/EFCorePowerTools
Am I generating email link tokens correctly? I am developing a reliable system for token generation and validation used mainly for links in confirmation emails (reset password request, change email flow, activate an account, etc...). There a...
Do CPU credits exist for c5d.large instances? And if not, why not? I've been paranoid that the websocket feed I was listening to on a t3.micro instance was being inhibited by cpu steal time from other instances under the same hypervisor. So I switched over to a c5d.
auto as a template argument placeholder for a function parameter C++20 allows using auto for function parameter type. Does it also allow using auto as a template argument placeholder (not similar, but in the spirit of C++17 template<auto> in a way) for fu...
Can I safely update Windows 10? I remember reading in the news that some Windows 10 update destroys your installation a couple of weeks ago. Currently, I am on Version 1909 (Nov 17 2019) Build 18363.592. Is it safe to run the up...
Is the strcasecmp algorithm flawed? I am trying to reimplement the strcasecmp function in C and I noticed what appears to be an inconsistency in the comparison process. From man strcmp The strcmp() function compares the two strin...
Use xmm for stack prolog zeroing rather than rep stos by benaadams · Pull Request #32538 · dotnet/runtime Use xmm registers to clear prolog blocks rather than rep stosd. rep stos does have a shallower growth rate so it will eventually overtake; however unlikely in the size range for the stack clearance...
Why in Linux the rights to execute the file doesn't work? I create a bash script in the user directory that, when executed, for example, displays the text "Hello world". At the same time, I want to be able to execute it only myself (the owner of the file)...
microsoft/electionguard ElectionGuard is a set of open source software components that can be used to create and publish end to end veriable elections as well create a publishable artifact for ballot comparison audits. -...
Channel 9 provides videos for developers, delivered by the people who work behind the scenes at Microsoft. Channel 9 is a community. We bring forward the people behind our products and connect them with those who use them. We think there is a great future in software and we're excited about it. We want the community to participate in the ongoing conversation. ...
What To Do When You Reach Number 1 On Hacker News - Blog by Jared Nelsen A reaction to having an article blasted across the entire internet
NimbleText Data Manipulation, Text Manipulation, Code Generation and Automation You can be more awesome at your job by keeping this tool always within reach.
TimeSnapper, automatic screenshot software, auto screen capture TimeSnapper is an Automatic Screenshot Journal. Play back your week just like a movie. Track time and get a productivity scorecard with a grade for each day! Use it to improve yourself
Homepage | Plaid Develop the future of fintech with Plaid, the technology layer for financial services. Plaid enables applications to connect with users’ bank accounts.
Vue Vixens - Workshops for Foxy People to Learn Vue.js Vue Vixens - Workshops for Foxy People to Learn Vue.js


Beta This is a test version of the layout of this page. Take the survey to help us improve it
Guidance
Guidance on first aid provision.
This is for:
It applies to:
Please note information about first aid training providers in this advice is no longer current. The Health and Safety Executive provides guidance about finding appropriate first aid training and qualifications:


Add Pool
Name:
Description
Subnet
Protocol
HTTP
HTTPS
TCP
Load Balancing Method
ROUND_ROBIN
LEAST_CONNECTIONS
SOURCE_IP
Admin State
UP
DOWN
Cancel
OK


thread.cc File Reference
Routines to manage threads. More...
#include "copyright.h"
#include "system.h"
#include "msgerror.h"
#include "thread.h"
#include "switch.h"
#include "synch.h"
#include "scheduler.h"
#include "interrupt.h"
#include "mmu.h"
#include "machine.h"
Detailed Description
Routines to manage threads.
There are four main operations:
- Constructor : create an inactive thread
- Start : bind the thread to a process, and prepare it to be dispatched on the CPU
- Finish : called when the forked procedure finishes, to clean up
- Yield : relinquish control over the CPU to another ready thread
- Sleep : relinquish control over the CPU, but thread is now blocked. In other words, it will not run again, until explicitly put back on the ready queue.
Define Documentation
| #define ALIGN_INF |
( |
val, |
|
|
boundary |
|
) |
((val) & (~((boundary)-1))) |
|
| #define ALIGN_SUP |
( |
val, |
|
|
boundary |
|
) |
((((val)-1) & (~((boundary)-1))) + (boundary)) |
|
| #define STACK_FENCEPOST 0xdeadbeef |
|
| #define UNSIGNED_LONG_AT_ADDR |
( |
addr |
|
) |
(*((unsigned long int*)(addr))) |
|
Function Documentation
| void ThreadPrint |
( |
int |
arg |
) |
|
|
Generated on Mon Oct 17 19:44:17 2005 for Nachos by
1.4.4


--- layout: post title: Rails3 application with Jruby tags: - jruby - rails - Solutions - Technology status: publish type: post published: true meta: _edit_last: '1' _su_rich_snippet_type: none dsq_thread_id: '264820960' description: rails3 application with jruby keywords: rails, jruby, application --- If you are living on edge and you are using Rails3 then you need follow this. Rails3 With JRuby Hi All, Recently i have started a Rails3 application which will use Jruby. I have gone through some of the steps for that application up and running. If you are using RVM then it's easy to install Jruby. In the latest RVM version Jruby-1.6.0 is the default one. So my recommendation is first update the RVM itself then install Jruby. To update RVM and get the Jruby-1.6.0 installed
rvm update # But if you are already on the latest RVM then you will get message the "rvm update has been removed". #To install Jruby rvm install jrubyAfter installing Jruby you need to switch your environment to Jruby
rvm use jruby #Using /Users/arunagw/.rvm/gems/jruby-1.6.0Can check by using
~~>jruby -v jruby 1.6.0 (ruby 1.8.7 patchlevel 330) (2011-03-15 f3b6154) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_22) [darwin-x86_64-java] ~~>ruby -v jruby 1.6.0 (ruby 1.8.7 patchlevel 330) (2011-03-15 f3b6154) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_22) [darwin-x86_64-java]Now you are ready to play with Jruby stuff. You can do some basic stuff like irb to test things
irb #IRB will also work jirb # JIRB will also workTime to install Rails in Jruby environment
gem install rails #Will also work jruby -S gem install railsAll set. Create your Rails application.
rails new my_appAbove command will create a rails application but not useful for Jruby platform. For all setting just run
rails new my_app -m http://jruby.org/rails3.rbThis will do all setup for you for a rails3 app in Jruby. You may need to change/update your Gemfile for your gems. Problems i faced.
rake db:create
will give you an error if you are using Mysql with Jruby.
uninitialized constant Mysql::ErrorHere is the ticket information about this. Solution for this problem right now is to create database manually. After that all will work. No more hurdles i found. If you got in any problem let me know. We will try to solve that together. Links may be useful to find stuff 1. Jruby Activerecord adaptor. 2. My Sample Application 3. RVM ----- Arun


“Ayn Rand is the greatest human being who has ever lived. Atlas Shrugged is the greatest human achievement in the history of the world. Since Ayn Rand has designated Nathaniel Branden as her ‘intellectual heir’ and has repeatedly proclaimed him to be an ideal exponent of her philosophy, he is to be accorded only marginally less reverence than Ayn Rand herself.” — Nathaniel Branden, Judgment Day : My Years With Ayn Rand


Full Video: Reporter Arrested After Calling Impeachment Hearings a Scam
Exclusive: Owen Shroyer booked in Washington, D.C.
Update #3: Alex Jones is live with the reporter who got arrested:
Update #2: Owen Shroyer gives his first statement after being arrested:
Update: Owen Shroyer has been released from jail. Tune in for an interview with Shroyer and for more details around Noon Central.
Reporter and radio host Owen Shroyer was arrested after he confronted Rep. Jerry Nadler (D-NY) and called the ongoing impeachment hearings a scam.
Footage provided by Banned.video
Shroyer, who hosts The War Room on weekdays, was arrested on Monday morning during a House Judiciary Committee hearing headed by Nadler, who said the House could vote on articles of impeachment against President Trump this week.
“Jerry Nadler and the Democrat Party are committing treason against this country, and you can kick me out, but he’s the one committing crimes! You are, Jerry Nadler!” Shroyer yelled. “…
Here’s the arrest below:
The arrest highlights a double standard in Washington, D.C., in which establishment-approved activists are allowed to confront congressmen in their faces, but a reporter like Shroyer is arrested for protesting a House representative from a distance.

Interestingly, Nadler is battling for media attention on the same day the long-awaited Inspector General report is expected to be released, which examined the FBI’s actions in the early stages of Operation Crossfire Hurricane.
This story is developing.
Below is the arrest from other angles (also watch and share on Twitter):


Realtime Retrospective
Realtime Retrospective
What is it?
The Realtime Retrospective technique was created by Emily Webber1 in the UK. This is a great way to capture feedback from a large number of participants in realtime over an extended period of time. By the middle/end of the Realtime Retrospective you should have:
- Feedback in a timeline like fashion that are both positive and negative things
- A capture of the mood and reaction of people over the course of time in a realtime manner
- Lots of sticky notes on a wall
Why use Realtime Retrospective?
- Let’s face it, nobody likes filling out surveys, especially if it’s more than 3 questions. Why not have them write unfiltered, uncensored, and quick feedback at the time they think of it? Realtime Retrospectives provide a low bar of entry and is voluntary and easy to participate anonymously.
- For long running days or weeks with multiple sessions/activities, you can visibly see people’s moods or grasp of the information in realtime
- When running similar sessions in quick succession, you may need to improve quickly and sometimes adjust on the fly.
Related Practices
- Timeline Retrospectives by Patrick Kua2 uses a similar approach to gathering feedback in a sequential order
- Linda Rising has a concept of the Continuous Retrospective3 that uses the timeline aspect of the Timeline Retrospective and to reflect on it everyday as a team.
Who do you need?
- “Facilitator” (Person to setup/cleanup)
- People (anybody that was there during the timeframe)
Suggested Time
- ~10 Minutes setting up and cleaning up
- Wall is kept up over the course of 1-5 days for active participation
Difficulty
- Facilitator: Easy
- Participants: Easy
Facilitation Materials Needed
- Drawing paper roll4. Stickies tend to fall off walls otherwise
- 8x6 sticky notes5
- At least 3 different colors of small 3x3 square sticky notes6
- Markers
- Painters Tape
Process Phase
Realtime Retrospectives are a great way to reflect back and could be used during most any phase of the Double Diamond7 model.
Additional Resources for Red Hatters (we are working to share more broadly)
- Red Hatters can access secondary adaptation on how to facilitate a Realtime Retrospective here


%NAVBAR%
Dashboard - not connected
Print Monitor Info
Waiting...
Internet current weather
Waiting...


Image module.
MIT. See LICENSE for full details.
The image base class.
Construct the image.
This method embeds the image as a base64 encoded string into the application at compile-time. The path to the image must be passed to the compiler using the -J switch.
| filename | The filename to read the data from. |
This image to aid method chaining.
Clears the image of all pixel data and effectively makes it transparent.
This image to aid method chaining.
Specifies the contents of the image as a string. The string should contain binary data or, for some formats, base64-encoded data (this is currently guaranteed to be supported for PNG and GIF images). A set file takes precedence over the setting of data.
| string data | The image data. |
This image to aid method chaining.
Get the image data.
Base64 encoded image data.
Set the image format. Once set the image only accepts files or data in this format.
| string format | A valid image format. |
This image to aid method chaining.
tkd.image.imageformat for supported formats.
Get the image format.
The image format.
tkd.image.imageformat for returned formats.
Set the image file.
| string file | The name of the file. |
This image to aid method chaining.
Get the image file.
The file that was loaded for this image.
Set the image gamma.
| double gamma | The destination gamma. |
This image to aid method chaining.
Get the current image gamma.
A string containing the image gamma setting.
Set the image height.
| int height | The height to crop the image to. |
This image to aid method chaining.
Get the current cropped image height.
The current cropped image height. Returns 0 if no cropping is taking place.
Set the image palette. This setting set how many levels of color/gray are used.
| string palette | A string describing the palette to use. |
This image to aid method chaining.
Get the current palette.
A string describing the palette.
Set the image width.
| int width | The width to crop the image to. |
This image to aid method chaining.
Get the current cropped image height.
The current cropped image height. Returns 0 if no cropping is taking place.
Destroy this image.


---
layout: post
title: 2/17 school work
date: '2014-02-17T20:21:00.001-07:00'
author: April
tags:
- homeschool-journal
modified_time: '2014-02-17T20:21:35.546-07:00'
blogger_id: tag:blogger.com,1999:blog-6400085873105072120.post-2612487949487691190
blogger_orig_url: http://www.svlark.com/2014/02/217-school-work.html
---
History : finished reading chapter 19 with review questions, narration and copy work
Audrey read aloud 'Teach Us Amelia Bedelia'
Math: reviewed number bonds through 8
Spelling lesson 20
Swim Lessons
Made sea shell necklaces
Poem practice on 'What are Heavy' and 'Devotion' from Poems to Learn by Heart
GranMiri read us 'Custard the Cowardly Dragon' and 'Blocks' from Poems to Learn by Heart
Audrey read aloud Chapter 9 from Night of the Ninjas
Read aloud 'The Arkansas Traveler' from Little Town in the Ozarks


A function that will return an HTML string to display during virtual scrolling. By default, nothing will be displayed - which may be undesired. This allows you to display a loading spinner or message.
(function)
: Defaultnull
.
{
scrollLoader: function () {
return "Loading...";
}
}
Use the scrollbar to quickly scroll up and down to see the scrollLoader message.


#ObsessedWithCHEN EXO's Chen trending number one worldwide as fans obsess over his 'Obsession' teasers
by sl278Fans are obsessing over Chen as the newest EXO idol member has revealed his teaser images.
It seems like fans are really digging the new concept EXO has in store, and have been using the hashtag #ObsessedWithCHEN to show their love and appreciation for the idol.
It seems like the EXO comeback has been hyped up tremendously with fans excited about every revealing teaser. Are you excited?


css4j 2.0.6 API
This project implements an API very similar to W3C's CSS Object Model API in the Java™ language, and also adds CSS support to the DOM4J package. It targets several different use cases, with functionalities from style sheet error detection to style computation.
Overview
This implementation can be used in several ways: with stand-alone style sheets, with its own DOM implementation, combined with DOM4J, or by wrapping a pre-existing DOM tree.
You can play with independent style sheets created with the createStyleSheet("title", "media")
method of the
CSSStyleSheetFactory
interface.
There are three implementations of that interface:
CSSDOMImplementation
, the native DOM implementation.DOMCSSStyleSheetFactory
for the DOM Wrapper.- If you use DOM4J, get it through
XHTMLDocumentFactory.getStyleSheetFactory()
.
The document back-end is only important if you plan to use the sheets inside a document.
The resulting style sheets are empty, but you can load a style sheet with the AbstractCSSStyleSheet.parseStyleSheet(source)
method (see Parsing a Style Sheet).
One of the most important functionalities in the library is the ability to compute styles for a given element. In practice, to obtain the 'computed' or 'used' values required for actual rendering a box model implementation is needed, and also device information. The library provides a simple box model that could be used, but the details of the rendering device can be more difficult.
Depending on the use case, the target device may not be the same one where the library is running (and some exact details hence not available).
To help in the computation, the library defines the DeviceFactory
interface to supply device and media-specific data (also provides
the objects required by media queries to work).
Using css4j's native DOM implementation
You can create a DOM document from scratch and use the related DOM methods to programmatically build a document: just use the provided DOM implementation
(io.sf.carte.doc.dom.CSSDOMImplementation
). If you want to parse an existing document, the procedure depends on the type of document: to parse
an XML document (including XHTML documents), you can use this library's XMLDocumentBuilder
, while to parse an HTML one (or an
XHTML document that does not use namespace prefixes) you can use the validator.nu
HTML5 parser.
An example with that parser follows:
import java.io.Reader; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import io.sf.carte.doc.dom.CSSDOMImplementation; import io.sf.carte.doc.dom.DOMElement; import io.sf.carte.doc.dom.HTMLDocument; import io.sf.carte.doc.style.css.CSSComputedProperties; import io.sf.carte.doc.style.css.CSSTypedValue; import io.sf.carte.doc.style.css.RGBAColor; import io.sf.carte.doc.xml.dtd.DefaultEntityResolver; import nu.validator.htmlparser.dom.HtmlDocumentBuilder; [...] // Instantiate DOM implementation (with default settings: no IE hacks accepted) // and configure it CSSDOMImplementation impl = new CSSDOMImplementation(); // Alternatively, impl = new CSSDOMImplementation(flags); // Now load default HTML user agent sheets impl.setDefaultHTMLUserAgentSheet(); // Prepare builder HtmlDocumentBuilder builder = new HtmlDocumentBuilder(impl); // Read the document to parse, and prepare source object Reader re = ... [reader for HTML document] InputSource source = new InputSource(re); // Parse. If the document is not HTML, you want to use DOMDocument instead HTMLDocument document = (HTMLDocument) builder.parse(source); re.close(); // Set document URI document.setDocumentURI("http://www.example.com/mydocument.html");
Then you have a CSS-enabled document. To compute styles, use getComputedStyle
:
DOMElement element = document.getElementById("someId"); CSSComputedProperties style = element.getComputedStyle(null); // Next line could be 'String display = style.getDisplay();' String display = style.getPropertyValue("display"); // If you use a factory that has been set to setLenientSystemValues(false), next // line may throw an exception if the 'color' property was not specified. // The default value for lenientSystemValues is TRUE. RGBAColor color = ((CSSTypedValue) style.getPropertyCSSValue("color")).getRGBColorValue(); // Suppose that the linked style sheet located at 'css/sheet.css' declares: // background-image: url('foo.png'); String image_css = style.getPropertyValue("background-image"); String image_uri = ((CSSTypedValue) style.getPropertyCSSValue("background-image")).getStringValue(); // Then, because we already set the document URI to "http://www.example.com/mydocument.html", // image_css will be set to "url('http://www.example.com/css/foo.png')", // and image_uri to "http://www.example.com/css/foo.png"
The CSSComputedProperties
interface extends from an interface similar to W3C's
CSSStyleDeclaration
,
adding methods like getComputedFontSize()
or getComputedLineHeight()
.
If you are computing styles for a specific medium, tell the document about it (see "Media Handling"):
document.setTargetMedium("print");
Conformance with the DOM specification
This library's native DOM implementation has some minor behavior differences with what is written in the DOM
Level 3 Core Specification. For example, on elements and attributes the Node.getLocalName()
method returns the tag name instead of
null
when the node was created with a DOM Level 1 method such as Document.createElement(). Read the io.sf.carte.doc.dom
package
description for additional information.
Usage with the DOM Wrapper
If you choose to build your document with your favorite DOM implementation instead of the CSS4J one or the DOM4J back-end, you can use the DOMCSSStyleSheetFactory.createCSSDocument(document)
method to wrap a pre-existing DOM Document. Example:
DOMCSSStyleSheetFactory factory = new DOMCSSStyleSheetFactory(); CSSDocument document = factory.createCSSDocument(otherDOMdocument);
Unlike the native DOM or the DOM4J back-end, the DOM resulting from the DOM wrapper is read-only, although you can change the values of some nodes.
Consistency of different DOM implementations
Beware that the computed styles found by each method (native DOM, DOM4J back-end or DOM wrapper) may not be completely identical, due to differences in the
underlying document DOM implementations. Behaviour may vary due to, for example, a pseudo-class like :target
being used (DOM4J has no documentURI
support so it never matches).
Such cases would be rare, though (no real-world tests have shown that). If you find a difference in styles computed from different back-ends that you believe to be a bug, please report.
Configuring the cascade
Depending on your use case, you may need to set the user agent (UA) style sheet.
The library supports two different UA sheets, one for STRICT
('standards') mode and another for QUIRKS
.
To set either of those sheets, first obtain an instance of the factory that you are using:
// Instantiate the new factory or get it from an object that you are already using. AbstractCSSStyleSheetFactory cssFactory = ...
If you are using the DOM4J classes, you may want to do:
AbstractCSSStyleSheetFactory cssFactory = XHTMLDocumentFactory.getInstance().getStyleSheetFactory();
If you are processing HTML, css4j's default HTML5 UA sheet (based on W3C/WHATWG recommendations) should be appropriate for you:
cssFactory.setDefaultHTMLUserAgentSheet();
But if you want to set your own UA sheet, first obtain a reference to the sheet:
BaseCSSStyleSheet sheet = cssFactory.getUserAgentStyleSheet(CSSDocument.ComplianceMode.STRICT);
This is assuming the STRICT
mode, i.e. that you use documents with a DOCTYPE
, otherwise use QUIRKS
(or you may want to set both UA sheets).
If the UA sheet already contains rules (it is empty by default), clean it:
sheet.getCssRules().clear();
And now load the new sheet:
Reader reader = ... [reads the UA sheet] sheet.parseStyleSheet(reader, CSSStyleSheet.COMMENTS_IGNORE); reader.close();
As the UA sheet's comments are rarely of interest at the OM level, they were ignored during the parse
process (notice the COMMENTS_IGNORE
flag).
Note: this implementation does not support important
style declarations in the UA sheet.
Setting the user style sheet
There is also the possibility to set a user style sheet (with 'user' origin) via
setUserStyleSheet
:
Reader reader = ... [reads the user sheet] cssFactory.setUserStyleSheet(reader); reader.close();
Both important
and normal declarations are supported in the
user style sheet.
Media Handling
By default, computed styles only take into account generic styles that are common to all media. If you want to target a more specific medium,
you have to use the CSSDocument.setTargetMedium("medium")
method. For example, if your document has the following style sheets linked:
<link href="http://www.example.com/css/sheet.css" rel="stylesheet" type="text/css" /> <link href="http://www.example.com/css/sheet_for_print.css" rel="stylesheet" media="print" type="text/css" />
Computed styles will initially take into account only the "sheet.css" style sheet. However, if you execute the following method:
document.setTargetMedium("print");
Then all subsequently computed styles will account for the merged style sheet from "sheet.css" and "sheet_for_print.css".
This way to tie a document with a medium is not totally standard, as the W3C APIs would probably expect a DeviceFactory
-related object implementing the
ViewCSS
interface and referencing the document,
but this approach allows to isolate DOM logic inside DOM objects and keep the DeviceFactory
for media-specific information only.
Style Sheet Sets
The library supports alternative style sheets. Use CSSDocument's methods enableStyleSheetsForSet, getStyleSheetSets, getSelectedStyleSheetSet and setSelectedStyleSheetSet. For example, if you have a document with these linked sheets:
<link href="http://www.example.com/commonsheet.css" rel="stylesheet" type="text/css" /> <link href="http://www.example.com/alter1.css" rel="alternate stylesheet" type="text/css" title="Alter 1" /> <link href="http://www.example.com/alter2.css" rel="alternate stylesheet" type="text/css" title="Alter 2" /> <link href="http://www.example.com/default.css" rel="stylesheet" type="text/css" title="Default" />
Initially, sheets 'alter1.css' and 'alter2.css' will not be used to compute styles. But then you can write code like the following:
String defset = document.getSelectedStyleSheetSet(); // Sets 'defset' to "Default" document.setSelectedStyleSheetSet("Alter 1"); // Selects the set with title "Alter 1" document.setSelectedStyleSheetSet("Alter 2"); // Selects the set with title "Alter 2"
These methods have been removed from the DOM standard unfortunately, but you can still read the specification at the CSSOM 5 December 2013 Working Draft.
Style Sheet Error Checking
You can check for errors and warnings in the document's sheets using the non-standard getErrorHandler
method. Example:
if (document.getStyleSheets().item(0).getErrorHandler().hasSacErrors()) ... error processing / reporting
The merged style sheet obtained from the getStyleSheet
method has the merged error/warning state from the document's active sheets.
A typical source of errors are the non-compliant IE hacks, like prefixing property names with an asterisk (you may want to use the proper NSAC flags when creating the factory, see Compatibility with legacy browsers), or charset rules found in the wrong place.
Override Styles
Override styles, that come after the author style sheet in the cascade algorithm, are supported. For example:
element.getOverrideStyle(null).setCssText("padding: 6pt;");
Override styles are defined at the DocumentCSS interface.
Parsing a Style Sheet
Although document's style sheet fetching and parsing is automatic with this library,
it is possible to manually parse rules from a source stream with the CSSStyleSheet.parseStyleSheet(Reader, short)
method:
Reader re = ... sheet.parseStyleSheet(re, COMMENTS_AUTO);
The new css rules found in the source stream are added to the already present ones, i.e. the sheet is not reset by this method (although the error handler is).
When the second argument is COMMENTS_IGNORE
, the comments in the source stream are ignored when parsing
(see Accessing Style Sheet Comments).
The new CSS rules found in the source stream are added to the already present ones, i.e. the sheet is not reset by this method (although the error handler is), so if you want to refill a sheet you need to clear the rules before parsing:
sheet.getCssRules().clear();
Compatibility with legacy Browsers
Today's style sheets often contain non-conformant styles that target specific versions of old web browsers, like Internet Explorer. Several web sites contain information about that, including:
Although it could be argued whether those hacks should be used or not, the point is that actual style sheets do contain them, so this library supports them.
By default, a factory is configured to use a flagless NSAC parser which would produce an error on any of those non-standard constructs, but a set of compatibility flags can be specified in the constructors for the factory implementations. The different flags are documented in the NSAC javadocs.
The flags available at the time of this guide's update are the following:
STARHACK
. When set, the parser will handle asterisk-prefixed property names as accepted, normal names.IEVALUES
supports values ending with\9
or\0
, as well as progid filters and IE expressions.IEPRIO
allows values ending with the'!ie'
priority hack.IEPRIOCHAR
accepts values with an'!important!'
priority hack (note the'!'
at the end).
The object model manages these compatibility values in parallel to standard ones. For example, after parsing this declaration
with IEVALUES
set:
width: 900px; width: 890px\9;
its serialization would be identical (if the flag was set correctly):
width: 900px; width: 890px\9;
but the declaration's length shall be only 1
. And computed styles only use the standard values unless there are
no alternatives (no standard value was set). The workings are similar for IEPRIO
and IEPRIOCHAR
:
width: 890px !ie; width: 890px !important!;
with the last one being handled as of important
priority. Values created by IEPRIOCHAR
are never used
in computed styles.
Instead, declarations including asterisk-prefixed property names (created by STARHACK
) always increase the declaration's
length. For example, the length of the following declaration would be 2
:
width: 900px; *width: 890px;
If you want to use these flags at the NSAC level (instead of the Object Model), you may want to read the 'Parser Flags' section in the
NSAC package description, as well as the documentation for the individual flags in
Parser.Flag
.
CSS Style Formatting
The serialization of the cssText
attribute in rules and
style declarations can be customized with an implementation
of the StyleFormattingContext interface.
You can set your StyleFormattingFactory
(which produces your customized formatting context) to the sheet factory with the CSSStyleSheetFactory.setStyleFormattingFactory
method, or subclass your base factory and override the createDefaultStyleFormattingFactory method.
Look at the DefaultStyleFormattingContext class for an example of a formatting context implementation.
There is also the possibility to customize the default serialization of string values, with the CSSStyleSheetFactory.setFactoryFlag(byte) method. You can set two flags that govern which quotation you prefer, or keep the default behaviour:
- Default: Try to keep the original quotation (single or double quotes), unless the alternative is more efficient.
- STRING_DOUBLE_QUOTE: Use double quotes unless single quotes are more efficient (when the string contains more double quotes than single).
- STRING_SINGLE_QUOTE: Use single quotes unless double quotes are more efficient (when the string contains more single quotes than double).
Accessing Style Sheet Comments
CSS style sheets often have comments, like:
/* This is a preceding comment */ p {color: blue; } /* This is a trailing comment */
(XML-style comments can also be present in a style sheet, but both NSAC and the CSSOM skip them.)
There is no standard CSSOM API for accessing comments in style sheets, but the AbstractCSSRule.getPrecedingComments()
and getTrailingComments()
methods are provided for that:
List<String> comments = document.getStyleSheets().item(0).getCssRules().item(3).getPrecedingComments(); List<String> tcomments = document.getStyleSheets().item(0).getCssRules().item(3).getTrailingComments();
By default, comments are parsed with the COMMENTS_AUTO
mode, which should be appropriate for human-readable sheets like the one shown above. But a lot of sheets are serialized
in a way that there are no newline characters (or only a few). For these cases,
COMMENTS_PRECEDING
could be used in
parseStyleSheet(Reader,short)
,
and all the comments will be considered as belonging to the next rule. With COMMENTS_IGNORE
,
all comments found while parsing the sheet will be ignored.
The comments preceding a rule will be included in the text returned by the sheet's
AbstractCSSStyleSheet.toString()
and toStyleString()
methods,
while other comments (located at places that cannot be easily related to a rule) are lost.
Comments in the default HTML style sheet are not available, as the parser is instructed to ignore them when parsing.
Rendering-oriented interfaces
To help with the determination of 'used' values and the actual rendering, this library provides a few helper interfaces. The most important are:
DeviceFactory
. It is not a "factory of devices", but instead the object that delivers the relevant abstractions for a requested medium:StyleDatabase
andCSSCanvas
.
StyleDatabase
. Provides medium-specific information like available fonts and colors.
CSSCanvas
. Has knowledge of medium-specific information that depends (or may depend) on a specific viewport, like supported media features. It is linked to a viewport, if there is any. This interface is used to determine the state of active pseudo-classes.
Viewport
. It represents a viewport defined as per the CSS specifications.
The differences between style databases and canvases can be subtle, and for some media features it could be argued that they belong to one or the other. The basic idea is that style databases should be relatively easy to implement for a given medium, while canvases are probably only going to exist if there is an actual rendering engine implemented.
Java™ Runtime Environment Requirements
The classes in the binary packages have been compiled with a Java SE compiler with 1.8 compiler compliance level,
except for the module-info
file which targets Java 11.


Fancy buttons show an image and text with a disabled image and hover style. Click to demonstrate in-progress status.
FancySaveButton.java


{{ head }}
Prepare Model
QuantScheme Selection
W32 eval score >= target?
no
yes
BatchNorm Folding
eval score >= target?
no
yes
CLE
eval score >= target?
no
yes
AdaRound
eval score >= target?
no
yes
Target accuracy not achieved
Target accuracy achieved
Legend
: not visited
: applied successfully
: discarded
: failed with error
: error ignored
: not visited
: visited
{{ log }}


Oktober, 2010
Ketika saya masih terlalu muda dan masih sangat rentan, ayah saya memberi nasihat "apabila kamu dikritik oleh seseorang ingatlah bahwa semua orang didunia tidak ada yang memiliki kelebihanmu ". In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since. 'Whenever you feel like criticizing anyone,' he told me, just remember that all the people in this world haven't had the advantages that you've had.'
Note: Try to resize the browser window to see how justify works.


This High-Adventure Science activity was developed under a series of grants from the National Science Foundation (DRL DRL-0929774, DRL -1220756 ) in partnership with the University of California, Santa Cruz and National Geographic Society.
Copyright 2020 The Concord Consortium. All rights reserved. This is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. Please provide attribution to The Concord Consortium and the URL https://concord.org.
Questions? Comments? You can reach us at HAS@concord.org.


Class Router
Core router: - main store for all routes - application request routing process before request dispatching in core - currently matched route store - application url completing - by configured routes into mod_rewrite form - or into query string form, containing controller and action params - params query string building - primitive param value or array value representation possible
public static
|
#
GetInstance( array $routes = array() )
Get singleton instance by configured class In MvcCore app instance, optionaly set routes as first argument. |
public
|
#
__construct( array & $routes = array() )
Create router, optionaly set routes into new instance as first argument. |
public
|
|
public
array
|
|
public
|
#
AddRoutes( array $routes = array(), boolean $prepend = FALSE )
Append or prepend new request routes. Routes definition array shoud have items as array with route configuration definitions, stdClass with route configuration definitions or \MvcCore\Route instance. Keys in given array has to be route names as 'Controller:Action' strings or any custom route names with defined controller name and action name inside route array/stdClass configuration or route instance. |
public
|
#
AddRoute( array|stdClass|
Append or prepend new request route. Route definition array shoud be array with route configuration definition, stdClass with route configuration definition or \MvcCore\Route instance. In configuration definition is required route name, controller, action, pattern and if pattern contains regexp groups, its necessary also to define route reverse. Route name should be defined as 'Controller:Action' string or any custom route name, but then there is necessary to specify controller name and action name inside route array/stdClass configuration or route instance. |
public
|
|
public
|
|
public
|
#
GetRouteToDefaultIfNotMatch( boolean $enable,… )
Get state about request routing to 'Default:Default' route if no route matches. |
public
|
#
SetRouteToDefaultIfNotMatch( boolean $enable = TRUE )
Set route request to 'Default:Default' route if no route matches. |
public
|
#
Route(
Route application request by configured routes list. To route request - custom complete currentRoute property and Params property in referenced application request by current request url. Return routed route as current route as reference. This method is always called from \MvcCore app instance to dispatch controller by result route. |
public
string
|
#
Url( string $controllerActionOrRouteName = 'Index:Index', array $params = array() )
Generates url by: - 'Controller:Action' name and params array (for routes configuration when routes array has keys with 'Controller:Action' strings and routes has not controller name and action name defined inside) - route name and params array (route name is key in routes configuration array, should be any string but routes must have information about controller name and action name inside) Result address should have two forms: - nice rewrited url by routes configuration (for apps with .htaccess supporting url_rewrite and when first param is key in routes configuration array) - for all other cases is url form: index.php?controller=ctrlName&action=actionName (when first param is not founded in routes configuration array) |
protected
string
|
#
urlByQueryString( string $controllerActionOrRouteName, array $params )
Complete url with all data in query string |
protected
string
|
#
urlByRoute( string $controllerActionOrRouteName, array $params )
Complete url by route instance reverse info |
protected
|
#
routeByControllerAndActionQueryString( string $controllerName, string $actionName )
Complete current route and request params by query string |
protected
|
|
protected static
string[]
|
#
completeControllerActionParam( string $dashed = '' )
Complete controller and action names in both forms - dashed and pascal case |
protected static
|
$instance
Current singleton instance |
|
protected
|
$request
Current application request |
|
protected
array
|
$routes
All application routes to route request |
#
array()
|
protected
array
|
$urlRoutes
All application routes to build url |
#
array()
|
protected
|
$currentRoute
Current application http routes |
#
NULL
|
protected
boolean
|
$routeToDefaultIfNotMatch
Route request to Default:Default route if no route matches. |
#
FALSE
|


Hi there, {{.User.Email}}!
Looks like you have no access with this account, try logging in as another user.


04 Apr 2015
Julia and Project Euler
It has been a long time since last solved problem on PE. I was using C++/C
for most small integer(long long
) number problems, and use Python
for BigInt
operations, including the built-in pow
function.
However, it is exhausting to shift from language to language. Python is too slow, C++ is not friendly with BigInt
, even with boost
or simply GMP
, it is still consuming time.
Maybe, Julia is a remedy, it has some performance advantage over Python on pure arithmetic operations, also it provides elemental number operations like pow
and mod
, also has GMP
. It would be easy to port codes into Julia, if the user is familiar with Python and Matlab.


not responsive
a nice yellow background
contrasting nav
good black for navigation text
title text/contrast
wild-west look
A Modern/Wild West fusion theme seems really interesting and could make for a fun website so that's what I tried to go for here, I think with the jasmine as a background and some work between the bittersweet and gunmetal could make an interesting combination.
Croissant One
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
Raleway
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
Overpass
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
These 3 fonts have different feelings, with Croissant One being the classic cursive, and Raleway / Overpass both being sans-serif fonts.
I think Croissant One suits the titles and main headings quite nicely, since they're large and easy to read even in cursive.
I also think that Overpass can substitute for a minor headings and links on the navbar.
Raleway is one of my favourite fonts to use for text just because of how nice it looks.
Regular Text


about me
Alex H.
damnavi ego stuporem meum et nihil amplius interrogavi, ne viderer numquam inter honestos cenasse.
Websites
- alexh.name - this page
- 0101010.one - tech blog
formerly
cosmofox.netpomm.es
Links
Person
I'm a student in his 20s.
I'm studying philosophy and classics.
Technical stuff is all self-taught.
My main interest in technology is the conflict between simplicity, security and usability in software.
Selected Writings
- Hosting a (decently) secure XMPP / Jabber server
- Hosting a solid Mail Server (netqmail + dovecot + roundcube)
Projects
- SAVOIR VIVRE - Ein dezentrales Labor der Intraaktion
- Spreading version control and saner text formats outside programming
- Humanitarian / maritime rescue missions
Ranting againstDocumenting bad computer security- Hosting nice things
- Helping / administration of other good projects
- Occasional teaching
Contact
Email: a at alexh.name


ReplacementBot - Unit Test Set for VulcanFetcher
AbsentTeacher1
///
///
///
///
1
Description1
NewTeacher1
Comment1
AbsentTeacher2
///
///
///
///
2
Description2
NewTeacher2
Comment2
dyżury
///
///
///
///
///
///
///
///
That is special replacements set to make
ReplacementBot
testing easier


{% extends "base.html" %} {% block page_comment %}
Leave blank for no remote origin or to add origin later.


Select 8 movies that you want to enter the competition and then press the "Generate My Championship" button to proceed.
Generate My Championship
Selected: {{ quantitySelected() }} of {{ quantityToSelect }}


RealmPrivileges
public struct RealmPrivileges : OptionSet, CustomDebugStringConvertible
A description of the actual privileges which apply to a Realm.
This is a combination of all of the privileges granted to all of the Roles which the
current User is a member of, obtained by calling realm.getPrivileges()
.
By default, all operations are permitted, and each privilege field indicates an operation which may be forbidden.
-
Declaration
Swift
public let rawValue: UInt8
-
Declaration
Swift
public init(rawValue: RawValue)
-
If
false
, the current User is not permitted to see the Realm at all. This can happen only if the Realm was created locally and has not yet been synchronized.Declaration
Swift
public static let read: RealmPrivileges
-
If
false
, no modifications to the Realm are permitted. Write transactions can be performed locally, but any changes made will be reverted by the server.setPermissions
andmodifySchema
will always befalse
when this isfalse
.Declaration
Swift
public static let update: RealmPrivileges
-
If
false
, no modifications to the permissions property of the RLMRealmPermissions object for are permitted. Write transactions can be performed locally, but any changes made will be reverted by the server.Note that if invalide privilege changes are made,
-[RLMRealm privilegesFor*:]
will return results reflecting those invalid changes until synchronization occurs.Even if this field is
true
, note that the user will be unable to grant privileges to a Role which they do not themselves have.Adding or removing Users from a Role is controlled by Update privileges on that Role, and not by this value.
Declaration
Swift
public static let setPermissions: RealmPrivileges
-
If
false
, the user is not permitted to add new object types to the Realm or add new properties to existing objec types. Defining new RLMObject subclasses (and not excluding them from the schema with-[RLMRealmConfiguration setObjectClasses:]
) will result in the application crashing if the object types are not first added on the server by a more privileged user.Declaration
Swift
public static let modifySchema: RealmPrivileges


Apartment 123
Welcome!
View All
Members
View chores by location:
Kitchen
Bathroom
Bedroom
Living Room
Laundry Room
Logout


Last.Backend is a cloud platform based on a managed
container system, with a powerful ecosystem, for deploying
modern apps. Last.Backend Cloud is available in 9 locations
worldwide, spanning North US and West Europe.
LAST.BACKEND DEDICATED
With Last.Backend Dedicated Cloud, you can an entire
dedicated server with the advantages of the Last.Backend
Platform including hourly billing and fast provisioning!
LB PAAS & COMMAND-LINE TOOL
Last.Backend command-line tool provides for developers
possibility delpoy and run apps across Last.Backend Cloud
with just a few commands.
VIEW ON GITHUB
LAST.BACKEND ENTERPRISE
Last.Backend gives us the ability to seamlessy and reliably
deploy several times in one day, something that took
cooperation, effort and maintenance in the previous
infrastructure.


Nokia Smart TV coming soon - made by Flipkart - Gizchina.com
by Efe UdinNokia Smart TV coming soon – made by Flipkart
4 (80%) 4 votes
According to a recent report, Finnish company, Nokia, will start its smart TV brand in India soon. Flipkart officially announced that it will launch a Nokia-branded smart TV in the Indian market through the “India Manufacturing Plan”.
Adarsh Menon, senior vice president and head of private label, electronics and furniture business at Flipkart, said that the partnership with Nokia allows us to further provide high quality, technologically advanced products to consumers in the Indian market. Nokia is a world-renowned brand with a huge pedigree. Flipkart is happy to work with Nokia to bring the best brands and technologies together. Flipkart says it is ready to introduce the new Nokia smart TV to the 200 million consumers on its platform.
Vipul Mehrotra, VP of Nokia Brand Partnerships, said that today marks the beginning of a new chapter. This is because the company is starting a new product category. According to the report, Flipkart will fully control the manufacturing and delivery of Nokia Smart TV. The manufacturing of Nokia TV will take place in India while JBL will handle the sound.
“We are delighted that Flipkart, the leading e-commerce company in the country, will bring the first-ever Nokia branded Smart TVs to India. Today marks the start of an exciting new chapter for the Nokia brand in a new category. And where better to start than in India, where our brand has been trusted for quality, design, and reliability. Flipkart’s understanding of the needs and behaviors of Indian consumers, and the power of its reach will help it make Nokia branded Smart TVs accessible and affordable to many,” said Vipul Mehrotra, Vice President, Nokia Brand Partnerships.


Good morning, Kitchener!
Chance of flurries, but not as cold
by KitchenerToday StaffMainly cloudy.
30 per cent chance of flurries changing to a 70 per cent chance in the afternoon.
Our high is 2C, but will feel like -9C with the wind chill.
Tonight, cloudy periods with a 40 per cent chance of flurries and a low of -11C.
Don't forget to check out the latest gas prices, which are also listed on this page.


TMail is an E-Mail handling library. It provides you with access to any email you wrap it around as an object.
$ gem install tmail
irb(main):001:0> require 'rubygems' irb(main):002:0> require 'tmail' irb(main):003:0> email = TMail::Mail.load("my_raw_email.txt") irb(main):004:0> puts email.to =><EMAIL_ADDRESS>irb(main):005:0> email.to =<EMAIL_ADDRESS>=><EMAIL_ADDRESS>irb(main):006:0> email.cc =<EMAIL_ADDRESS>=><EMAIL_ADDRESS>irb(main):007:0> email.destinations =><EMAIL_ADDRESS><EMAIL_ADDRESS>Just do the same as the above... just gem install tmail. If TMail can find a compiler on your system, it will compile the native C extensions, if it can't find a compiler, it will just install the Ruby version. Easy hey?


Sparrow
Sparrow is a flexible, mobile-friendly theme for the Mashery Portal.
It looks great out-of-the-box, and includes features that make customization easy for non-technical users. If you're a developer, it includes a build system powered by Gulp and Sass.
The Sparrow Approach
Sparrow was built to be flexible and modular, with performance and accessibility in mind.
Mobile-First
Sparrow is built mobile-first. The base structure is a fully-fluid, single-column layout. It uses @media (min-width: whatever)
to add a grid-based layout to bigger screens.
Think of it as progressive enhancement for the layout.
Sparrow also includes feature detection for things like SVG support. Just like the layout, those are served to browsers that support them, while fallback text is supplied to older and less capable browsers.
Object Oriented CSS
Sparrow takes an OOCSS approach to web development.
Throughout the stylesheet, you'll see base styles and modifying styles. For example, .btn
sets the default button styles and behavior, while .btn-secondary
changes the color and .btn-large
changes the size. A big button with secondary colors would look like this:
<button class="btn btn-secondary btn-large">A Big Button</button>
Classes can be mixed, matched and reused throughout a project.
Browser Compatibility
Sparrow is optimized for modern browsers and IE 9+.
Vendor Prefixing
Sparrow uses Autoprefixer, and is configured to only add prefixes if required by the last two versions of a browser. If a feature isn't working (for example, the grid does not work in Firefox 28 and lower), it may simply need a vendor prefix.
For more details on when support for specific features were added to different browsers, consult Can I Use.


Aeneas, Anchises and Ascanius
Aeneas, Anchises and Ascanius - a sculpture by Italian sculptor Giovanni Lorenzo Bernini, created in 1618-19. Exhibited in the Borghese Gallery (Rome). Depicts a scene from the "Aeneid" in which the hero Aeneas takes his family from the burning of Troy. This was Bernini’s first order from Cardinal Shipione Borghese. The work was probably begun in 1618 and completed the following year. It was one of the many sculptures sculptured for Villa Borghese, now the Borghese Gallery.


UD for Low Saxon
Introduction
A part of this documentation is copied from the current German documentation UD for German, which can mostly be applied to Low Saxon as well.
Since there is no official interregional spelling for Low Saxon, the examples provided here are given in the interregional spelling used e.g. by the Dutch Low Saxon Wikipedia (Nysassiske Skryvwyse, described in more detail here: https://skryvwyse.eu/ (only in Low Saxon)) and lemma forms are given in both the Nysassiske Skryvwyse and normalised Middle Low Saxon following the Mittelniederdeutsches Handwörterbuch by Agathe Lasch et al.
Tokenization and Word Segmentation
- In general, words are delimited by whitespace characters. Description of exceptions to this rule follows.
- According to typographical rules, many punctuation marks are attached to a neighboring word. We usually tokenize them as separate tokens (words).
- Low Saxon compounds are written as one word and we do not split them.
- There are classes of multi-word tokens such as contractions of prepositions and definite articles, as well as contractions of verbs and a (clitic) pronoun. Examples: hek = hev + ik “I have”, im = in + dem “in the”
Morphology
Tags
- Low Saxon uses all 17 universal POS categories, including particles (PART).
- The following words are particles in Low Saxon: nich/nicht¹ “not”, and the infinitive marker to/tô⁵ “to”.
- The pronoun (PRON) vs. determiner (DET) distinction is based on word lists because the traditional grammar does not define determiners. In general, words that inflect for gender such that they agree with a modified noun, are tagged DET, even if they act independently in a given sentence; this includes possessives.
- Low Saxon auxiliary verbs (AUX) are:
- weasen/wēsen² for the perfect tenses of some verbs (ik bün koamen “I have come”) and as copula (hee is old “he is old”)
- hebben for the perfect tenses of the remaining verbs (ik hev eaten “I have eaten”)
- werden/wērden¹ for the passive (dat wardt eaten “it is (being) eaten”)
- sköälen/schȫlen¹, willen/willen¹ and werden/wērden¹ for the future tense (ik skal binnenkört dår weasen “I will arrive soon”)
- modal verbs dörven “may”, künnen “can”, möägen/mȫgen “may, want”, möten/mö̂ten² “must”, sköälen/schȫlen¹ “shall”, willen/willen¹ “want”
- doon/dôn¹, willen/willen¹ and werden/wērden¹ for a periphrastic conditional (see dea em lever besöken “she would prefer to visit him“)
- The verbs weasen/wēsen², hebben, doon/dôn¹ and werden/wērden¹ can also occur as normal verbs (VERB), meaning “be, have, do, become”.
- There are four main (de)verbal forms, distinguished by the UPOS tag and the value of the VerbForm feature:
Features
Nominal Features
- Nominal words (NOUN, PROPN and PRON) have an inherent Gender feature with one of two or three values:
Masc
,Fem
orNeut
. Most dialects preserve three genders, while in some,Masc
andFem
have merged. - The two main values of the Number feature are
Sing
andPlur
. The following parts of speech inflect for number: NOUN, PROPN, PRON, ADJ, DET, VERB, AUX (finite and participles). - The number of values for Case depends on the dialect. Few dialects have preserved four cases:
Nom
,Gen
,Dat
,Acc
. Most dialects do not distinguish dative and accusative anymore and thus only know three cases:Nom
,Gen
,Acc
. Some dialects have also merged the nominative and accusative and therefore only two cases remain:Nom
,Gen
. Case occurs with the nominal words, i.e., NOUN, PROPN, PRON, ADJ, DET. However, case forms of nouns are extremely ambiguous and most of the time the case is distinguished only by the form of the article. - Definite has 2 values:
Ind
,Def
. It is used to distinguish the indefinite and definite articles (DET).
Degree and Polarity
- Degree applies to adjectives (ADJ) and adverbs (ADV) and has one of three possible values:
Pos
,Cmp
,Sup
. - Polarity is used to mark the negative particle nich/nicht¹, i.e., only the
Neg
value is used.
Verbal Features
- Finite verbs always have one of two values of Mood:
Ind
orImp
. Some dialects have preserved separate forms forSub
(called konjunktiv in Low Saxon). - Indicative and subjunctive verbs always have one of two values of Tense:
Past
,Pres
.- In the subjunctive mood, the tense feature is used to distinguish konjunktiv I (
Pres
) and konjunktiv II (Past
). - Imperative forms do not have the
Tense
feature. - The
Tense
feature is also used to distinguish present and past participles (singen(d) “singing” vs. sungen “sung”).
- In the subjunctive mood, the tense feature is used to distinguish konjunktiv I (
- In the plural, verbs do not commonly distinguish person and consequently are only tagged for
Plur
. Some dialects may show occasional exceptions to this rule in particular verbs (maybe due to influence from German or Dutch?), in which case the person should be tagged. - The features Aspect and Voice are not used in Low Saxon because both the perfect aspect and the passive voice are expressed periphrastically.
Pronouns, Determiners, Quantifiers
- PronType is used with pronouns (PRON), determiners (DET) and adverbs (ADV).
- NumType is used with numerals (NUM), adjectives (ADJ) and determiners (DET).
- The Poss feature marks possessive personal determiners (e.g. myn/mîn² “my”).
- The Reflex feature is always used together with
PronType=Prs
and it marks reflexive pronouns (my/mî, dy/dî, sik/sik¹, uns/uns², ju/iü²). Note that their forms in the first and second person are ambiguous with irreflexive accusative forms, and theReflex
feature must be decided by context. - Person is a lexical feature of personal pronouns (PRON) and has three values,
1
,2
and3
. With personal possessive determiners (DET), the feature actually encodes the person of the possessor. Person is not marked on other types of pronouns and on nouns, although they can be almost always interpreted as the 3rd person. - The Polite feature distinguishes informal second-person pronouns (du/dû¹, jy/gî²,
Polite=Infm
) from the formal Jy/gî² and See/sê² (Polite=Form
). The formal pronoun Jy/gî² is phonologically equivalent in all its case forms to the second-person plural Jy/gî², and the formal pronoun See/sê² is phonologically equivalent in part of its case forms to the third-person plural see/sê², but they are distinguished in orthography by the capital letters J and S. We tag the formal pronoun See/sê² as second person (because this is its meaning) and we do not tag formal pronouns for number (because they are used both for singular and plural addressees), despite the fact that they combine with plural verbs. The parser must learn thatPerson=2|Polite=Form
subject attaches toNumber=Plur
verbs, whileNumber=Sing|Person=2|Polite=Infm
subject attaches toNumber=Sing|Person=2
verbs.
Other Features
Syntax
Core Arguments, Oblique Arguments and Adjuncts
- A nominal subject (nsubj) is a noun phrase in the nominative case without a preposition.
- A finite subordinate clause may serve as the subject and is labeled
csubj
. - If a verb is to serve as the subject, it becomes a verbal noun
(its form resembles the infinitive, or especially in older variants of the language the present participle, but it gets the neuter singular nominative article),
thus it is labeled
nsubj
.
- A finite subordinate clause may serve as the subject and is labeled
- Objects defined in the Low Saxon grammar may be bare noun phrases in accusative, and in dialects which have preserved the dative-accusative distinction, a dative object is possible as well. Bare genitive phrases do not generally occur as objects in the modern language anymore.
Prepositional phrases in accusative (or also dative, in some dialects) can function as objects as well.
For the purpose of UD the objects are divided to core objects, labeled obj or iobj,
and oblique objects, labeled obl:arg.
- Bare accusative (and dative) objects are considered core.
- All prepositional objects are considered oblique.
- Accusative objects of some verbs alternate with finite clausal complements, which are labeled ccomp.
- If a verb subcategorizes for the infinitive (e.g. phasal verbs or verbs of control), the infinitival complement is labeled xcomp.
- If a verb subcategorizes for two core objects, where one of them accusative (or
ccomp
) and the other non-accusative, then the non-accusative object is labeled iobj. Core nominal objects in other situations are labeled just obj.
- Adjuncts (or, following the German grammar, adverbial modifiers realized as noun phrases) are usually
prepositional phrases, but they can be bare noun phrases as well. They are labeled obl:
- Temporal modifiers realized as accusative noun phrases: ik werke elken dag “I work every day.”
- All prepositional phrases that are not prepositional objects (i.e., their role and form is not defined lexically by the predicate) are adjuncts.
- Extra attention has to be paid to the reflexive pronoun sik. It can function as:
- A core object (obj or iobj): hee sügt sik in’n spegel “he sights himself in the mirror.”
- A reciprocal core object (
obj
oriobj
): see küsset sik “they are kissing each other.” - Inherently reflexive verbs cannot exist without the reflexive clitic, and the clitic cannot be substituted by an irreflexive pronoun
or a noun phrase.
In accordance with the current UD guidelines, we label the relation
between the verb and the clitic as expl:pv, not
compound
. Example: wy mussen uns spoden “we had to hurry.”
- In passive clauses, the subject is labeled with nsubj:pass or csubj:pass, respectively.
Non-verbal Clauses
- The copula verb weasen/wēsen² (be) is used in existential, equational, attributional, locative, possessive and benefactory nonverbal clauses.
- Existential clauses, especially in dialects from the German side, may also use a different verb, geaven/gēven (give) with an accusative object: dat givt eaten “there is food.”
Relations Overview
- The following relation subtypes are used in Low Saxon:
- nsubj:pass for nominal subjects of passive verbs
- csubj:pass for clausal subjects of passive verbs
- obl:agent for agents of passive verbs
- obl:arg for prepositional objects
- expl:pv for reflexive clitics of inherently reflexive verbs
- aux:pass for passive auxiliaries
- compound:prt for separable verb prefixes
- det:poss for possessive determiners
- nmod:poss for possessive modifier phrases
Treebanks
There are N Low Saxon UD treebanks:


prom_trends.Rd
Visualizing PROM-trends for each clinic using ggplot2.
prom_trends( eq_vas_exp, eq_vas_obs, eq_vas_riket, pain_exp, pain_obs, pain_riket, satis_exp, satis_obs, satis_riket, riket_name = "Riket", y_labs = c("EQ VAS", "Smärt VAS", "Tillfredställelse"), y_breaks = c(5, 5, 5), year = c("2008/09", "2010/11", "2012/13", "2014/15"), subset = 1, text_size = 8, legend_labels = c("Förväntat", "Observerat", "Riket"), line_colors = c("#377EB8", "#E41A1C", "black"), background_color = "moccasin", panel_grid_color = "grey", panel_grid_size = 0.3, axis_size = 0.3, line_size = 0.5, point_size = 1.5, legend_pos = c(0, 0), n_row = 1, n_col = 3 )
| eq_vas_exp | Data frame with expected EQ VAS data. |
|---|---|
| eq_vas_obs | Data frame with observed EQ VAS data. |
| eq_vas_riket | Data frame with Swedish average EQ VAS data. |
| pain_exp | Data frame with expected pain VAS data. |
| pain_obs | Data frame with observed pain VAS data. |
| pain_riket | Data frame with Swedish average pain VAS data. |
| satis_exp | Data frame with expected satisfaction VAS data. |
| satis_obs | Data frame with observed satisfaction VAS data. |
| satis_riket | Data frame with Swedish average satisfaction VAS data. |
| riket_name | Character to find what row is Swedish average, usually named "Riket". |
| y_labs | Labels for y-axis |
| y_breaks | Y breaks in the three plots. |
| year | X-axis years, character vector works. The year variables will be renamed as they appear in the data set. |
| subset | Which plots should be generated, subset = 1 corresponds to the first plot in alphabetical order. |
| text_size | Text size in pt. |
| legend_labels | Labels for the legends in the plot. |
| line_colors | Colors of the lines. |
| background_color | Color of the panel background. |
| panel_grid_color | Color of the panel grid lines. |
| panel_grid_size | Size of the panel grid lines in plot, useful to change if large dpi! |
| axis_size | Size of the axis lines, useful to change if large dpi |
| line_size | Line thickness of the lines in plot. |
| point_size | Point sizes in plot. |
| legend_pos | Position of the legend in plot, matrix where each row corresponds to a legend position is recommended, if length(subset) > 1. |
| n_row, n_col | Number of rows/columns for the three plots. |
List of several gtable objects where each gtable object is one clinic
# Create trend plot for SU/MÃ¶lndal # Look at the 9 data sets to see the required structure. # Data sets are included in the package. example_plot <- prom_trends( eq_vas_exp, eq_vas_obs, eq_vas_riket, pain_exp, pain_obs, pain_riket, satis_exp, satis_obs, satis_riket, y_breaks = c(5, 0.1, 0.1), subset = 49) plot(example_plot)


Dataset : Chest X-Ray Dataset
Disclaimer : I didn't guaranteed that this model is 100% perfect for predicting X-Ray Images
You can pick which model you wanted to test with.


--- sort_order: 19 tei_id: rdx_b6zxc.p.idp14399856 annotation_count: 2 images: small-thumbnail: https://readux.ecds.emory.edu/books/emory:b6zxc/pages/emory:h6t1j/mini-thumbnail/ json: https://readux.ecds.emory.edu/books/emory:b6zxc/pages/emory:h6t1j/info/ full: https://readux.ecds.emory.edu/books/emory:b6zxc/pages/emory:h6t1j/fs/ page: https://readux.ecds.emory.edu/books/emory:b6zxc/pages/emory:h6t1j/single-page/ thumbnail: https://readux.ecds.emory.edu/books/emory:b6zxc/pages/emory:h6t1j/thumbnail/ title: Page 15 number: 15 permalink: "/pages/15/" ---


Case Study:
Replacing Dropwizard with Spring
What's a Dropwizard?
-
Dropwizard is "a java
framework for developing ops-friendly high performance
RESTful web services."
-
Spring Framework "provides
a comprehensive programming and configuration model for
modern java-based enterprise applications."
-
Apache Camel is a
"versatile open-source integration framework based on
known Enterprise Integration Patterns."
Why leave Dropwizard?
- We weren't really writing RESTful webservices
- We were already using Camel JMS, which is built on Spring
JMS
- Springs support for termination protection is stronger
- more future proof
-
Spring is an industry standard (Helps with Recruiting,
Stack Overflow Searches)
Hurdles we faced?
- Configuration moved a YAML format into a different YAML or .properties file
- sps-java-shared
SSM support is Dropwizard specific. Needed new SSM support.
- Weblogic Connector in sps-java-shared
is coupled to Dropwizard
- DropWizard uses JDBI, but Spring uses JDBC Templates
- Spring doesn't have native metrics, but micrometer is almost a drop in replacement.
Continuing Hurdles
- Spring Boot Autodiscovery feels like magic
- Lack of institutional knowledge around Spring


Microwave Theory & Techniques Society
Contact<EMAIL_ADDRESS>with questions.
Leadership
Sabrina Chang
Computer Engineering
MTT-S Chair
Microwave Theory & Techniques Society
Contact<EMAIL_ADDRESS>with questions.
Sabrina Chang
Computer Engineering
MTT-S Chair


Ninth Police Officer Killed in Detroit Since 2010
The shooting death of a Detroit police officer on Wednesday night became the ninth officer killed in the line of duty in the city since 2010.
by Warner Todd HustonThe officer, who has not yet been named publicly, is reportedly an 17-year veteran of the Detroit Police Department.
The murdered officer and his partner were responding to a home break-in on Wyoming and Pembroke avenues where an armed intruder had entered a private home. Four officers arrived at the scene and entered the house.
The suspect inside the home soon opened fire killing one officer and wounding his partner in the leg. The suspect was also wounded, but it now in stable condition.
Detroit Mayor Mike Duggan also tweeted “our hearts go out to the family” of the officer “killed in the line of duty,” and the “tragedy is a reminder of the tremendous debt we owe to all our police officers.”
The thus far unnamed officer joins nine other officers killed since 2010.
Officer Fadi Shakur was killed by a hit-and-run driver in August. Officer Darren Weathers was killed in a training accident in 2018. Also in 2018, officer Glenn Doss Jr . was killed responding to a call. Officer Myron Jarrett also died at the hands of a hit-and-run driver in 2016. Sgt. Kenneth Steil was also killed in 2016 during a carjacking incident. Officer Patrick Hill died in 2013 after being shot by accident during a confrontation with a murder suspect.
Officer Charles Armour became another traffic fatality in 2011. And Officer Brian Huff died in 2010 during a shootout.
Follow Warner Todd Huston on facebook.com/Warner.Todd.Huston.


{% extends 'base.html' %} {% block title %}
{{ error_message }}
{{ tbet_button_title }}| {% for tbet in tbet_list %} | {{ tbet.player.username }} | {% endfor %}|
| First | {% for tbet in tbet_list %}{{ tbet.first_team.name }} | {% endfor %} |
| Second | {% for tbet in tbet_list %}{{ tbet.second_team.name }} | {% endfor %} |
| Third | {% for tbet in tbet_list %}{{ tbet.third_team.name }} | {% endfor %} |
| Fourth | {% for tbet in tbet_list %}{{ tbet.fourth_team.name }} | {% endfor %} |
| Fifth | {% for tbet in tbet_list %}{{ tbet.fifth_team.name }} | {% endfor %} |
| Sixth | {% for tbet in tbet_list %}{{ tbet.sixth_team.name }} | {% endfor %} |
| Grand Slam | {% for tbet in tbet_list %}{{ tbet.grand_slam }} | {% endfor %} |
| Wooden Spoon | {% for tbet in tbet_list %}{{ tbet.wooden_spoon }} | {% endfor %} |


Last Name
First Name
Address
City
State
Zip/Postal Code
County
Bulgaria
USA
Canada
Phone(country code, area code, number)
(+
)
E-mail
Birth date
Gender
Male
Female
Other
Starting date
Spring 2015
Summer 2015
Comments/Questions


U.S. Navy SEAL accused of war crimes could be removed from elite group, even after Trump intervention
WASHINGTON – Special Operations Chief Edward Gallagher, whose rank was recently restored by President Donald Trump in a controversial move, could be removed from the U.S. Navy SEALs, officials said Tuesday.
Gallagher, a SEAL team platoon leader, was accused of committing war crimes while deployed in Iraq in 2017.
In July, a military jury acquitted him of murdering a captured Islamic State fighter by stabbing the wounded prisoner in the neck, but it convicted him of illegally posing with the detainee’s corpse. That led to his rank being reduced.
Last week, Trump restored Gallagher’s rank and pardoned two Army officers accused of war crimes in Afghanistan. Critics said Trump’s moves undermined military justice and sent a message that battlefield atrocities would be tolerated.
A U.S. official, speaking on the condition of anonymity because of the sensitivity of the matter, said Gallagher and three other SEALs are likely to be notified Wednesday that they must appear before a board that will decide whether they should be stripped of their SEAL status.
Officials said that process could take weeks, but that the decision to review Gallagher’s status had the support of senior Navy leaders.
If Gallagher is removed from the SEALs, he would either have to retire or find a different position in the Navy.
GET THE BEST OF THE JAPAN TIMES
IN FIVE EASY PIECES WITH TAKE 5
JOIN THE CONVERSATION


--- layout: post title: Casual Mobile Snacks for Everyone date: 2006-06-23 00:00:00 categories: interfaces-&-interaction mobile play ---
Casual Mobile Snacks for Everyone: "We have a unique opportunity with mobile devices in that they can be insanely personal and private while being incredibly social and contextual (presence, location etc.) They can offer small moments of quiet play or learning—no peers, no pressure—or small moments of highly networked interaction and competition. Not to mention hybrids of the two."


WITNESS LIST Transportation Committee (SUBCOMMITTEE ON T-3) April 3, 2003-1:00P Federal Funding On: Simmons, Steve E. (TxDOT) Soileau, David (TxDOT)


QML Object Types
A QML object type is a type from which a QML object can be instantiated.
In syntactic terms, a QML object type is one which can be used to declare an object by specifying the type name followed by a set of curly braces that encompasses the attributes of that object. This differs from basic types, which cannot be used in the same way. For example, Rectangle is a QML object type: it can be used to create Rectangle
type objects. This cannot be done with primitive types such as int
and bool
, which are used to hold simple data types rather than objects.
Custom QML object types can be defined by creating a .qml file that defines the type, as discussed in Documents as QML object type definitions, or by defining a QML type from C++ and registering the type with the QML engine, as discussed in Defining QML Types from C++.
Defining Object Types from QML
Defining Object Types through QML Documents
Plugin writers and application developers may provide types defined as QML documents. A QML document, when visible to the QML import system, defines a type identified by the name of the file minus the file extensions.
Thus, if a QML document named "MyButton.qml" exists, it provides the definition of the "MyButton" type, which may be used in a QML application.
See the documentation about QML Documents for information on how to define a QML document, and the syntax of the QML language. Once you are familiar with the QML language and how to define QML documents, see the documentation which explains how to define and use your own reusable QML types in QML documents.
See Defining Object Types through QML Documents for more information.
Defining Anonymous Types with Component
Another method of creating object types from within QML is to use the Component type. This allows a type to be defined inline within a QML document, instead of using a separate document in a .qml
file.
Item { id: root width: 500; height: 500 Component { id: myComponent Rectangle { width: 100; height: 100; color: "red" } } Component.onCompleted: { myComponent.createObject(root) myComponent.createObject(root, {"x": 200}) } }
Here the myComponent
object essentially defines an anonymous type that can be instantiated using Component::createObject to create objects of this anonymous type.
Inline components share all the characteristics of regular top-level components and use the same import
list as their containing QML document.
Note that each Component object declaration creates its own component scope. Any id values used and referred to from within a Component object declaration must be unique within that scope, but do not need to be unique within the document within which the inline component is declared. So, the Rectangle declared in the myComponent
object declaration could have an id of root
without conflicting with the root
declared for the Item object in the same document, as these two id values are declared within different component scopes.
See Scope and Naming Resolution for more details.
Defining Object Types from C++
C++ plugin writers and application developers may register types defined in C++ through API provided by the Qt QML module. There are various registration functions which each allow different use-cases to be fulfilled. For more information about those registration functions, and the specifics of exposing custom C++ types to QML, see the documentation regarding Defining QML Types from C++.
The QML type-system relies on imports, plugins and extensions being installed into a known import path. Plugins may be provided by third-party developers and reused by client application developers. Please see the documentation about QML modules for more information about how to create and deploy a QML extension module.


Darts Speech Score
1 Player
1 Player
2 Players
3 Players
4 Players
501
301
501
Deutsch
Deutsch
English
Game On


Live the McKinsey Way
I suspect every business school student, every management consultant and every consultant-wanna-be have read or bought this book, and for a very good reason: it offers a rare glimpse into one of the world’s most elite and successful business organizations, McKinsey and Company.
It’s almost a shame for me that it took me this long to read a book with such big font and wide margin; but nevertheless prolonging the reading process (which was definitely planned btw) has given me plenty opportunities to use the book as a lens from 30,000 feet above the ground to examine my day-to-day life as a consultant. This hopefully helps drive to a more balanced verdict (in contrary to the very many 1-start reviews you would find on Amazon):
It offers quite a number of golden nuggets - insights that are helpful for beginners, altought most of the book contains generic trite that you will find in any consulting books.
It’s not a book that offers earth-shattering truths or McKinsey’s proprietary knowledge (you really shouldn’t expect so in the first place); instead, it serves more of a quick primer for someone with absolutely no idea of consulting or McKinsey. The book’s insight can really be summarized into 3 pages or my single post (which is this one); so don’t buy it, but really read it before your junior year recruiting season, or before you begin your job as a consultant.
Here’s a breakdown of the book in terms of the key concepts that I find useful:
The McKinsey Way of Thinking About Business Problems
- The MECE Rule: (perhaps the most famous) MCEC stands for “mutually exclusive and collectively exhaustive”; and it is evident as the Firm pursues clarity of thought and expression. Not just consultants, but everyone should observe this rule of MCEC whenever possible in their thinking process and communications, in order to achieve the best possible solution.
- McKinsey’s approach is summarized into 3 pillars:
- Fact-based
- Rigidly structured
- Hypothesis driven
While I think this is awesome and should be the general structure for problem-solving everywhere, my time so far at APT has added the following guidelines to my go-to framework:
- Analytically rigorous
- Statistically significant (and beware of the common pitfall of p-values)
- Actionable (an insight is worthless if the client can’t act on it or implement it easily)
- Common tools and frameworks that McKinsey consultants use (or really just any consultant at MBB): (this section also contains a ton of consulting jargons that if not used properly, become nonsense/bs/jibberish very quickly and easily)
- 80/20 Rule: The most commonly used phrase, saying 80% of your results come from 20% of your work, 80% of your sales come from 20% of your clients, etc - this is definitely a rule every consultant lives by. It echoes the larger point which is prioritization. This is also a great segway into my post yesterday on “The ONE Thing”, as you should recognize your “ONE Thing” that will deliver you the most value, and go after it.
- Don’t boil the ocean： Work smarter, not harder! Well the assumption is that you will always work hard anyway, then what really sets you apart is being to utilize fully the 80/20 rule above and figure out what’s truly important. Also, the law of diminishing marginal returns.
- Find the key drivers (that affect your business) - this is the key to being “actionable” hence the value-add; and most of my clients value our ability to identify key segmentations and suggest targeted rollout and modeling.
- The Elevator Test (You should be able to explain your solution in 30 seconds) - this point ties into meticulously managing communications beautifully, as we should always strive for brevity and clarity in conveying ideas and more importantly, selling ideas
- Seize every small opportunities while solving a problem (these will boost the morale and your credibility among the clients) - this is more commonly referred to as plucking the low-hanging fruit
- Always think of the big picture: this is actually one of the three feedbacks I received for my review, and I have totally recognized the importance of looking at things from the broader business context. As pointed by one principle on my team, it’s helpful to ask myself couple questions before I take a deep-dive into analysis or commit a significant chunk of my time:
- How does the problem fit into the broader story?
- How does the analysis add value to the next big senior-level client meeting?
- How does the analysis improve our chance of rollout / our odds of continuing the business relationship after this project ends?
- Learn to say “I don’t know”: Always have humility! Definitely a good reminder as consultants tend to come from a certain educational background and think pretty highly of themselves (ourselves rather); it’s important to recognize that most of the time your clients know so much more about their business that you would ever do in 3 months - so position yourself accordingly and sell your strengths, while incorporating their feedbacks constructively.
- Don’t accept “I have no idea”: this is the flip side of “I don’t know”. With a bit of thinking and searching, you will usually find that you do know or can find out something about a question or issue - so always take initiatives, be proactive; these are the two most common pieces of advice I hear as well.
The McKinsey Way of Working to Solve Business Problems
- How to sell (without selling):
- The key is to build a brand and don’t actively go out and knock on people’s doors; rather, let people come to you
- As said in the book, “just be there, at the right time, and make sure the right people know who you are”
- Easier said than done, which I think requires a lot of brand building, skilled marketing and content sharing
- Don’t reinvent the wheel: whatever the problem, chances are that someone, somewhere in your organization, has worked on something similar. So make sure you research all the existing knowledge base before sinking time into your analysis.
- How to conduct a business interview:
- Ask open-ended questions
- Be sensible, be nice, don’t leave your interviewees naked! (another example of trite in this book…)
- About brainstorming:
- It’s the sine qua non of strategic consulting; it’s the bread and butter of what we do and largely why we exist; Why? Most large, modern corporations are full of smart people that know their business and are really good at problem-solving; but consultants (here McK consultants) offer a new mindset, an outsider’s view that is not “the company way”
- Definitely holds some truth to the statement, but not exactly applicable to APT and what is now known as SaaS or F(unction)aaS - we offer capabilities that are just straight-up lacking among clients
- It’s the sine qua non of strategic consulting; it’s the bread and butter of what we do and largely why we exist; Why? Most large, modern corporations are full of smart people that know their business and are really good at problem-solving; but consultants (here McK consultants) offer a new mindset, an outsider’s view that is not “the company way”
The McKinsey Way of Selling Solutions
- Making Presentations
- A large part of our job is to make “decks”, i.e. Powerpoint presentations; it ties into the larger point of communications
- In fact, I can summarize my job so far in the list below:
- Consulting is…
- Problem Solving, which includes
- Structuring the problem
- Brainstorming for solutions
- Data Management / Due Diligence Gathering / Knowledge Base Lookup
- Communications
- Internal -> so your teammates will enjoy working with you and you can be more effective
- External -> so you can level-set expectations and build rapport with your clients
- Management
- Time -> work-life balance, 80/20
- Project
- People
- Internal
- External (clients)
- Problem Solving, which includes
- Consulting is…
- Important to pre-wire everything! So nothing/no one will surprise you in the final readout…This has been practiced countless times despite looking staged at first glance. Consulting is much about the process as the end product
My Takeaways
- Actually all the feedback I received so far in my job makes sense and was covered at some point by the author; so for me, it’s important to continue gathering feedback from all parties I’ve worked with. And for you, start soliciting feedback and write it down if you have never done so!
- Understand that at the end of the day, this job is about being introspective: internalizing whatever is said to you, taken with utmost professionalism, and making yourself better day by day is the huge for your personal growth
- It never hurts to read self-help books that are industry standards even though they are boring and full of trite! I learned quite a bit from reading this book, and I’m encouraged to start reading the next one as soon as I finish typing up this post! (Spoiler: it’s another self-help business book)


| < Day Day Up > |
8.3 Basic Script ParsingNow that we've shown what a basic attribute script looks like, we're going to explore how a game reads and parses a script. As an example, we will use a basic script to set some of the attributes for a troll. We will create a text file called Troll Settings.txt. Example 8-3 shows the contents of the troll settings file. Example 8-3. Basic script to set attributesINTELLIGENCE=20; STRENGTH=75; SPEED=50; Example 8-3 is a simple example that sets only three creature attributes. However, we will set up our code so that we can easily add more attributes with very little change to our script parser. Basically, we are going to set up our parser so that it will search a given file for a specified keyword and then return the value associated with the keyword. Example 8-4 shows how this might look in an actual game. Example 8-4. Basic script to set attributesintelligence[kTroll]=fi_GetData("Troll Settings.txt, "INTELLIGENCE"); strength[kTroll]= fi_GetData("Troll Settings.txt, "STRENGTH"); speed[kTroll]= fi_GetData("Troll Settings.txt, "SPEED"); Example 8-4 shows three hypothetical arrays that can store creature attributes. Rather than hardcoding these values into the game, they are loaded from an external script file called Troll Settings.txt. The function fi_GetData traverses the external file until it finds the specified keyword. It then returns the value associated with that keyword. The game designers are free to tweak the creature setting without the need to recompile the program code after each change. Now that we have seen how you can use the fi_GetData function to set the attributes for a troll, let's go a step further. Example 8-5 shows how the function accomplishes its task. Example 8-5. Reading data from a scriptint fi_GetData(char filename[kStringLength], char searchFor[kStringLength]) { FILE *dataStream; char inStr[kStringLength]; char rinStr[kStringLength]; char value[kStringLength]; long ivalue; int i; int j; dataStream = fopen(filename, "r" ); if (dataStream != NULL) { while (!feof(dataStream)) { if (!fgets(rinStr,kStringLength,dataStream)) { fclose( dataStream ); return (0); } j=0; strcpy(inStr,""); for (i=0;i<strlen(rinStr);i++) if (rinStr[i]!=' ') { inStr[j]=rinStr[i]; inStr[j+1]='\0'; j++; } if (strncmp(searchFor, inStr, strlen(searchFor)) == 0) { j=0; for(i=strlen(searchFor); i<kStringLength; i++) { if (inStr[i]==';') break; value[j]=inStr[i]; value[j+1]='\0'; j++; } StringToNumber(value, &ivalue); fclose( dataStream ); return ((int)ivalue); } } fclose( dataStream ); return (0); } return (0); } The function in Example 8-5 begins by accepting two string parameters. The first specifies the name of the script file to be searched and the second is the search term. The function then opens the text file using the specified file name. Once the file is opened, the function begins traversing the script file one text line at a time. Each line is read in as a string. Notice that each line is read into the variable rinStr, and then it's copied immediately to inStr, but without the spaces. The spaces are eliminated to make the parsing a bit more foolproof. This prevents our script parser from getting tripped up if the script writer adds one or more spaces before or after the search term or attributes. Once we have a script line stored in a string, sans spaces, we can search for the search term. As you recall, we passed our search term to the fi_GetData function by using the string variable searchFor. At this point in the function, we use the C function strncmp to search inStr for the search term. If the search term is not found, the function simply proceeds to read the next text line in the script file. However, if it is found, we enter a new loop that copies into a new string named value the part of inStr that contains the attribute value. The string value is converted to an integer value by calling the outside function StringToNumber. The fi_GetData function then returns the value in ivalue. This function is written in a very generic way. No search terms are hardcoded into the function. It simply searches the given file for a search term and then returns an integer value associated with it. This makes it easy to add new attributes to our program code. Also, note that this is one area of game development where it is important to check for errors. This is true particularly if you want players as well as game designers to use the scripting system. You should never assume any of the scripts being parsed are valid. For example, you shouldn't rely on the script writers to keep all the numeric values within legal bounds. |
| < Day Day Up > |