text:
EventsGameMaker uses what is called an event driven approach. This works as follows. Whenever something happens in the game the instances of the objects get events (kind of messages telling that something has happened). The instances can then react to these messages by executing certain actions. For each object you must indicate to which events it responds and what actions it must perform when the event occurs. This may sound complicated but is actually very easy. First of all, for most events the object does not have to do anything. For the events where something must be done you can use a very simple drag-and-drop approach to indicate the actions.
In the middle of the object property form there is a list of events to which the object must react. Initially it is empty. You can add events to it by pressing the button labeled Add Event. A form will appear with all different types of events. Here you select the event you want to add. Sometimes a menu pops up with extra choices. For example, for the keyboard event you must select the key. Below you find a complete list of the different events plus descriptions. One event in the list will be selected. This is the event we are currently changing. You can change the selected event by clicking on it. At the right there are all the actions represented by little icons. They are grouped in a number of tabbed pages. In the next chapter you will find descriptions of all the actions and what they do. Between the events and the actions there is the action list. This list contains the actions that must be performed for the current event. To add actions to the list, drag them with your mouse from the right to the list. They will be placed below each other, with a short description. For each action you will be asked to provide a few parameters. These will also be described in the next chapter. So after adding a few actions the situation might look as follows:
Now you can start adding actions to another event. Click on the correct event with the left mouse button to select it and drag actions in the list.
You can change the order of the actions in the list again using drag-and-drop. If you hold the key while dragging, you make a copy of the action. You can even use drag-and-drop between action lists for different objects. When you click with the right mouse button on an action, a menu appears in which you can delete the selected action (can also be done by using the key) or copy and paste actions. (You can select multiple actions for cutting, copying, or deleting by holding the key of key. Press to select all actions.) When you hold your mouse at rest above an action, a longer description is given of the action. See the next chapter for more information on actions.
To delete the currently selected event together with all its actions press the button labeled Delete. (Events without any actions will automatically be deleted when you close the form so there is no need to delete them manually.) If you want to assign the actions to a different event (for example, because you decided to use a different key for them) press the button labeled Change and pick the new event you want. (The event should not be defined already!) Using the menu that pops up when right-clicking on the event list, you can also duplicate an event, that is, add a new event with the same actions.
As indicated above, to add an event, press the button Add Event. The following form pops up:
Here you select the event you want to add. Sometimes a menu pops up with extra choices. Here is a description of the various events. (Again remember that you normally use only a few of them.)
This event happens when an instance of the object is created. It is normally used to set the instance in motion and/or to set certain variables for the instance.
This event happens when the instance is destroyed. To be precise, it happens just before it is destroyed, so the instance does still exist when the event is executed! Most of the time this event is not used but you can for example use it to change the score or to create some other object.
Each instance has 12 alarm clocks. You can set these alarm clocks using certain actions (see next chapter). The alarm clock then ticks down until it reaches 0 at which moment the alarm event is generated. To indicate the actions for a given alarm clock, you first need to select it in the menu. Alarm clocks are very useful. You can use them to let certain things happen from time to time. For example a monster can change its direction of motion every 20 steps. (In such cases one of the actions in the event must set the alarm clock again.)
The step event happens every step of the game. Here you can put actions that need to be executed continuously. For example, if one object should follow another, here you can adapt the direction of motion towards the object we are following. Be careful with this event though. Don't put many complicated actions in the step event of objects of which there are many instances. This might slow the game down. To be more precise, there are three different step events. Normally you only need the default one. But using the menu you can also select the begin step event and the end step event. The begin step event is executed at the beginning of each step, before any other events take place. The normal step event is executed just before the instances are put in their new positions. The end step event is executed at the end of the step, just before the drawing. This is typically used to change the sprite depending on the current direction.
Whenever two instances collide (that is, their sprites overlap) a collision event appears. Well, to be precise two collision event occur; one for each instance. The instance can react to this collision event. To this end, from the menu select the object with which you want to define the collision event. Next you place the actions here.
There is a difference in what happens when the instance collides with a solid object or a non-solid object. First of all, when there are no actions in the collision event, nothing happens. The current instance simply keeps on moving; even when the other object is solid. When the collision event contains actions the following happens:
When the other object is solid, the instance is placed back at its previous place (before the collision occurs). Then the event is executed. Finally, the instance is moved to its new position. So if the event e.g. reverses the direction of motion, the instance bounces against the wall without stopping. If there is still a collision, the instance is kept at its previous place. So it effectively stops moving.
When the other object is not solid, the instance is not put back. The event is simply executed with the instance at its current position. Also, there is no second check for a collision. If you think about it, this is the logical thing that should happen. Because the object is not solid, we can simply move over it. The event notifies us that this is happening.
There are many uses for the collision event. Instances can use it to bounce against walls. You can use it to destroy objects when, for example, they are hit by a bullet.
When the player presses a key, a keyboard event happens for all instances of all objects. There is a different event for each key. In the menu you can pick the key for which you want to define the keyboard event and next drag actions there. Clearly, only a few objects need events for only a few keys. You get an event in every step as long as the player keeps the key depressed. There are two special keyboard events. One is called . This event happens in each step when no key is pressed. The second one is called and happens whatever key is pressed. When the player presses multiple keys, the events for all the keys pressed happen. Note that the keys on the numeric keypad only produce the corresponding events when is pressed.
A mouse event happens for an instance whenever the mouse cursor lies inside the sprite representing the instance. Depending on which mouse buttons are pressed you get the no button, left button, right button, or middle button event. The mouse button events are generated in each step as long as the player keeps the mouse button pressed. The press events are only generated once when the button is pressed. The release events are only generated when the button is released. Note that these events only occur when the mouse is above the instance. If you want to react to mouse press or release events at an arbitrary place, use the global mouse events that can be found in a submenu. There are two special mouse events. The mouse enter event happens when the mouse enters the instance. The mouse leave event happens when the mouse leaves the instance. These events are typically used to change the image or play some sound. Mouse wheel up and mouse wheel down events happen when the user moves the mouse wheel. Finally there are a number of events related to the joystick. You can indicate actions for the four main directions of the joystick (in a diagonal direction both events happen). Also you can define actions for up to 8 joystick buttons. You can do this both for the primary joystick and the secondary joystick.
There are a number of other events that can be useful in certain games. They are found in this menu. The following events can be found here:
- Outside room: This event happens when the instance lies completely outside the room. This is typically a good moment to destroy it.
- Intersect boundary: This event happens when the instance intersects the boundary of the room, that is, it lies (at least) partially outside the room.
- Views: Here you find a number of events that are useful when you


Evolutionary Speciation as Thermodynamic Process
Cambrian Explosion was a Hot Event
Interesting if you think of life as a thermodynamic process, of increasing complexity of energy efficient bodies, which diffuse energy/heat in some formulaic evolutionary way.
Explains why the Cambrian explosion occurred, ie why a supermassive evolutionary speciation occurred.
Same reason why speciation is greatest along the equator.
One impetus for Organism evolution is thermodynamics.
This makes sense anyway.
It's like, the same reason why hot water freezes faster than cold water, ie Mpemba effect.
Crystallization seems to be encouraged by vibrations, like the molecules wiggle into place faster, and arrange into lattice structures more quickly, thus dissipating heat more efficiently.
I feel like it's somehow someway linked to evolutionary processes. Since like water is like super abundant on earth and some of the hottest and most humid areas on earth of greatest speciation.
So let's say you had two large containers filled with an fraction of water, with temperature sensors in the water, as well as temp and humidity sensors in the upper container filled with air, both in closed systems, with heat exchangers at the bottom to facilitate freezing.
One container began at 35° and the other at 100°. And you began freezing.
Monitor the rate it took to freeze the water, as well as air temp and air humidity.
Should probably also have something like a magnetic mixer in each container to reduce temperature differential within the bodies of water as much as possible. And maybe have heat exchangers on all sides not just the bottom
My friends say they are extremely confident that the one starting at 35 degrees would freeze before the one at 100 degrees and I think their rates of temperature decrease would be approach equivalence as you tightened the experimental controls
But, I think the magnetic mixer would screw it up, because it would distort the crystallization process, if we assume that. crystallization facilitated more efficient energy dissipation
On another note, thermodynamic processes also may explain why massive advances of complexity occurred with every technological advance which allowed humanity to harness energy more efficiently, ie agricultural revolution, scientific revolution, industrial revolution, leveraging oil, computer and digital revolution, etc.
Leave a Reply
WordPress.com Logo
Google photo
Twitter picture
Facebook photo
Connecting to %s


text:
Friday, April 10, 2009
Abstract art-a state of flux
Sometimes there's a need to show speed of movement, a rapidly changing shape or form. But we're not depicting a galloping horse or a rushing mob. The movement is being depicted in an abstract form, a notation, a symbolic roving line. A spontaneous gesture. A fleeting thought. The art shown depicts a constant changing of form, a tumbleweed of lines and color. But it is not an attempt to depict a tumbleweed. Goethe in another context, though relevant, said, " In such compositions what really matters is that the single masses should be clear and significant, while the whole remains incommensurable; and by that reason, like an unsolved problem, constantly draws mankind to study it again and again." More abstract art can be seen at _URL_

source: openbmb/Ultra-FineWeb


Ballerina Packaging Architecture and Understanding the Client Connectors
In my first blog [1], we focused on a generic concept of Ballerina programming language. If you read the blogs available under [2], you will probably get a good understanding of key features that Ballerina offers. Anyway, I thought of composing this blog and thought of covering following sections with a very simple but quite powerful sample.
Will try to cover;
 1. How we can work with packing architecture of Ballerina configs.
 2. Understanding connectors, because a connector allows you to interact mainly with third-party APIs. This enables you to connect and interact with APIs such as Twitter, Gmail, and Facebook easily. Thus its quite handy if we know the language contracts of Connectors.
Ok, lets start. Why do we need a packing architecture?;
Ballerina has a Go-like modularity approach for how it manages names and how code is organized into files. In summary, Ballerina entities (functions, services etc.) all have globally unique qualified names consisting of their package name and the given name. If a package is not specified then the symbol will be in the default (unnamed) package. Notice that the name of the file that the entity resides in plays no part in the name of the entity. Similar to Go, a package name is a collection of simple names concatenated with "." and they are stored in the file system using a subdirectory structure with each splitting at the ".".
With such a structure, when a Ballerina program has code in many packages, we need to define how such a program can be packaged for self-contained execution and how the runtime searches for and discovers any imported packages.
I will explain the importance of such approach with a proper sample. Lets take a look at the following sample.
Very simply, the above sample will execute the the main function and will publish on both Twitter and Facebook in a parallel execution (fork-join). When it comes to the industrial practices, developers always require to work with packing structures, where they have to prepare the modules and sometimes they have to collaborate external packages /APIs in order to implement the use case. If you look at the sample given above, in ballerinaDemo.bal, that particular piece of code utilize external packages (Facebook + Twitter), and, the given ballerina configuration packaged as 'package org.wso2.tutorial.demo'. Please do refer [1] for advance information related to packaging ballerina configuration.
Creating Ballerina archives
First, you need to prepare the above configuration, with proper folder hierarchy. When a program is packaged using the ballerina build command, the resulting archive will contain not just the Ballerina files that contain the main function and/or services, but also all the Ballerina packages that are imported by all the code needed to execute the main function and/or services.
Please note there is two type of archives
 - A Ballerina executable archive containing a main() function is named with the extension ".bmz". Use the following command to build an executable archive:
ballerina build main [-o filename]
 - A Ballerina service archive containing one or more services is named with the extension ".bsz". Use the following command to build a service archive:
ballerina build service [ …] [-o filename]
Now let's focus on how to create executable archive. For that, you need to run the ballerina build command, that will generates you '*.bmz' archive. You will notice that ballerinaDemo.bal having main() function
Once you create the folder structure as given above, then you should run following command to create 'bmz' archive.
You will find that archive called 'myproject.bmz' at the root directory. If curious,you can unzip myproject.bmz. The packing structure should be similar to whats given below.
You can use following command to execute the archive you have prepared. Since I have used function, I used a 'main' function then passed "hello hi" as argument to the runtime where that will be used by Twitter and Facebook to publish.
Useful commands
Build and execute the main function without package reference
 - ballerina build main tasks.bal tasks.bmz
 - ballerina run main tasks.bmz
Build and execute main function resides under package org/test/calc
 - ballerina build main org/test/calc -o my-calc
 - ballerina run main my-calc.bmz
Build and execute service without package reference
 - ballerina build service foo.bal -o my-service
 - ballerina run service my-service.bsz
Build and execute service function resides under package org/test/calc
 - ballerina run service org/test/calc
 - ballerina build service org/test/calc my-service
 - ballerina run service my-service.bsz
Understanding the connectors
Connectors basically having two faces, one which is known as the Client connectors while other one is Server Connectors. A connector represents a participant in the integration and is used to interact with an external system or a service you've defined in Ballerina. Ballerina includes a set of connectors under org.ballerinalang.connectors.* that allow you to connect to Twitter, Facebook, and more (as client connectors). If you have been working with WSO2 ESB, they have almost 140+ odd connectors written in a way that helps you to interact with external systems without rewriting the same code (I was there as a part of initial design of WSO2 ESB connectors) [3]. So, in ballerina, the same has to be represented (nothing out of the box), but ballerina is adding more clarity in terms of connector representation.
A connector language definition is defined as follows:
Facebook Connector language
Please have a look at [4], currently there are few connectors already developed but at draft stage, but you can get proper understanding on how easily you can write a connector. Once you write a connector, allyou need to do is to import the connector reference with above reference (i.e packing architecture information)
 1. Ballerina — Let's dance!!!!!
Architect/Associate Director WSO2
Get the Medium app


Using Entity, Architecture and Library in VHDL Designs
By John
May 6, 2020
This post is the first in a series which introduces the concepts and use of VHDL for FPGA design. We begin by looking at how we write VHDL components using the entity, architecture and library keywords.
These elements are fundamental to the way VHDL designs are structured and we will see how they relates to the FPGA hardware we are describing.
We don't need to discuss the entire history of VHDL in order to work with it. However, we must consider one important historical point – the version of the language we use.
The major standards of VHDL were released in 1987, 1993 and 2008. Another minor version was released in 2002 and a draft version of VHDL-2018 will also be released soon.
We should use the VHDL-2008 standard with new designs as it includes a number of useful improvements.
Although it may be tempting to begin using VHDL-2018 as soon as it is released, this should be avoided. This is because it often takes software vendors several years to support all the new features in a standard.
As a result of this slow up take, VHDL-93 and 2002 have remained popular up until the last few years. Therefore, we will look at the important differences between these standards as we encounter them in these posts.
Structuring VHDL Code
When we design FPGAs, it is important to remember one fundamental principle – we are designing hardware and not writing a computer program.
Therefore, we must describe the behaviour of a number of different components which we then connect together. This expectation is reflected in the way VHDL files are defined.
Every component we design in VHDL requires two separate parts - an entity and an architecture.
The entity defines the external interface to the VHDL component we are designing, including a definition of the inputs and outputs.
We use the architecture to create either a functional or structural description of the component.
Together, the entity and architecture are equivalent to a verilog module.
We can also use the VHDL configuration keyword to tell our compiler which architecture belongs to which entity. However, we do not normally have to do this as modern tools can automatically link the correct entity and architecture files.
VHDL Entity Declaration
We use the entity to define the external interface to the VHDL component we are designing. This mainly involves defining the inputs and outputs, although we can provide further configuration details as well. The syntax below shows how we declare an entity in VHDL.
entity is
 generic (
 :
 port (
 : in ;
 : out : inout
end entity ;
In this construct, would be the name of the component which is being designed. It is good practise to keep the name of the file and the entity the same or at least very similar. This makes it simpler to manage large designs with many components.
We use ports in a VHDL entity declaration to define the inputs and output of the component we are designing. Therefore, the ports are equivalent to pins in a more traditional electronic component.
We can define ports as either in, out or inout, which correspond to inputs, outputs and bidirectional ports respectively. We commonly refer to these different types of port as modes.
In addition, we also declare which type of data the port uses in the field. We talk about the different data types in VHDL in more depth in the next post.
However, the most commonly used type is the std_logic type which is used to describe a single bit in VHDL.
We can also include generics in our VHDL entity declaration, although this is not required. Using generics allows us to pass constants into our component when we instantiate it. This means we can reconfigure the behaviour of our components so that we can reuse them in multiple scenarios. We discuss the use of VHDL generics in more detail in a later post.
VHDL In Port (Inputs)
We use the VHDL in keyword to define inputs to our VHDL designs. Inputs are the simplest of the three modes to understand and use within a component. The only rule associated with the use of inputs is that they must never be assigned a value. As a result of this, we can't use a construct such as the one shown below in our code.
 <= ;
VHDL Out Port (Outputs)
We use the VHDL out keyword to define outputs from our VHDL designs. Outputs are a little more complex than inputs to use, depending on the standard of VHDL we use.
In the VHDL-2008 standard the out mode was revised so that we can both read and write them. However, prior to VHDL-2008 outputs could be assigned a value but not read. Whilst this doesn't often create a problem, there are instances when the output value has an effect on the actual logic of the circuit.
To better understand how we work with outputs, let's consider the very basic circuit shown below.
A simple twisted ring style counter circuit
In this case, the output of DFF2 is not only the module output but also an input to DFF1.
The simplest solution for modelling this circuit would be to use a fourth mode which is known as a buffer. This mode has the same functionality as the out mode but we can also read its value. However, we don't often use this as it is historically known to cause synthesis problems with Xilinx parts.
A more common solution to this problem is the use of an internal signal which duplicates the value of the output. Although this approach is cumbersome, it is the preferred method when using VHDL-93 or 2002.
The code snippet below gives an example of this approach.
-- Declare a signal in the architecture body (discussed below)
signal out_buffered : std_logic;
-- Example logic circuit which relies on output value
out_buffered <= out_buffered and in_a;
-- Assign the output port
outa <= out_buffered
In VHDL we use the -- characters to denote that we are writing a comment.
We use comments to include important information about our code which others may find useful. The VHDL compiler ignores any thing which we write in our comments.
In the code snippet above, we can see this in action as comments are used to describe each line of the code.
VHDL Inout Port (Bidirectional)
The final mode is the bidirectional port which we declare using the VHDL keyword inout.
We should only ever use this mode for communication with components which are external to the FPGA. This is because FPGAs don't have internal tri-state buffers which implement the high impedance state which bidirectional buses require. These buffers are important as they prevent collisions on the bus.
Attempting to use internal bi-directional ports can lead to simulation vs synthesis mismatches. This means that the functional code will simulate without an issue and the design will appear to function as intended. However, after we synthesise our design it will no longer function correctly. This happens because the synthesis tool is fundamentally incapable of implementing the code.
We commonly use the inout mode to interface with memory devices, such as flash memory chips. This is because these chips often have large data buses which are driven by both the FPGA and the external device. As a result of this, we must ensure that only one devices drives the bus at a time. Therefore, our code must set the inout pins to high impedance when we are not directly driving them.
VHDL Architecture
The architecture is the second part of a VHDL component and is used to describe the behaviour or structure of our design. We must associate an architecture with a previously defined VHDL entity. The code snippet below shows how to declare a VHDL architecture.
architecture of is
 -- signal declarations
 -- functional RTl (or structural) code
end architecture ;
We can associate an entity with more than one architecture if required. However, we should try to avoid doing this as it is difficult to manage.
We use the field to give our architecture a name. We can give the architecture any name we choose but it is common to name VHDL architectures after the type of code we are describing. This normally means we use rtl or behavorial for rtl type code and struct for structural or gate level type code.
An architecture consists of two parts, a section for signal declarations and a section for the functional code. The signal declarations go before the begin keyword and define connections, or wires, which are internal to the component.
The second section of the architecture comes after the begin keyword and defines the functionality of the component. There are two mains methods for doing this – rtl code and structural code.
In the case of rtl code, this is a VHDL based description of how data flows through the component.
When we write structural code, we determine the behaviour of the block by connecting a number of previously defined components together.
VHDL Signals
In VHDL, we use signals to define connections, or wires, which are internal to our entity architecture pair.
We can also use variables to define these connections. However, we can only use variables within a VHDL process and they are used less frequently as a result. We discuss VHDL variables in more detail in a future post.
To demonstrate what VHDL signals are, let's consider a basic example. If we reconsider the counter example we previously saw, we should declare the green wires in the diagram below as signals.
A simple 2-bit twisted ring counter circuit


text:
blend intophrasal verb
Definition of blend into
1 : to gradually become the same as or part of (something) One color blends into another. where the city blends into the suburbs
2 : to look like (one's surroundings) The animal's dark fur enables it to blend into the forest.
3 : to look like one belongs in (something) He tried to blend into the crowd. A good journalist can easily blend into a community.
What did you just call me?! A Quiz


- Dick Lam
Assessing Strategic Opportunities - A Finance Perspective (and why the wrong analysis is being done
Updated: Jun 19, 2019
Finance is often considered as support. They produce numbers and process accounts.
When opportunities are identified, finance is often called in to 'model' and estimate the opportunity.
This is fraught with danger.
The Real Meaning of Strategy
 One definition of Strategy is "a plan of action designed to achieve a 'long term' or overall aim."
"Long Term".
If initiatives are driven by 'short term' incentives, a finance expert must be able to dismiss this and understand further.
In a corporate world where there is firing, hiring, bonuses, deadlines, etc.. this is not a natural thing. Where the finance expert plays 2nd fiddle, the pressure of 'other parties' can be too much to resist.
The finance expert needs to also be a business expert so it can identify flaws, weaknesses and opportunities like a prophet. And he or she needs to understand the cold hard reality of numbers, or be able to throw numbers out the window if it does not match the true model of 'what would happen'.
The Ideal Strategic Finance Individual - do you have Enough Personality?
Finance people (with the exception of CFOs) have generally been mild mannered people.
But without a sufficiently strong personality and certainty, they are often unable to resist the coercion of 'other parties' who do not have full grasp of the whole project / business and the numbers.
And if they lack the vision and business acumen to understand what would happen themselves, we are no longer talking about a finance voice. More a numbers processor.
It is not the norm for strong personalities and those who desire to see the whole picture, to gravitate towards finance. And those who do often rise to become the CFO.
The idea Strategic Finance person would need to know the numbers, but also the business better than any of the Sales, Marketing and Operations Directors individually. And then have the personality to stand up to and sway them, without coercion for 'to use a specific number instead' ever to enter their minds.
The Dick Smith example
 Much as been made of Dick Smith – their sale by Woolworths to Anchorage Capital in 2012, then sold at an extreme profit to the public in Dec 2013 and now its collapse.
Forensic analysis suggests ratios and profits were manipulated to maximize apparent value. It then went on a semi-expansion agenda not supported by the real world.
One can argue an astute finance person should have been able to highlight these issues, not fall prey and submit to strong 'business managers'.
But here's the main thing about the Business Strategy.
Why is Dick Smith a good business anyway? Forget the accounting numbers.
JB HiFi or Harvey Norman sells Dick Smith's products with greater range and cheaper prices with a much greater store distribution. Most customers can name 2 or more stores they'd rather go to.
The Dick Smith branded items (only items you can't get elsewhere) look cheap and are rated poorly (check online reviews on its own website).
For online sales, Kogan has a stronger store presence for as an online competitor.
As for its original electronics supplies of plugs and wires and bits, that market has shrunk to almost negligible and is mostly done online via China (at 80% cheaper prices).
Its venture entering David Jones stores seems rational, but I'm not sure that Dick Smith branding adds a lot to David Jones.
Projections would have been made by finance. Marketing, Sales and Operations would argue their numbers, but from a good balanced 'finance' view – was it always going to fail?
The banks obviously saw it like that, they pulled the plug. They were finance acting with accountability with enough understanding of overall business.
Yes. There are ways out of that. To change and expand. But they didn't do those things. Instead, Dick Smith was more like a collection of corner shops or butcher stores threatened by 90's style shopping centres - and then announcing they would open more.
In other words, people should have seen it coming.
The Responsibility of Finding the Truth
It's very easy to imagine raising such points at a Dick Smith boardroom. However, is it true?
It would not be very hard to test. Find a Dick Smith store in a shopping centre with a Harvey Norman or a JB HiFi. How does it do? How many have closed down after the others moved in? I've personally always found Dick Smith stores amazingly quiet.
One can imagine a boardroom scenario where the CEO talks about an expansion strategy that makes shareholders applaud. Sales aren't convinced but happy to try and Marketing loves it because it gives them a chance to create a campaign.
Now Operations are thinking about new products it might want to do and Finance is nodding and doesn't want to say we can't do it as the buzz is too good.
Of course, this is hypothetical, but such a scene may have played out in many similar scenarios and organisations.
At some point, projections will need to be made or a financial model done. The questions is – will it be right?
In my experience – mostly NO. But the spotlight doesn't fall on the poor under equipped analyst. Expertise on advice falls too broadly on areas without enough knowledge or too many vested interests.
In descending levels of failure in answer to the question – 'did the numbers turn out right?':
 1. Not sure, we never checked afterwards.
 2. No, but I was asked to put through certain assumptions.
 3. Not quite because of the factors of…
 4. Because…
The person who can advise on this strategy is the person with enough big picture understanding of the business to get it right, have a strong enough personality to resist the wrong and be in a position where others can hear 'yes' or 'no'.
0 views0 comments
2019 Dick Lam


text:
Take a picture, and 4D app gives you the details
- By Patrick Marshall
- Feb 05, 2013
Second of four parts
Imagine taking a picture of an unfamiliar building or a piece of machinery and then having the picture tells you what's inside the building or how that machine works. That's part of the idea behind Hybrid 4-Dimensional Augmented Reality (HD4AR), a project of the MAGNUM Group at Virginia Tech University.
The project, led by Jules White, a professor of electrical and computer engineering at the university, can use a smart phone's sensors, geotagging features, camera and video and audio recorders to augment situational awareness for first responders, construction crews or the public.
When it receives an image, HD4AR draws on a database of information to deliver annotated data to images on the phones. A user might, for example, take a photo of a piece of equipment. HD4AR would locate a similar image in its database and then deliver attached data — such as labels for the dials and levers on the equipment and perhaps a link to a user manual — to be superimposed on the image on the user's cell phone. Or, send HD4AR a photo of a downtown street and it would be returned with buildings and stores identified.
"The idea behind this project is to create a framework where, when there was a disaster, people who were trapped in different areas could be using their smart phones to essentially provide situational awareness data to first responders or other citizen scientists in the area," White said. "It can be image data, taking pictures of things, in-capture audio, video, accelerometer data, these types of things. From our perspective it was more about capturing that data, geo-tagging it all, and having it centralized in a location that first responders could look through."
HD4AR also is designed as a tool for construction sites, taking the place of all those design drawings, but the framework also holds value for consumers. Suppose you go out in the morning and find your car battery needs a jump-start — and, as luck would have it, jump-starting a car is not something you know how to do. "So you take a photo of your engine and then on your photographs we will figure out where the positive and negative terminals are on the battery and we will annotate your photograph," White said.
The information flow goes both ways, too. "Anybody can add to the database using their phone," he said. "From those photos we will build a crude 3-D model. So when the user goes into the photo and begins annotating it, drawing in information, we then figure out where on the 3-D model those notes go.
"When that information is saved in the database and when a new photo is taken — with a completely different angle and orientation — we can figure out which of those annotations that the first person created should be visible in the second person's photograph and then render them into that place in the photograph."
The biggest challenge was to accommodate the processing and matching of photos taken from different angles, at different times of day and with physical changes over time. "We designed all the algorithms to be able to handle change and ambiguity in the images," White said, citing as examples obstructions such as people walking in front of the camera or walls that change over time.
"We can tolerate a large amount of change before things start giving us trouble," he said. "A wall may double in height and we can still often recognize that wall based on the original imagery that we have of it."
White said the technology, which received an Innovation Award at January's Consumer Electronics Show in Las Vegas, has been licensed to a startup company, PAR Works Inc.
The Virginia Tech group has been working on other innovative ways to manage mobile devices, including a modified version of the Android operating system that lets admins set rules for when users can access data or run certain apps, according to such factors as their location or the time of day.
PREVIOUS: Smart phones as sensors: locating snipers, or parking spots
NEXT: When smart-phone technology hits the wall

source: HuggingFaceFW/fineweb-edu


text:
As a digital marketer, I use SQL every single day. And looking back on my career so far, it would be fair (though a bit reductive) to say that I could define my career by two distinct periods: before I learned SQL and after I learned SQL. The two periods are distinct for three main reasons:
- After learnings SQL I am faster at gaining insight from data
- After learnings SQL I am able to make decisions based on more data
- As a result, I've been making better marketing decisions—and I have seen the traffic, conversion rates, and ROI to prove it. (Thanks to SQL)
If you're at a crossroads in your career and you find yourself asking, "what coding language should I learn," here is my case for SQL.
What is SQL (for Digital Marketing)
When you see SQL you might think it means "Sales Qualified Lead" but more commonly, SQL stands for "Structured Query Language." It is a programming language that allows you to retrieve (or update, alter or delete) data from relational databases. (Relational is just a fancy word for a database that stores data in tables.)
It's kind of like ordering from McDonald's. SQL is a language – a specific set of instructions – that you use to specify the results you want, the way you want them, in the quantity you want. Basically, SQL allows you to have your data your way.
How is SQL Used in Business
SQL has two main uses: applications and analysis. Applications (apps) from CandyCrush to Instagram store content and data about users in databases and then use it to create an experience (like keep track of how many comments you have on an Instagram post). On the other hand, you can use SQL for analysis in the same way you can sort, filter, and pivot data in Excel. (except with a lot more data)
What's the difference between SQL and Excel?
Remember when you learned your first Excel formula? Pivot tables? VLOOKUP? You probably through you could take on the world! SQL is like that times 100. SQL and Excel are similar because they both allow you to analyze, manipulate, and make calculations, and join data in tables.
The biggest difference between Excel and SQL is that you can analyze exponentially more data exponentially faster with SQL but you can't update the data in SQL quite as easily. Also, SQL commands define how you want your data table to look when the data is retrieved so you are working with entire tables rather than individual cells. The benefit of this is that you don't have to worry about making mistakes when copying formulas (and the analysis errors that come with that.) On the whole, I'd say SQL is much better than Excel, most of the time.
SQL Example in Marketing
This example shows an ROI analysis using SQL code that you could use in a Facebook Ads dashboard. This example calculates how many customers you've acquired per country since the beginning of 2020, and the Facebook Ads spend that was spent in that country.
The example does the following:
- Aggregate a table of customers into a table of countries and customer counts who have become customers since January 1st, 2020.
- Joins that table with another table that contains Facebook Ads data by day
- Filters in only Facebook Ad spend data since January 1st, 2020
- Aggregates this all into a single table that has three columns: country, count of new customers from that country, and the ad spend for that country.
The good news is, this is about as complex as SQL gets. Pretty much everything else in SQL is just a variation of this.
Is SQL worth Learning?
In a word, yes. There is a practical reason and a conceptual one. The conceptual one is that learning SQL, like learning data structures or other programming languages, will expand how you think about data. It will help you organize data for analysis more efficiently and help you structure your thinking about how to answer questions with data. So even without a database, SQL can help you work with data.
The practical reason for learning SQL is that it allows you to gain insight faster, from more data, and come to better conclusions. That is true if you are analyzing keywords for PPC or SEO, analyzing how leads flow through your sales funnel, analyzing how to improve your email open rates, or analyzing traffic ROI.
Here are just a few good reasons.
- You'll spend less time trying to export and import data into spreadsheets
- You'll be able to replicate your analysis easily from week to week or month to month
- You'll be able to analyze more than 10k rows of data at once
- You can use BI tools to build dashboards with your data (and always keep them fresh)
- You'll be able to merge bigger datasets together faster than VLOOKUPs
- You won't have to ask for help from IT people, DBAs or engineers to get data out of a database or data warehouse for your analysis
How long does it take to learn SQL?
With dedication, you can develop a strong foundation in SQL in five weeks. I recommend Duke's SQL class on Coursera to go from zero to usable SQL skills in less than two months. With that class and a couple of books about PostgreSQL, I was on par with most analysts at Postmates (except I had the context about the data!). A few months later I learned enough to record this SQL demo with SEM data.
There are even good Android/iPhone apps that will help you learn the syntax through repetition. The class I recommend below (Data Manipulation at Scale: Systems and Algorithms) for Python also touches on SQL so it's a double whammy and Python Anywhere also features hosted MySQL, so that's a double-double whammy!
If you are looking for a short but substantive overview of SQL, this video from Free Code Camp is pretty good. I'm not suggesting you're going to know how to write SQL in four hours, but at least you will get the gist.
All that being said, like many programming languages, learning SQL is a continual practice because, after learning the language, you can expand into managing a database rather than just analyzing data in a database. You can also pair your SQL skill with other programming skills to make all sorts of interesting applications! The good news, for the most part, it's like riding a bike, once you learn it, you don't really forget it—but it will take you a bit of time to re-learn a wheelie.
Also published on Medium.


Yesterday I went over Why You Should Rewrite, Talked about Duplicate Content and When You Should Rewrite Your PLR – Click HERE to read all about it.
Today I'm going to teach you four easy steps to help you rewrite your done-for-you content.
4 Amazing How to Rewrite PLR Steps
By far the best way of making your PLR content appear unique to the search engines is to rewrite it. You don't have to rewrite 100% of the article – just enough that it doesn't look exactly like the original.
Plus you'll want to use the specific keywords you're targeting because this will help the search engines find them.
The good news is that rewriting PLR can take as little as ten minutes per article…. once you've practiced it a few times!
Use these steps to get going:
Step 1: Read the article
Read the article once through to get a feel for what it says and what the main points are. This will also let you see where the article is going and if you want to take anything out because you don't agree with it or don't want it in your blog post.
Step 2: Create a new Title & Subheadings
In a new document, enter a unique title and the subheadings for your article. The subheadings don't have to be in the same order as the original – in fact,it's great if you change it up a bit. This will make it more unique.
Make sure you're using the keywords that you've found in your title and subheadings for the search engines. You can use a tool like Jaaxy to help you find long tail keywords that don't have a lot of competition. This is the keyword tool I've been using for the keywords in my pre-written content bundles.
Under each of the titles and subheadings put the key points that you want to talk about for each topic.
Creating attention-grabbing titles takes practice and there is a technique to it. You should use the methods in Content Creation Formula, to get title ideas.
By using the search power of Jaaxy, and combining it with the methods of the Content Creation Formula, you'll have hundreds of targeted keywords with search intent. Targeting keywords alone is NOT enough.
You must write content that readers are searching for. That's exactly why these two products complement each other perfectly.
Another tool that I absolutely LOVE is a software called Fresh Title. Take your keywords and plug them into this tool. It'll literally spit out hundreds of ideas for you to pick from. Sometimes they work better as taglines, but with this huge list you can find one or two to use.
Step 3: Write the introduction and conclusion.
You can refer to the original and change the wording if you need to.
You can also do this step last. I've heard that some people write (or rewrite) their entire article first and then it is easier to come up with an intro and a conclusion because the rest of the articles is finished and you'll know how to introduce it.
Try it both ways and see which way is easier for you.
Step 4: Fill in the blanks
There are two different ways to approach this and it depends on if you're rewriting completely or just adding a few details to the pre-written content.
If you're rewriting you'd want to write paragraphs under each of the subheadings. Write about the same general idea from your memory, or keep referring to the original and reword it if you need a little more help.
TIP: Try to rewrite it this way, paragraph by paragraph, rather than sentence by sentence. This helps to keep it more naturally unique, as you let the words flow.
If you want to add a few details – you'd copy and paste the paragraphs that fit each bullet or key point that you added in Step 2.
Remember, if you want to you can stray from the original ideas and add your own – you can definitely do that. But if you want to make sure you keep the same message as the original, refer back to it from time to time to make sure you're staying on track.
Follow these steps and you'll be able to use all your done-for-you content. Don't let it sit on your hard drive. Make a plan and then schedule the time to work on it.
Have a great and productive day!
 Read Day 1 —————– Read Day 3
Powered by ConvertKit


Cat's Claw Bark C/S
$22.49 CAD
 - Botanical Name: Uncaria tomentosa
 Cat's claw is a plant. Two species of cat's claw, Uncaria tomentosa and Uncaria guianensis, are of primary interest for use as medicine. Uncaria tomentosa is most commonly used in the U.S., and Uncaria guianensis is typically used in Europe.
 Cat's claw is most commonly used for improving symptoms of both osteoarthritis and rheumatoid arthritis.
 Some people use cat's claw for viral infections including shingles (caused by herpes zoster), cold sores (caused by herpes simplex), and AIDS (caused by human immunodeficiency virus (HIV)).
 - Botanical Name: Uncaria tomentosa
 - Osteoarthritis and Rheumatoid arthritis
 - Stomach or intestinal ulcers
 - Inflammtation of digestive tract such as colitis or diverticulitis
 - Viral infections
Customer Reviews
Based on 1 review Write a review
You recently viewed
Clear recently viewed


text:
The disease appears first in one or two spurs and spreads in the following seasons to adjacent spurs, eventually killing the arm or cordon. Shoots developing from below the affected arm are healthy the first year but may show symptoms in subsequent seasons. Unless a major portion of the vine's structural framework is involved, the affected shoots eventually may be covered by normal overgrowth from the vine's healthy portion. It is common to find one side of the vine dead, while the other side appears healthy. When the whole vine has been killed or is severely affected by Eutypa dieback, strong suckers often develop from the still healthy root system. Complete collapse and death of vines or arms in summer is uncommon; once shoots have emerged, they usually grow through summer and die the next winter.
An important diagnostic symptom of Eutypa dieback is the formation of pruning wound cankers. These dead areas surrounding large, old pruning wounds often can only be found by removing the rough outer bark. They are frequently located adjacent to the affected spurs. In advanced cases, the wood around an unhealed wound assumes a ridged and flattened appearance so that the trunk or cordon may be twisted and malformed. Older cankers show a marginal zonation, indicating successive annual attempts of the vine to overgrow the necrotic area.
Because E. lata is a wound parasite, infection invariably occurs through pruning wounds. The fungus has a long incubation period in the vine. Several growing seasons may elapse before visible cankers develop around an infected wound or before stunted shoot symptoms appear.
Because the spores are dispersed by rain, the chance for infection can be reduced by pruning the grapevines late in the spring when rains are not as likely to occur. Late pruning is also important in reducing the susceptibility of the wounds. Research has shown that vines pruned early in the winter, when they are dormant, do not heal as quickly and the pruning wounds are susceptible to infection for 4 to 5 weeks. When vines are pruned in late winter-early spring they are beginning to come out of dormancy and the period of wound susceptibility is reduced to 10 to 14 days because they heal faster.
In the long term, wound protection offers much better control prospects than eradication once the disease has become established. Pay special attention to wound protection if drastic retraining or changeover of the variety is contemplated or if the vineyard is located in an area known to have E. lata.
See also Grapevine Trunk Diseases
The International Council of Grapevine Trunk Diseases (ICGTD) is a
non-profit organization dedicated to promoting personal contacts,
collaboration, and exchange of information among the scientists involved
in research on grapevine trunk diseases. The ICGTD maintains a
website with information about workshops, membership, references, and
scientific information about the trunk disease agents.
Gubler, W., Rolshausen, P., Trouillas, F., Urbez-Torres, J., Voege, T., Leavitt, G. and Weber, E. 2005. Grapevine trunk diseases in California (PDF). Practical Winery and Vineyard Jan/Feb 2005:6-25.
Gubler, W., and Leavitt, G. 1992. Eutypa Dieback of Grapevines. Pages 71-75 in: Grape Pest Management, 2nd edition. University of California Division of Agriculture and Natural Resources Publication 3343, Oakland, CA.
Pearson, R. and Goheen, A. 1988. Compendium of Grape Diseases. APS Press, St. Paul, MN. 93 pages.
Rolshausen, P., Trouillas, F., and Gubler W. 2004. Identification of Eutypa lata by PCR-RFLP. Plant Disease 88:925-929.


Syvum Home Page
Home > Religion > Christianity > Bible >
Biblical Characters E-M moses_ten_commandments
Given the KEY FACT, identify the BIBLICAL CHARACTER
Your Performance
He was a righteous son of Jacob and Rachel. His brothers sold him. He became a leader in Egypt.
 First letter clue
He was the father of Leah and Rachel.
 First letter clue
He was the righteous son of Isaac. He had twelve sons. Jesus changed his name to Israel.
 First letter clue
 First letter clue
 First letter clue
 First letter clue
 First letter clue
After clicking "Score and Show Answer(s)", click the "More Questions" button at the bottom to get a new set of questions.
Create Your Own Quizzes


User Tools
Site Tools
Définition d'un patron: see Yann's TSE
Définition d'un motif: see Yann's TSE
Définition d'une solution: see Yann's TSE
Définition d'une instance:???
Définition d'une occurrence: see Yann's TSE
Modèle systématique/ad hoc:???
Modèle: structure/comportement
Modèle complet/partiel
Modèle uniforme/sélectif (poids)
Granularité: motif/rôle
Relations: between instances/occurrences or roles in one/more instances/occurrences or classes playing roles?
Composition: same…
Thème formalisation:
Auteur, approche, article keywords relecture par Ziane (decoupling) constraints Simon Lepus Baroni 2003 TR lepus, layom, disco…
Thème génération/réutilisation (bibliothèque):
Auteur, approche, article keywords relecture par Soukup abstract et concrete pattern Simon Arnout componentization (Eiffel) Simon
Thème langage:
Encapsulation par entités de première classe, transformation de solution… Auteur, approche, article keywords relecture par Hedin Language support for design patterns attribute extension, semi-formal class diagrams (Revised by Foutse)
In this paper the author present a technique based on attribute grammars for formalizing design pattern solutions. Concretely they offer attributes extensions describing conventions by declaratives semantic rules. The rules are expressed in terms of patterns roles. Here the roles in patterns are played by Interfaces, Classes, Methods or Variables. The author introduced a notion of principal roles by claiming that it is not necessary to mark all the roles in the source code program. The hypothesis behind the author's technique is the claim that design patterns are sufficiently precise so that when selecting a particular implementation, they can be formalized and form the basis of programming language support. A claim which I consider subject to discussions. The intend of the technique presented by the author is to enable the identification of patterns in the source code and the automatic checkability that the patterns are applied consistently, according to given rules. The technique requires that the programmers annotate the source code with some defining pattern roles. The main drawback of the technique is that any formalization pin down precise rules for the pattern and it's difficult to foresee all reasonable implementation variations of the pattern.
Bosch, Ducasse, …
Thème détection/reverse engineering: Auteur, approche, article keywords relecture par Padl/ptidej Tsantalys Matrix Similarity Score patterns,graph algorithms, restructuring (Revised by Foutse)
In this paper the authors present a method of similarity score for the detection of design patterns. This method is focus on structural patterns. The authors use an implicit notion of principal roles which is here the roles with the most unique characteristics. For example roles participating only in the generalization matrix are excluded because the authors claim that their inclusion would lead to numerous false positives. They performed these exclusions by assigning weights to matrix according to the importance of the corresponding attributes. They claim that the excluded roles can be recovered if necessary after the detection of the pattern because they are close to the detected roles. The method presented by these authors do not consider roles played by artifacts other than classes or interfaces (for example methods), thus the method failed to distinguish between patterns like Adapter and command during the detection because the structure of the corresponding patterns are identical, and the distinction between them require one to know whether the method in the concrete subclass that is implemented by invoking a method of another object refers to the execution of a command or not. The author's method enable the detection of modified versions of patterns but given the modification is limited to only one pattern characteristic. A requirement I consider quite restrictive on my point of view. Pettersson Graph filtering/matching Antoniol Pattern inference Hannemann Role inference Smith/Stotts Elemental Design Patterns Vokac
Approche intuitive, software designer:
Auteur, approche, article keywords relecture par GoF, Agerbo,… JUnit cook's tour Riehle role modeling
Systèmes de notation des patterns (cf exp de eye-tracking en cours)
Various source code documentation
design_pattern_model.txt · Last modified: 2019/10/06 20:37 (external edit)


text:
Specifies the axis type for the X and Y-axes of a Series.
Assembly: System.Windows.Forms.DataVisualization (in System.Windows.Forms.DataVisualization.dll)
The enumeration represents the axis type used for the X and Y-axes of a Series.
A Series is plotted using two axes, with the exception of pie and doughnut charts. This enumeration is used in conjunction with the XAxisType and YAxisType properties to set the axes used for plotting the associated data points of the series.
For all charts except for bar, stacked bar, pie and doughnut types, the primary and secondary axes are as follows:
Bottom horizontal axis.
Top horizontal axis.
Left vertical axis.
Right vertical axis.
Bar and stacked bar charts have their axes rotated 90 degrees clockwise. For example, the primary X-axis for these two charts is the left-vertical axis.


New Israeli study exposes coded language used by anti-semites on social media
March 2, 2021 by TPS
Read on for article
Anti-Semites are employing the use of a secret language, or "dog whistles," to evade detection by algorithms on social media tracking anti-Semitism, posing challenges to law enforcement and social media platforms, a University of Haifa study has revealed.
Candles shaped as the Star of David at the ceremony marking the Holocaust Martyrs' and Heroes' Remembrance Day (Yom Hashoa), at Hadassah Medical Center in Jerusalem. Jerusalem, May 2, 2019. Photo by Avigail Eyal/TPS
The new study, authored by Dr Gabriel Weimann, a professor of communication at the University of Haifa and web intelligence analyst Ari Ben-Am, has revealed the existence of a new coded language on social media being used by anti-Semitic groups to fly under the radar of artificial intelligence-designed algorithms.
This sophisticated language, which is used for both propaganda and recruitment purposes, is hidden in plain sight and encourages violent incidents like the Christchurch shooting in New Zealand or the January Capitol Hill riots in Washington D.C.
The study explores the emergence of this new language, its characteristics, transmission, and usage, and its findings are intended to serve both law enforcement and private sector hi-tech organizations in their quest to combat hate speech online.
Given the popularity of the platform, the study focused primarily on images and messages disseminated on Facebook.
Posts used for the analysis were identified qualitatively after scanning hundreds of relevant groups and pages, eventually reaching a smaller sample of tens of pages with a minimum of 500 followers or likes as an initial seed group.
Much of this coded language, the study found, was shown to rely on the use of "dog-whistles," a coded message communicated through words or phrases commonly understood by a particular group of people, but not by others.
The method could be as simple as swapping one word for another such as far-right users calling Jews "Skypes," African-Americans as "Googles" and Latinos as "Yahoos."
Some tactics to disguise the anti-Semitic communications use numerology where numbers stand for people or concepts. The number 88, for example, stands for "Heil Hitler," since H is the eighth letter in the alphabet.
Finally, the language also employed visual cues often by manipulating already popular memes found in pop culture. This method is by far the most sophisticated one as an algorithm's ability to detect hate speech within an image is still limited.
Weimann is working on a comprehensive glossary of terms chronicling instances of this coded language and what it means, and hopes this study will encourage law enforcement and hi-tech companies to be more vigilant and aware that their algorithms are not the be-all and end-all of ending hate speech.
"It's clear that security, counter-terrorism, and government agencies, as well as social media platforms, are doing much to crack down on abuse," Weimann said.
However, "we need to educate the operators of these companies that run social media platforms to report these violations and also teach their users how to spot them. A human eye is still much savvier than a computer-generated algorithm," he said.
So successful is this new language based on numbers, acronyms, and hidden images, that it has driven the formation of alternative social media sites such as Gab, Bitchute, and imageboards such as 4Chan, 8Chan, and Neinchan.
"While this is purely an academic study, it has real-world implications," Weimann added. "Being Internet savvy and understanding what you're seeing online is important. We need to learn what they do, slow them down, and reduce their activity and efficiency. Words kill even if in a new language."
Speak Your Mind
Comments received without a full name will not be considered
 Rules on posting comments


text:
- THE FRIDAY JUMAA
PRAYERS, BACKGROUND
- THE IMAM
JUMAA PRAYER LEADER
THE GLOBAL STANDARDIZED FORMAT
3.1. Standard Introduction
3.2. Body of the First Part of the
3.3. Conclusion of the First
Part of the Khutba
3.4. The Second Part of the Khutba
3.6. Globally Standardized Conclusion
- DOS AND DONTS IN
DELIVERING A KHUTBA
1. THE FRIDAY JUMAA
PRAYERS, BACKGROUND:
- It is a FARD (Required). It cannot be waived except for an
acceptable excuse as ordained by the jurists. Please see sura / chapter "Jumaa
No. 62" in the Holy Quraan" aya / verse 9 and 10.
- It is a weekly "State of the Community" address and
the best forum for motivating, galvanizing, educating and bonding the community.
- It is the most important activity of any Islamic Center or
The Jumaa Khutba is the most important part. It is the tool
of educating and bonding the community, uniting the community, giving hope to the
community, guiding the community, improving the quality of the community and propagating
2.THE IMAM JUMAA PRAYER LEADER:
2.1.The Imam is the leader of the congregation and the leader
of the community.
2.2.The Imam should remember that he is standing in the place
of our beloved very first Imam and Leader Prophet Muhammad (S).
2.3. The Jumaa Imams responsibility is the most
burdensome and serious responsibility a Muslim can ever accept.
2.4. The Imam is responsible for every person praying behind
him. If he makes a mistake he is responsible for his mistake and of all those who followed
him. If he misleads or uses the Khutba for the wrong purpose, he will be responsible for
his action and for all those who follow him.
2.5. The Imams dress should be modest, not tight, clean
2.6. The Imam should have read the Quraan, understood
it well and continues to make serious efforts to understand it further, and to memorize as
much as possible of it. Remember that the one who is most qualified to lead is the one who
understands the Quraan and who lives according to it.
2.7. The Imam should be the example and the model for the
community, the heart of the community, and the tongue of the community. He should be able
to listen to the community, express and articulate its pains, its aspirations and its
The successful Imam is one who is optimistic, one who is able
to paint an image of the future and who can capture the imagination of the congregation in
order to bring that image to reality.
3. THE GLOBAL STANDARDIZED FORMAT
It includes the Praise of Allah, and the prayers on His
prophets & the last of all prophets, Prophet Muhammad (S).
"" Al-Hamdu Lillahi Thumma Alhamdu Lillah
Al-Hamdu Lillahi Alzi Hadana Lihaza wama Kunna Lanahtadiya
Lawla Ann Hadana Allah.
Al-Hamdu Lillahi Ghafiriz Zunibi Jameeihaa Illa Shirka
Wasalatu wasalamu ala rasulilahh"".
Praise is due to Allah,
Praise is due to Allah who guided us to the righteous path,
and indeed we wouldnt have attained this state of guidance without Him Allah,
Praise is due to Allah who forgives all sins and misdeeds
except associating others with Him.
of the First Part of the Khutba:
- This includes your messages, supporting quotations from the
Holy Quraan, the sayings of Prophet Muhammad and other sources like history.
- Always write your Khutba. Read from the transcript. Do not
just read, live the Khutba. Put life in it. You have to demonstrate that you believe in
every word that you say.
My strategy has been to use current events as a vehicle and a
locomotive to achieve a domestic local goal and to make a difference but perhaps, not too
Define what you want to talk about/ the theme of the Khutba.
Spend time researching your theme. Imagine that you are in
fact giving it. Live it. Dream of it. Sleep with it in your mind and in your heart.
When you talk to people, read the paper, read a book, watch
the news or even while driving ideas will pop into your mind. Write the ideas down if
applicable, these ideas can form the bases of a great Khutba.
Start by a reflection on Gods greatness and creation in
order to inject spirituality in your audience
State the subject you want to discuss and, if applicable, the
event that ties in with the subject. State your opinion and your justification based on
Elaborate using facts and figures if applicable. Remember
that every word from the Imam is a great responsibility. So, please research your subject
and figures in detail.
Give your messages. How do people apply these messages to
their daily lives and to their goals in this life?
3.2.3. Suggested Topics:
- Historic Events in Islam like Hijra, Israa & Miraj,
Ramadan, Story of Abraham
- Important Modern Historic Events like Islam in Europe, Islam
in America, etc.
- Importance of Education, political action, financial
independence, inviting to the way of Allah
Conclusion of the First Part of the Khutba:
The first part is concluded with an invitation to the
congregation to make a duaa (supplication):
"" Idoo Allaha Yaghfir Lakum Zunubakum"
Make a supplication to Allah, He will accept your prayers
& forgive your sins
SIT DOWN & MAKE A DUAA YOURSELF
Second Part of the Khutba:
This part starts with the same standard form as in 3.1 above.
It includes a summary of the messages you wanted the
congregation to remember till next weeks Khutba.
Leave them with at least three messages and no more than five
Messages should be in the form of brief but striking
"bullets" that can be remembered.
3.5. The Duaa Supplication:
Again, for the sake of global standardization using the
global "Islamic Language", one uses a standard and brief duaa:
"" Allahuma Eghfir Lil Muslimeena wal
. Stop for the congregation to say AAMEEN"
"" Wal Moumineena wal Mouminaat
"" Al-Ahyaee minhum wal amwat
"Innaka sameeun mujibul dawat
"Almighty God, forgive the Muslim men and women,
Forgive the believing men and women,
Those who are alive and those who died,
You are indeed the One who listens and accepts all
Then you can make any duaa (supplication) in English
that is of your liking and is appropriate for current events.
3.6. Globally Standardized Conclusion:
Inna Allah Yaamuru Bil Aadli wal Ihsan, wa Itaee
Wa Yanhaa Anil Fahshaaee wal munkaree wal baghyi
YaIzukum Laallakum tazakkaroon"
""Servants of Allah:
Indeed Allah orders us to be just and to excel in what we do,
Be generous and to take care of our kin and relatives,
Never do what is forbidden of all sins and
Not to transgress,
He almighty advises you so you can remember""
Then you conclude by saying to the muazzin:
Innaa Asalata tanha anil fahshaaee wal munker,
Addressing the muazzin (the person that calls for the
prayers) to call for establishing (iqamah) prayers.
Then you come down to lead the prayers.
4.DOS AND DONTS IN
DELIVERING A KHUTBA:
- Be brief and to the point. Khutba should not exceed 20 to 25
- Be Optimistic and positive. Never complain.
- Be cheerful and never forget to smile, always with sincerity.
- Be honest and straight in your statements and clear.
- Motivate the community.
- Try to be as general in your statements as possible,
especially regarding nationalities and ethnicity. Remember that you have a diverse
- Be current in your examples and themes.
- Be organized and structured. Write your Khutba. You may use
script or note cards.
- Use simple words, no more than 3 syllables. Remember to speak
slowly and punctuate. Use simple and easy English.
- Have a positive delivery style with a lot of energy and
- Use eye contact. You need to give the feeling that you really
are talking to each individual in the congregation.
- Initiate action before you conclude the second part of the
Khutba. Let people leave the masjid with a list of things to do.
- Be people oriented. When you are seated getting ready to
deliver the Khutba, use eye contact, smile great people and be sincere.
- Choose a diversified coaching board.
- SHAKE HANDS, MINGLE, OPEN YOUR EARS, OPEN YOUR EYES, OPEN YOUR
HEART AND GET FEEDBACK:
- Read peoples eyes while delivering the Khut


Search tips
Search criteria
ACS Chem Biol. Mar 19, 2010; 5(3): 265–272.
Published online Feb 12, 2010. doi: 10.1021/cb900293a
PMCID: PMC2842019
Why Does Binding of Proteins to DNA or Proteins to Proteins Not Necessarily Spell Function?
Buyong Ma, Chung-Jung Tsai, Yongping Pan, and Ruth Nussinov*
Basic Science Program, SAIC-Frederick, Inc., Center for Cancer Research Nanobiology Program, NCI-Frederick, Frederick, Maryland 21702
* Corresponding author, ruthnu/at/
Received November 22, 2009; Accepted February 12, 2010.
An external file that holds a picture, illustration, etc.
Object name is cb-2009-00293a_0003.jpg Object name is cb-2009-00293a_0003.jpg
Studies of binding are often question: first, is the observed binding functional, and second, if it is, which function? Is it activation or repression? The first question relates to binding at different sites; the second relates to binding at similar sites. These questions apply to transcription factors binding to genomic DNA and to protein interaction domains binding to their partners. Here, we explain that both can be understood in terms of allostery and the cellular (or in vitro) environment. The idea is simple yet powerful; it emphasizes the role of allostery in defining whether binding between transcription factors and (cognate or noncognate) DNA sequences will lead to function and to the type of function. Allosteric effects are the outcome of dynamically shifting populations; thus binding to even slightly different DNA sequences will lead to different transcription factor conformations that can be reflected in the binding sites to their co-regulators. Currently, allostery is not considered when trying to understand how binding phenomena determine the functional outcome. Allosteric effects can enhance the binding specificity in a function-oriented manner. Here we provide a biological rationale that considers cellular crowding effects.
To be functional, proteins need to bind their partners; expressing function in the cell entails a network of binding events. Yet, in vivo and in vitro, binding of transcriptional control (TC) proteins to their cognate DNA response elements (REs) or of protein molecules to their protein partners does not imply function. Function is based on events taking place following binding, that is, whether the binding leads to specific subsequent binding events as specified by the cellular program. Consequently, identification of the location of the REs in the genome by chromatin immunoprecipitation (ChIP) that obtains protein−DNA interactions is often coupled with microarray readout of these experiments (ChIP-chip) (1). Such a combination assists in defining the in vivo utilization of genomic sequences by the TC proteins and the functional consequences. Toward this aim, the higher resolution and greater coverage ChiP-seq technique for genome-wide profiling of DNA-binding proteins is also gaining momentum (2). In genomic DNA, not all REs are chromatin-available (3). However, even for chromatin-available REs, binding of a TC protein does not necessarily indicate function. Similarly, detection of protein−protein interactions by co-immunoprecipitation via endogenous (not overexpressed and not tagged) proteins with subsequent Western blotting implies direct or indirect (via a bridging protein) binding; however, again, the binding may or may not specify function. Moreover, REs that are very similar, with only a single base pair (bp) change, can lead to vastly different functional consequences (48). Yet while it is broadly accepted that binding, whether of a TC protein to its RE or between proteins, does not indicate function, the reasons are not entirely understood. At one end of the spectrum, some types of specific binding are linked to specific functions ((1,1, panel A); at the other, specific binding is insufficient. Function is determined by subsequent events ((1,1, panel B). There are examples for both. For the first (4), p53 has a very large number of similar REs in the genome. Binding to certain REs activates DNA repair, cell-cycle arrest, senescence, or apoptosis; binding to others represses or inactivates pathways via either involvement of the histone deacetylase, inactivation of other DNA-bound and DNA-unbound activators, or other routes (5). The transcriptional repressor REST (NRSF), which encodes DNA binding affinity hierarchies contributing to regulation during lineage-specific and developmental programs, provides another example (9). Canonical REST REs bind strongly and control REST targets common to all cell types, whereas atypical motifs involve weak interactions in cellor tissue-specific targets. Hence, selective binding of a certain RE already determines the functional outcome. The nuclear receptor (NR) provides an example for the other end of the spectrum; NR binding to its REs is insufficient. The functional outcome is determined by subsequent co-regulator, co-activator, or co-repressor, binding events at different sites (6,7). The Apak (ATM and p53-associated KZNF protein), a Krüppel-associated box (KRAB)-type protein(10) that regulates p53-dependent apoptosis, provides an example for a yet different mechanism: binding to both p53 TC and to DNA via its zinc-finger motif. At the same time, not all binding events away from the co-activator binding site are functional ((1,1, panel C). Why then does binding not necessarily imply function? We propose that to be functional, binding either should be a consequence of allosteric amplification of a minor conformational change, as in p53 and REST, or should lead to it, as in NR, or both, as in Apak. A similar situation can be seen in protein interaction domains (PID) such as PDZ, 14-3-3, Bromo, SH2, SH3, and LRR (11). Ligand binding to PID, mutations, or post-translational modifications away from the binding site allosterically alter the PID binding site conformation (12,13). ).22 provides two examples illustrating how binding at other sites by an RE (6) or agonist/antagonist ligand (14) can alter the respective co-regulator binding site conformations leading to activation or inhibition. Cellular fluctuations play key roles in all, either in the initial allosteric event or in subsequent binding events. Similar conformational changes can be elicited by perturbation (binding, post-translational modification) events on major allosteric pathways elsewhere in the structure (12). On the other hand, in nonfunctional binding the perturbation site is not on a major pathway between the RE's (or agonist's) and the co-regulator's ((1,1, panel C). Thus chromatin immunoprecipitation obtains binding; however, microarray readout may not present functional change. This emphasizes the shortcomings in cellular network diagrams: pathways are neither simply sequential nor "yes/no" contingent events. Mechanistically, pathway steps are the outcome of allosteric response reflected in conformational selection (1520). This mechanistic picture rests on a dynamic view of molecules as ensembles of conformations.
Figure 1
Figure 1
An illustration to explain why binding does not necessarily spell function. The response elements (REs, red boxes) of a given transcriptional control protein (TC) have very similar DNA sequences, with small base pair (bp) changes, yet they regulate genes (more...)
Figure 2
Figure 2
Two examples illustrating how binding at other sites−by an RE (A) or agonist/antagonist ligand (B)−can allosterically alter the respective co-regulator binding site conformation leading to activation or inhibition. In the left panel of (more...)
In solution proteins exist as conformational ensembles, which can be described by statistical mechanical laws, and their populations follow statistical distributions (2123). The number of states is vast, the conformational differences are generally small, and the barriers are low ((3).3). The more flexible the proteins are (as in the case of transcription factors that are often disordered), the larger the number of states. Ample data from single molecule, NMR, and other techniques (2434) validate this description (19,3537). During binding, higher energy lower population conformers that are most complementary to the ligand are selected and the equilibrium shifts toward these conformers (1518). This validated (19) "conformational selection and population shift" model1518 for molecular recognition provides an alternative to the 50-year old "induced fit" hypothesis(38). Relating this description to binding and function, in our first case type ((1,1, panel A), binding implies function; hence a key question is how the TC protein selects a particular RE among all similar and available REs in the genome (4) and similarly, how the PID (11), which can have hundreds of partners binding at the same site (39), selects a specific one. Since here the affinities are generally low, selection is dictated by prior binding (or post-translational modification) events. These allosterically shift the ensemble toward specific conformations. At the other end of the spectrum ((1,1, panel B), the TC already binds with high affinity many REs. One or two bps changes are amplified via population shifts in the TC ((2,2, panel A).


text:
Home Market Effect Hypothesis in a Multi-Country World
AbstractThe home market effect (HME) is commonly defined as a more than proportional positive causation from demand to supply. Recent theoretical literature, however, shows that the traditional definition highlighted within two-country framework does not always survive in higher dimensional settings. This is because 'third' country effects (i.e. adjustments in foreign expenditures) may reverse the positive impact that an increase in domestic demand has on its production. As such, empirical implementations of the HME hypothesis are problematic. In this paper, we try to fill this gap by proposing a revised version of the HME test, robust to an arbitrary number of countries. Using Behrens et al. (2004), which extends Krugman (1980) model to a multi-country setting, we derive a theory-founded empirical specification that accounts for a complete geographical structure of demand and proximity incentives offered to firms when choosing location sites to set up production facilities. We estimate the evolution of production structure in the EU countries for 24 manufacturing sectors over _PHONE_. We find support for the presence of the HME in a number of industries. The results also emphasize the importance of countries access to foreign markets.
Download InfoIf you experience problems downloading a file, check if you have the proper application to view it first. In case of further problems read the IDEAS help page. Note that these files are not on the IDEAS site. Please be patient as the files may be large.
Bibliographic InfoPaper provided by Economics Section, The Graduate Institute of International Studies in its series IHEID Working Papers with number 16-2007.
Date of creation: Feb 2007
Date of revision: Feb 2007
New trade theory; multi-country models; economic geography; home market effect; market potential; market access;
Find related papers by JEL classification:
- F12 - International Economics - - Trade - - - Models of Trade with Imperfect Competition and Scale Economies; Fragmentation
- F14 - International Economics - - Trade - - - Empirical Studies of Trade
- F17 - International Economics - - Trade - - - Trade Forecasting and Simulation
- R11 - Urban, Rural, Regional, Real Estate, and Transportation Economics - - General Regional Economics - - - Regional Economic Activity: Growth, Development, Environmental Issues, and Changes
- R12 - Urban, Rural, Regional, Real Estate, and Transportation Economics - - General Regional Economics - - - Size and Spatial Distributions of Regional Economic Activity; Interregional Trade (economic geography)
This paper has been announced in the following NEP Reports:
You can help add them by filling out this form.
reading list or among the top items on IDEAS.Access and download statisticsgeneral information about how to correct material in RePEc.
For technical questions regarding this item, or to correct its authors, title, abstract, bibliographic or download information, contact: (Johannes Eugster).
If references are entirely missing, you can add them using this form.


Sign up ×
I'm using the following code in my application, and it's working fine. But I'm wondering if it's better to make it with malloc or to leave it as is?
function (int len)
char result [len] = some chars;
send result over network
share|improve this question
Is the assumption that the code is targeted for a non-embedded environement? – tehnyit May 8 '12 at 12:14
7 Answers 7
The main difference is that VLAs (variable length arrays) provide no mechanism for detecting allocation failures.
If you declare
char result[len];
and len exceeds the amount of available stack space, your program's behavior is undefined. There is no language mechanism either for determining in advance whether the allocation will succeed, or for determining after the fact whether it succeeded.
On the other hand, if you write:
char *result = malloc(len);
if (result == NULL) {
 /* allocation failed, abort or take corrective action */
then you can handle failures gracefully, or at least guarantee that your program won't try to continue to execute after a failure.
(Well, mostly. On Linux systems, malloc() can allocate a chunk of address space even if there's no corresponding storage available; later attempts to use that space can invoke the OOM Killer. But checking for malloc() failure is still good practice.)
Another issue, on many systems, is that there's more space (possibly a lot more space) available for malloc() than for automatic objects like VLAs.
And as Philip's answer already mentioned, VLAs were added in C99 (Microsoft in particular doesn't support them).
share|improve this answer
Variable-length automatic arrays were introduced to C in C99.
Unless you have concerns about backwards comparability to older standards, it's fine.
In general, if it works, don't touch it. Don't optimize ahead of time. Don't worry about adding special features or clever ways of doing things, because you often aren't going to use it. Keep it simple.
share|improve this answer
I have to disagree with the "if it works, don't touch it" dictum. Falsely believing that some code "works" can cause you to work around problems in some code that "works". Belief must be replaced by tentative acceptance that some code works right now. – Bruce Ediger Apr 11 '12 at 15:39
Don't touch it until you make a version maybe "works" better... – H_7 Apr 11 '12 at 22:57
If your compiler supports variable-length arrays, the only danger is overflowing the stack on some systems, when the len is ridiculously large. If you know for sure that len is not going to be larger than a certain number, and you know that your stack is not going to overflow even at the max length, leave the code as is; otherwise, rewrite it with malloc and free.
share|improve this answer
what about this on non c99 function (char[]) { char result [sizeof(char)] = some chars; send result over network } – Dev Bag Apr 10 '12 at 21:30
_USER_ char result [sizeof(char)] is an array of size 1 (because sizeof(char) equals one), so the assignment is going to truncate some chars. – dasblinkenlight Apr 10 '12 at 21:33
sorry about that, I mean it this way function (char str[]) { char result [sizeof(str)] = some chars; send result over network } – Dev Bag Apr 10 '12 at 21:36
_USER_ This is not going to work either - str decays to a pointer, so its sizeof is going to be four or eight, depending on the pointer size on your system. – dasblinkenlight Apr 10 '12 at 21:40
If you are using a version of C without variable length arrays, you may be able to do char* result = alloca(len);, which allocates on the stack. It has the same basic effect (and same basic problems) – Steven Burnap May 8 '12 at 15:42
I like the idea that you can have a run-time allocated array without memory fragmentation, dangling pointers, etc. However, others have pointed out that this run-time allocation can silently fail. So I tried this using gcc 4.5.3 in a Cygwin bash environment:
_TAG_
_TAG_
void testit (unsigned long len)
 char result [len*2];
 char marker[100];
 memset(marker, 0, sizeof(marker));
 printf("result's size: %lu\n", sizeof(result));
 strcpy(result, "this is a test that should overflow if no allocation");
 printf("marker's contents: '%s'\n", marker);
int main(int argc, char *argv[])
 testit((unsigned long)-1); // probably too big
The output was:
$./a.exe
result's size: 200
marker's contents: ''
result's size: _PHONE_
marker's contents:'should overflow if no allocation'
The overly large length passed in the second call clearly caused the failure (overflowing into marker[]). This doesn't mean that this kind of check is fool-proof (fools can be clever!) or that it meets the standards of C99, but it might help if you have that concern.
As usual, YMMV.
share|improve this answer
+1 this is very useful :3 – Kokizzu Jan 15 '14 at 6:45
Generally speaking the stack is the easiest and best place to put your data.
I would avoid the problems of VLAs by simply allocating the largest array you expect.
There are however there are cases when the heap is best and messing around with malloc is worth the effort.
 1. When its large but variable amount of data. Large depends on your environment > 1K for embedded systems, > 10MB for a Enterprise server.
 2. When you want the data to persist after you exit your routine, e.g. if you return a pointer to your data. Using
 3. A combination of static pointer and malloc() is usually better than defining a large static array;
share|improve this answer
In embedded programming, we always use static array instead of malloc when the malloc and free operations are frequent. Because of the lack of memory management in embedded system, the frequent alloc and free operations will cause memory fragment. But we should utilize some tricky methods such as defining the max size of array and using static local array.
If your application is running in Linux or Windows, it is no matter using array or malloc. The key point lies in where you use your date structure and your code logic.
share|improve this answer
Something that nobody has mentioned yet is that the variable length array option is probably going to be vastly faster than malloc/free since allocating a VLA is just a case of adjusting the stack pointer (in GCC at least).
So, if this function is one that is called frequently (which you will, of course, determine by profiling), the VLA is a good optimisation option.
share|improve this answer
It will seem good up until the point when it pushes you into an out-of-stack-space situation. What's more, it might not be your code that actually hits the stack limit; it could end up biting in a library or system call (or interrupt). – Donal Fellows May 8 '12 at 12:46
_USER_ Performance is always a trade off of memory against speed. If you are going to go round allocating arrays of several megabytes, then you have a point, however, even for a few kilobytes, as long as the function isn't recursive, it's a good optimisation. – JeremyP May 9 '12 at 9:26
Your Answer