The Latest: Pilot dies as plane crashes into California home
by Associated PressUPLAND, Calif. (AP) — The Latest on a plane crash into a Southern California house (all times local):
1:20 p.m.
Police say the pilot of a small plane that crashed into a Southern California home has died.
Upland police Capt. Marcelo Blanco said Thursday that authorities believe the pilot was the only person aboard the single-engine Cirrus SR22.
The pilot was not immediately identified.
Blanco says authorities don't know what caused the plane to crash into the residence, igniting a fire. A father and child inside the house escaped unharmed.
___
12:10 p.m.
Police say two occupants of a Southern California home were not harmed when a small plane crashed into the residence and ignited a fire.
Upland police Capt. Marcelo Blanco says a father and child were home at the time and escaped without injuries.
Blanco says the plane was a single-engine Cirrus SR22, but he had no information about who was aboard the craft when it went down late Thursday morning.
___
12:02 p.m.
Authorities say a single-engine plane has crashed into a house in Southern California, sparking a house fire.
The San Bernardino County Fire Department was at the scene of the crash late Thursday morning. Fire officials say the occupants of the house were accounted for.
There was no immediate information on how many people were on the plane, nor their conditions.
TV news helicopters showed a large portion of the house gutted and smoldering.
A parachute was draped over trees. Some small planes are equipped with parachutes for emergency landings.
Upland is about 35 miles (55 kilometers) east of Los Angeles.


public class PolicySearchApp
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static double[][] |
utilityIterationsPolicy |
static double[][] |
utilityIterationsValue |
| Constructor and Description |
|---|
PolicySearchApp() |
| Modifier and Type | Method and Description |
|---|---|
static void |
main(java.lang.String[] args) |
static ActionUtility[][] |
policyEval(StateGrid stateGrid,
ActionUtility[][] au)
policyEval Method
Updates the utilities in the ActionUtility given a specific Policy
|
static ActionUtility[][] |
policyIteration(StateGrid stateGrid)
policyIteration Method
Uses Policy Iteration to find the optimal policy and the best utility at each State of the Grid given a StateGrid
|
static void |
seeAction(ActionUtility[][] res)
seeAction Method
Displays the Action of the States on the console in Grid format (Policy)
|
static void |
seeUtil(ActionUtility[][] res)
seeUtil Method
Displays the Utility of the States on the console in List format
|
static void |
seeUtilGrid(ActionUtility[][] res)
seeUtilGrid Method
Displays the Utility of the States on the console in Grid format
|
static void |
seeUtilityIterationsPolicy()
seeUtilityIterationsPolicy method
Displays the Number of Iterations and the estimated utilities of the State for the following state:
(0,0) (0,5) (1,5) (3,3) (4,5) for Policy Iteration
|
static void |
seeUtilityIterationsValue()
seeUtilityIterationsValue method
Displays the Number of Iterations and the estimated utilities of the State for the following state:
(0,0) (0,5) (1,5) (3,3) (4,5) for Value Iteration
|
static ActionUtility[][] |
valueIteration(StateGrid stateGrid,
double epsilon)
valueIteration Method
Uses Value Iteration to find the optimal policy and the best utility at each State of the Grid given a StateGrid
and an error value epsilon
|
public static double[][] utilityIterationsValue
public static double[][] utilityIterationsPolicy
public static void main(java.lang.String[] args)
public static ActionUtility[][] valueIteration(StateGrid stateGrid, double epsilon)
stateGrid
- the StateGrid that will be used in the policy searchepsilon
- the minimum error value that each ActionUtility can differ bypublic static ActionUtility[][] policyIteration(StateGrid stateGrid)
stateGrid
- the StateGrid that will be used in the policy searchpublic static ActionUtility[][] policyEval(StateGrid stateGrid, ActionUtility[][] au)
stateGrid
- the StateGrid that will be used in the policy searchau
- the ActionUtility[][] that is used which includes the Action to takepublic static void seeUtil(ActionUtility[][] res)
res
- the array of ActionUtility to be displayedpublic static void seeUtilGrid(ActionUtility[][] res)
res
- the array of ActionUtility to be displayedpublic static void seeAction(ActionUtility[][] res)
res
- the array of ActionUtility to be displayedpublic static void seeUtilityIterationsValue()
public static void seeUtilityIterationsPolicy()


https://www.n00py.io/2017/12/raining-shells-on-linux-environments-with-hwacha/
https://github.com/n00py/Hwacha
Prime functions include
Credential Testing
Data Collection
Key-Based Authentication
Meterpreter Execution
Native Shellcode Execution
Web Delivery (Pupy)
Mimipenguin Execution (plaintext credentials in memory)
MacOS Meterpreter
Binaries with SUDO (Bella RAT)
Current modules (1/Aug/18)
Available Modules:
[*] meterpreter Use this to execute a meterpreter agent on the target(s).
REQURED ARGUMENTS: LHOST , LPORT
OPTIONAL ARGUMENTS: TYPE {python, php, 32, 64, osx}
[*] mimipenguin Use this to execute a mimipenguin on the target(s) to recover credentials. (Requires root)
OPTIONAL ARGUMENTS: LHOST, LPORT
[*] keys Use this to collect SSH private keys from the target(s).
[*] history Use this to collect shell history files from the target(s).
[*] privs Use this to enumerate sudo privileges on the targets(s).
[*] web_delivery Use this to execute a python script on the target(s).
REQURED ARGUMENTS: PATH
OPTIONAL ARGUMENTS: LISTEN
[*] custom_bin Use this to execute a custom binary on the target(s).
REQURED ARGUMENTS: PATH
[*] sudo_exec Use this to execute a custom binary (with sudo) on the target(s).
REQURED ARGUMENTS: PATH
[*] shellcode Use this to execute custom shellcode on the target(s).
REQURED ARGUMENTS: PATH
The most simple task it can be used for is testing credentials against targets. If we have a valid username and password, we can test it against a range of IPs.
Collect data such as -m keys, or -m history
Once we find a private key, it will be stored in a “loot” folder on the system running Hwacha. We can also use this key to authenticate instead of using a password, and we can also use the “-x” flag to run a command on the system.
We can also use Hwacha to execute a Meterpreter stager. by default, it will chose a python payload.
While a python Meterpreter shell is nice, an x64 or x86 Meterpreter shell is better. Why? More functionality. With a native payload you can access the webcam and perform lower level functionality that isn’t possible with the python or PHP payloads.
It is also very important to note that this payload does not touch disk! Python is used to execute native shellcode in memory. This greatly reduces our chances of being detected.
While I’m a pretty big fan of Metasploit, it is not the only Remote Access/Administration Tool (RAT) on the market. In fact, Pupy is an extremely versatile cross-platform RAT written in python. One way to deploy a Pupy agent is by using the web delivery module in Hwacha. We can direct it to any python file and Hwacha will execute it on the target all within memory. Once you have the python file, use the web_delivery module with Hwacha and supply options for the path and a port for the web server. The target will pull down the file and execute it in memory.
Another cool module you can use (which is also in CME) is mimipenguin. If you have root, you can scrape memory and dump plaintext passwords. This is particularly useful if the target system is running GNOME. This module works much like the web delivery module, though you don’t need to supply the path to the script. By default this will wait up to 5 minutes to receive results. The time to complete will vary depending on the system resources.
Hwacha also includes modules for MacOS. Much like Linux, you can easily execute python and PHP Meterpreter shells on MacOS. It can also use a native payload as well. At the time of writing, no staged payload exists in Metasploit so to get an x64 Meterpreter shell so Hwacha will copy over a Macho binary and execute it on the target, and remove the payload after. While this is not as good as the diskless shellcode method, it does make the process simple.
Executing Binaries with sudo (Bella RAT)
While both Meterpreter and Pupy are both great RATs, on MacOS you also have the option of using Bella, which is an extremely powerful RAT for MacOS. We can use the privs module to check if we have sudo permissions on the target system. If we do, we can use the sudo_exec module which will copy a file over and execute it with sudo. Because Bella becomes most useful once root permissions are obtained, this is ideal.
After Sending the payload we should see the incoming connection on our Bella Control Center.
The functionality within Bella is nothing short of horrifying for the target, as Bella boasts the ability to download almost all sensitive data from the synced iCloud account. Here is a list of modules available in Bella:


Latest funding rounds on Index.co >
BharatPe
$2B
DEBT FINANCING
Oqton
$40M
SERIES A
Swimm
$5.7M
SEED FUND
Harness
$85M
VENTURE CAPITAL
Hard Fork >
- CD Projekt Rekt: Cyberpunk 2077 tanks studio's share price nearly 50%
- CD Projekt stock down 20% since Cyberpunk reviews hit the internet
- Airbnb to be bigger than eBay after its long-awaited IPO
- Tesla just set a new record high. Now it wants to dump $5B in stock
- Meanwhile, esports and gaming stocks are pumping to record highs
Apps >
MOST POPULAR
Android Auto is reading notifications in the wrong language — and Google's solution is terrible
4 days ago
- Oh, great — Uber and Lyft are actually increasing car ownership in US cities
- Donald Trump has been permanently banned from Twitter
- All I want for Christmas is a length-based search option on Netflix
- Can Apple’s rumored search engine ever compete with Google?
- Google's Android Auto finally has a third-party app for navigation
Gear >
- Report: Apple is building foldable iPhone prototypes
- The Galaxy Buds Pro are Samsung's answer to the AirPods Pro
- Samsung reveals the Galaxy S21 series, $200 cheaper this time
- HTC is apparently still making phones, announces the Desire 21 Pro 5G
- LG confirms its shape-shifting "rollable" phone arrives this year
Tech >
MOST POPULAR
You won't need wing mirrors in the US any more — if you're a self-driving car
8 hours ago
Creative >
- This real-world multiplayer game lets you spend other people’s money — really
- Warzone is infinitely more fun without vehicles (even though it's just a bug)
- The Winamp Skin Museum is a beautiful homage to an iconic piece of software
- Why skin tone modifiers don't work for 🤝, explained by an emoji historian
- Why you need Design Thinking and Proofs of Concept to level up your business
Podium >
MOST POPULAR
2021 will be the year open source projects overcome their diversity problems
21 weeks ago
- Mixed reality is perfect for our innate multitasking habits
- 6 big data blunders businesses should avoid
- The AI landscape is shifting from 'data' to 'knowledge.' Here's why that matters
- Disruptive fintech is our best bet to economic recovery post COVID-19
- Tech in Latin America: An entrepreneur’s guide to June’s startup news
Insights >
- Here's how to simplify your app (and get more customers)
- Gas emitted by merging galaxies is stopping stars from forming
- Electric vehicles can now use bus lanes in the UK — and cyclists aren’t happy
- Week-by-week breakdown of my $15M virtual fundraising journey in 2020
- What this simple TikTok prank taught me about work
Launch >
- Amazon's electric delivery vans made by Rivian are here, and they're pretty cute
- This adorable little electric car is made of trash
- Hyundai's first fuel cell-powered trucks arrive in Switzerland — bye bye, diesel
- Lynk & Co.'s car sharing-owning scheme will never cost more than €500 a month
- Lucid unveils the Air, its luxury EV with up to 517-miles of range costing as much as $169K


UnwindInfo Class
Definition
Line
10
of
System.Runtime/Unwind.cm
Member Variables
public
void
*
function
public
int
line
public
UnwindInfo
*
next


Multi-Scalar Abandonment
Properties of owners with vacant properties
Red lines denote a connection to a property on the VPRC list
All
795
Finnell Properties
17
Top-5 Property Owners
Morton Properties
165
Omead Properties
52
Joe Johnson Properties
46
A & P Realty Properties
42
Low Key Properties
40


Contains object structures that emulate bytecode instructions.
open class ClassMemberInsn : CtInsn
A class representing a class member (field or method instruction). |
|
open class CtInsn
A class representing a bytecode instruction. |
|
class FieldInsn : ClassMemberInsn
A class representing a field instruction. |
|
class IncrementInsn : CtInsn
A class representing a increment instruction. |
|
class IntInsn : CtInsn
A class representing a numeric instruction. |
|
class InvokeDynamicInsn : CtInsn
A class representing a dynamic method instruction. |
|
class JumpInsn : CtInsn
A class representing a jump instruction. |
|
class LdcInsn : CtInsn
A class representing a constant instruction. |
|
class LookupSwitchInsn : CtInsn
A class representing a lookupswitch instruction. |
|
class MethodInsn : ClassMemberInsn
A class representing a method instruction. |
|
class MultiANewArrayInsn : TypeInsn
A class representing a multianewarray instruction. |
|
class TableSwitchInsn : CtInsn
A class representing a tableswitch instruction. |
|
open class TypeInsn : CtInsn
A class representing a typed instruction. |
|
class VarInsn : CtInsn
A class representing a local variable instruction. |
|
class WideInsn : CtInsn
A class representing a wide instruction. |


Preparation time
less than 30 mins
Cooking time
over 2 hours
Serves
Makes approx. 2.25kg/5lb
Dietary
This marmalade combines a spirit of your choice with grapefruits, lemons and oranges. For best flavour select a good quality spirit.
Juice the fruit and pour the juice into a large, lidded pan with a capacity of 6-8 litres/10-14 pints. Add the water.
Scrape out the inner membranes and pips from the fruit with a small sharp knife. Put the membranes into a food processor or mini-chopper and chop finely. Put the chopped membranes, and any pips, into a muslin bag or a piece of muslin tied with string. Add to the pan.
Shred the peel to your preferred thickness and add it to the pan. Set aside to allow the peel to soak for a few hours or, if possible, overnight.
Bring the lidded pan to boil, reduce the heat and simmer very gently for two hours. The peel should be very tender.
Meanwhile, preheat the oven to 140C/275F/Gas 1. Pour the sugar into a baking dish and warm in the oven for a few minutes.
Remove the muslin bag from the pan and squeeze the liquid from the bag into a bowl. Pass through a sieve and add to the pan.
Weigh the contents of the pan - it should be no more than 1.4kg/3lb 1oz. If you have more than this, return the contents to the pan and simmer to reduce the liquid until the correct weight is achieved.
Add the warmed sugar to the pan and stir until dissolved. Gradually bring the pan to a rolling boil. After seven minutes, test the setting point by scooping out a large spoonful of the marmalade. Allow the mixture to cool a little, then slowly pour it back into the pan. If it is at the setting point, the drops will run together to form a hanging flake (this is known as the flake test). It can take up to 30 minutes to reach setting point, so keep testing.
Leave the marmalade to cool for 5-10 minutes (a skin should form on the surface).  Gently stir the marmalade to evenly distribute the peel and the alcohol.
Pour the marmalade into sterilised jars and seal. Leave the jars upright and undisturbed to set.


Hot New Restaurant
There you go...
🍽
Booked Tables
Home
Table Reservation
Name
Phone Number
Email
Unique ID
Submit


--- layout: api title: "v1.6.0 API: Dark theme" categories: api version: v1.6.0 permalink: /api/v1.6.0/dark-theme ---
Mapbox.js implements a simple, light style on all interaction elements. A dark theme
is available by applying class="dark"
to the map div.
Example:


Operators and Expressions
Problem 4. Third digit
Write an expression that checks for given integer if its third digit (right-to-left) is 7.
Integer number:
Check
Clear


Flask, PostgreSQL, Python, SQLAlchemy.
Give people an easy way to create events and share them with their friends!
Docopt, OpenVPN, PyInstaller, Python, Vagrant.
Create a command-line tool to check on the health and speed of multiple VPN servers.
Angular, Bootstrap, Bower, CSS, Grunt, HTML, Javascript, Jasmine, Karma.
Give administrators an aesthetic overview of their deployment.
Improved customer experience by reducing app launch time 30%.
Saved engineer time, company money by creating automated tests.
Worked with a team of 15 in an Agile environment.
Protected users from malware by integrating AV with product.
Received training on securing web apps with the SANS institue.
This site template is available on GitHub for anyone to use. It is easily configurable via a config file. It can also be extended to fit your portfolio needs. Simply add more cards that showcase previous projects, education, etc.
Machine learning, PostgreSQL, Python, Scrapy, SQLAlchemy, WEKA.
Use machine learning to predict whether a penny stock will close up or down the next day.
Flask, Flask-SocketIO, Python.
Write code with friends in google-docs like fashion.
Django, Javascript, MariaDB, Python, SQL, Xojo.
Develop and maintain a browser solution that protects you and your network from threats on the internet.


Encodef
This is the main web site for encodef, a suite of programs that
tries to make it easier to process filenames in Unix*/Linux/POSIX systems.
You can get code, etc., from the
encodef project page.
Historically, Unix/Linux/POSIX allow almost any byte in a filename,
but this flexibility is the source of many problems.
I describe the problem in
Fixing Unix/Linux/POSIX Filenames:
Control Characters (such as Newline), Leading Dashes, and Other Problems.
I discuss ways of writing shell programs to work around this,
using existing tools, in
Filenames and Pathnames in Shell: How to do it correctly.
The “encodef” program takes filenames (which may include newlines,
tabs, ESC, leading dash, space, and other nastiness), and encodes
them into a format that’s easier to process.
The “decodef” program reverses the process.
The “xargsf” program is a stub prototype so that you can see how these
integrate into the standard xargs program.
The Encodef man page has more details.
At this point, it's "usable", and more than adequate for prototyping
and testing ideas about encoding filenames.
Feel free to
download the encodef source code
in tarball format (Free-libre/open source software, MIT license).
It includes a self-test suite, so you can get more confidence that it works.
Also,
it follows common compilation and
installation processes, which let you easily control how to
install it (e.g., by setting DESTDIR and --prefix).
Here are a few thoughts, based in part on my experimentation with them:
- If POSIX systems always forbid or escaped
bad filenames (like having control characters), many problems disappear.
- If bad filenames are possible,
then there must be a way to easily deal with them.
Forbidding the creation of bad filenames helps somewhat
(because then in certain cases they won't happen), but
then you still have to be able process bad filenames.
- The conventional way to do this is to use the null byte \0
to terminate/separate filenames.
This is widely supported by find and xargs, you can then
store these in files, and some programs can process them.
These are very efficient.
I believe that the POSIX standard should be modified so that the POSIX shell's
read command could also easily process null-terminated data
(I suggest using -0), and there's a good argument for grep as well.
- You could also escape the filenames, and that's
what encodef does.
In the long term, if encoding is to be supported,
I believe that at least xargs and printf(1)
should be modified to directly support decoding,
and find should be modified to directly support encoding.
The advantage of encoding is that then any text processing tool
can process (encoded) filenames.
But encoding/decoding has higher overhead, creates new issues
(which characters are encoded? Which encoding system?), and it's more
work for utilities to implement encoding compared to using
null byte separators.
- If bad filenames must exist, I think that it'd be best if POSIX added
support for both null byte termination and encoding.
Null byte termination could be used for simple common cases
(using find(1), shell read, grep, storing them in a file, using xargs).
For more complicated cases, encoding/decoding could be used so that
the full suite of POSIX tools could be used.
If the encoder/decoder could also process null byte termination, then it
could fill the gap when more complex tools are needed.
A tool like pax could be trivially modified to output files with
null byte terminators; the encoding tool could then transform that
to nicely encoded filenames with newline terminators.
- If you're going to encode, it's best to encode a large number of
characters. This reduces the risk of improperly handling metacharacters,
and also increases the likelihood that testing will detect when you've
forgotten to decode an encoded filename.
Some systems, like FreeBSD, have the tools
vis(1) and
unvis(1), but vis and unvis
are terrible tools for this problem:
-
vis(1) expects filenames on its command line, which it reads.
That means it doesn't work easily with find(1); you end up with very
complicated expressions that have to create multiple processes with
each filename.
It doesn't even slightly compete with the simpler
find . -exec encodef {} \+
- unvis(1)'s decoder doesn't consider the complications of decoding in
shell. The shell's command substitution removes all trailing newlines;
a filename decoder should optionally append some static character so that
the shell can get the data without corruption.
You might want to look at my
Secure Programming HOWTO
web page, or some of my other writings such as
Open Standards and Security,
Open Source Software and Software Assurance (Security),
and
High Assurance (for Security or Safety) and Free-Libre / Open Source Software (FLOSS).
You can also view
my home page.


“WordPress is web software you can use to create a beautiful website, blog, or app. We like to say that WordPress is both free and priceless at the same time.”
All data resides inside the Docker container. As such, you may want to use something like BackUpWordPress, VaultPress or the built-in export tool to make periodic backups of your WordPress installation.


Welcome to DigitalActuary
DigitalActuary is the home page for heavymodel
, a python based actuarial modelling library.
I have released heavymodel
as open source software, for installation instructions and source code please see the installation page.
I can also be contacted via:
- Twitter @lewisfogden
- LinkedIn linkedin.com/in/lewisfogden
As heavymodel
is currently in development, this documentation is incomplete in places, subject to change, and may have the occasional typo. Experimentation is encouraged, however please bear in mind the license conditions when using.
What is heavymodel?
heavymodel
is a class-based library which enables Actuaries (and other modelling professionals) to build actuarial models in Python, using a function-based syntax similar to other actuarial modelling software, combined with the simplicity of writing code in python.
It is intended for prototyping models, and also implementing them within wider software releases, for example web-based quote engines, capital models, and optimisation models.
The core library places very few constraints on modellers, so is applicable to domains such as:
- product pricing
- deterministic valuations
- stochastic modelling
- nested models
It requires no additional libraries so can be used with recent Python distributions on any platform (Windows, Linux, Cloud).
Simple Example
The following code is for a simple persistency model, with policies decreasing 10% each year.
import pandas as pd
import seaborn as sns
sns.set()
from heavymodel import Model
class PersistencyModel(Model):
def num_policies(self, t):
if t == 0:
return 1
else:
return self.num_policies(t-1) - self.num_lapses(t-1)
def num_lapses(self, t):
return 0.1 * self.num_policies(t)
model = PersistencyModel()
model._run(20)
df = pd.DataFrame({"num_lapses":model.num_lapses.values, "num_policies":model.num_policies.values})
sns.lineplot(data=df)
This produces the following graph.
For further details, please see the Getting Started section of the site.


Etherum Blockchain Input Form
Open Source Project by Spartan Blockchain Solutions
Set Value
Get Value


Sports Center Booking System
SPA RESTful CodeIgniter3 HighCharts BackboneJSBachelor of Software Engineering
Sports Center Booking System
SPA RESTful CodeIgniter3 HighCharts BackboneJSOther Achievements & Certs
Silver Medal
The Most Creative Award
( CPRE FL )
Software Trainee
Prototype E-Commerce Web System
Dot Net MVC Entity Framework E-Commerce
Leverage C#, .Net MVC & Entity Framework along project development
Coordinate between teams to success project
Develop prototype e-Commerce web system
Php Developer, Frontend Developer
Packist.com
Booking System SASS / SCSS Database Design Sourcetree Bitbucket
Revamp system for Packist.com (Online Travel Agency) in a team.
Elicit in-house requirement for system development.
Possess in-depth of CodeIgniter and MVC concept.
Involve in frontend development including SCSS.
Software Engineer
MLM Solutions Sites [Web] ( Eg: WL, CNIE, Hai-O, Sugawal, RBN )
IOS & Android App [React Native] ( Eg: Sunoar2U )
Yii ExtendJS React Native App App Deployment Redux Socket.io ( NodeJS ) Mobile APIs MLM
Develop and maintain web system leveraging Yii Framework and ExtendJs.
Expose to basic MLM software solutions and business concept.
Explore and understand in-depth of mobile development using React Native.
Develop API for React Native mobile app.
Leveraging APIs and npm packages for app features.
Senior PHP Developer
Veltra.com
CakePhp VueJS Stripe Webhooks Phalcon Laravel API Gateway Lambda (NodeJS) SQS
Integration Stripe Payment System with team members.
Maintain and implement features for veltra.com's booking system using CakePHP & VueJs.
Involve in some parts of API building using Laravel.
Involve in some parts of AWS services implementation. (eg: Lambda, SQS)
Collaborate among teams to complete projects.


Main Menu Edit
Undo (Ctrl + Z) undo your last change.
Redo (Ctrl + R) redo last Undo action.
Cut (Ctrl + X) cuts currently selected object to clipboard.
Copy (Ctrl + C) copy currently selected object to clipboard.
Paste (Ctrl + V) paste object from clipboard.
Preferences consists of tree sub menus, (General, Units, Grid). Each of them opens corresponding options window.


Name
HPL_plindx0 Compute local swapping index arrays.
Synopsis
#include "hpl.h"
void
HPL_plindx0(
HPL_T_panel *
PANEL
,
const int
K
,
int *
IPID
,
int *
LINDXA
,
int *
LINDXAU
,
int *
LLEN
);
Description
HPL_plindx0
computes two local arrays LINDXA and LINDXAU containing
the local source and final destination position resulting from the
application of row interchanges.
On entry, the array IPID of length K is such that the row of global
index IPID(i) should be mapped onto row of global index IPID(i+1).
Let IA be the global index of the first row to be swapped. For k in
[0..K/2), the row of global index IPID(2*k) should be mapped onto the
row of global index IPID(2*k+1). The question then, is to determine
which rows should ultimately be part of U.
First, some rows of the process ICURROW may be swapped locally. One
of this row belongs to U, the other one belongs to my local piece of
A. The other rows of the current block are swapped with remote rows
and are thus not part of U. These rows however should be sent along,
and grabbed by the other processes as we progress in the exchange
phase.
So, assume that I am ICURROW and consider a row of index IPID(2*i)
that I own. If I own IPID(2*i+1) as well and IPID(2*i+1) - IA is less
than N, this row is locally swapped and should be copied into U at
the position IPID(2*i+1) - IA. No row will be exchanged for this one.
If IPID(2*i+1)-IA is greater than N, then the row IPID(2*i) should be
locally copied into my local piece of A at the position corresponding
to the row of global index IPID(2*i+1).
If the process ICURROW does not own IPID(2*i+1), then row IPID(2*i)
is to be swapped away and strictly speaking does not belong to U, but
to A remotely. Since this process will however send this array U,
this row is copied into U, exactly where the row IPID(2*i+1) should
go. For this, we search IPID for k1, such that IPID(2*k1) is equal to
IPID(2*i+1); and row IPID(2*i) is to be copied in U at the position
IPID(2*k1+1)-IA.
It is thus important to put the rows that go into U, i.e., such that
IPID(2*i+1) - IA is less than N at the begining of the array IPID. By
doing so, U is formed, and the local copy is performed in just one
sweep.
Two lists LINDXA and LINDXAU are built. LINDXA contains the local
index of the rows I have that should be copied. LINDXAU contains the
local destination information: if LINDXAU(k) >= 0, row LINDXA(k) of A
is to be copied in U at position LINDXAU(k). Otherwise, row LINDXA(k)
of A should be locally copied into A(-LINDXAU(k),:). In the process
ICURROW, the initial packing algorithm proceeds as follows.
for all entries in IPID,
if IPID(2*i) is in ICURROW,
if IPID(2*i+1) is in ICURROW,
if( IPID(2*i+1) - IA < N )
save corresponding local position
of this row (LINDXA);
save local position (LINDXAU) in U
where this row goes;
[copy row IPID(2*i) in U at position
IPID(2*i+1)-IA; ];
else
save corresponding local position of
this row (LINDXA);
save local position (-LINDXAU) in A
where this row goes;
[copy row IPID(2*i) in my piece of A
at IPID(2*i+1);]
end if
else
find k1 such that IPID(2*k1) = IPID(2*i+1);
copy row IPID(2*i) in U at position
IPID(2*k1+1)-IA;
save corresponding local position of this
row (LINDXA);
save local position (LINDXAU) in U where
this row goes;
end if
end if
end for
Second, if I am not the current row process ICURROW, all source rows
in IPID that I own are part of U. Indeed, they are swapped with one
row of the current block of rows, and the main factorization
algorithm proceeds one row after each other. The processes different
from ICURROW, should exchange and accumulate those rows until they
receive some data previously owned by the process ICURROW.
In processes different from ICURROW, the initial packing algorithm
proceeds as follows. Consider a row of global index IPID(2*i) that I
own. When I will be receiving data previously owned by ICURROW, i.e.,
U, row IPID(2*i) should replace the row in U at pos. IPID(2*i+1)-IA,
and this particular row of U should be first copied into my piece of
A, at A(il,:), where il is the local row index corresponding to
IPID(2*i). Now,initially, this row will be packed into workspace, say
as the kth row of that work array. The following algorithm sets
LINDXAU[k] to IPID(2*i+1)-IA, that is the position in U where the row
should be copied. LINDXA(k) stores the local index in A where this
row of U should be copied, i.e il.
for all entries in IPID,
if IPID(2*i) is not in ICURROW,
copy row IPID(2*i) in work array;
save corresponding local position
of this row (LINDXA);
save position (LINDXAU) in U where
this row should be copied;
end if
end for
Since we are at it, we also globally figure out how many rows every
process has. That is necessary, because it would rather be cumbersome
to figure it on the fly during the bi-directional exchange phase.
This information is kept in the array LLEN of size NPROW. Also note
that the arrays LINDXA and LINDXAU are of max length equal to 2*N.
Arguments
PANEL (local input/output) HPL_T_panel *
On entry, PANEL points to the data structure containing the
panel information.
K (global input) const int
On entry, K specifies the number of entries in IPID. K is at
least 2*N, and at most 4*N.
IPID (global input) int *
On entry, IPID is an array of length K. The first K entries
of that array contain the src and final destination resulting
from the application of the interchanges.
LINDXA (local output) int *
On entry, LINDXA is an array of dimension 2*N. On exit, this
array contains the local indexes of the rows of A I have that
should be copied into U.
LINDXAU (local output) int *
On exit, LINDXAU is an array of dimension 2*N. On exit, this
array contains the local destination information encoded as
follows. If LINDXAU(k) >= 0, row LINDXA(k) of A is to be
copied in U at position LINDXAU(k). Otherwise, row LINDXA(k)
of A should be locally copied into A(-LINDXAU(k),:).
LLEN (global output) int *
On entry, LLEN is an array of length NPROW. On exit, it
contains how many rows every process has.
See Also
HPL_pdlaswp00N,
HPL_pdlaswp00T,
HPL_pdlaswp01N,
HPL_pdlaswp01T.


Tuesdays, 6pm
Room UC-222
Devon Elliott
<EMAIL_ADDRESS>Office Hours: Tuesdays, 4:00 - 5:00pm, Lawson Hall Room 1208 or by appointment
Readings:
Technologies:
Each week, we'll be using new technologies to do historical work. We will also see online compilations of various tools used in the digital humanities. There are more tools than we'll have time to visit in this course, and new ones are continually in development and released. Part of working in this field is getting comfortable with that changing landscape, and to be willing to learn new tools that will hopefully help you do the job you'd like to do. Each week, some of you will present your work with a tool of your choice. Show us what it is, how it works, what you were able to do with it, and share your opinions on it.
Getting Started in the Digital Humanities
-- Lisa Spiro
Going Digital
-- William J. Turkel
Download and install.
The short assignments are 2-page reflective reports on technologies that are introduced in class. In each case you will try a tool and write about the things that you liked or did not, about ways that the technology might be used to assist the historian in his or her work, and things that historians should be cautious or critically aware of when using the tool.
Have a great week!
Contact me at<EMAIL_ADDRESS>or stop by Lawson Hall Room 1208 on Tuesdays, 4:00-5:00. I'm also available before and after class on Tuesdays, or by appointment.


{% extends '_base.html' %} {% block outer_content %}
Hosted by Robert Siegel and Melissa Block
Use your Apple TV, Chromecast, or Roku device.
Virginia
Please rotate your phone


Etext Preparation (input) : Dr. N. Swaminathan, California
Etext Preparation (proof-reading) : Dr. Jayabharathi, Penang, Malaysia
Etext Preparation (webpage) : Kumar Mallikarjunan
This Etext file has the verses in tamil script in TSCII-encoding.
So you need to have a TSCII-conformant tamil font to view the Tamil part properly. Several TSCII conformant
fonts are available free for use on Macintosh , Unix and Windows (95/98/NT/3.11) platforms at the
following websites:


--- title: "Mafia/Werewolf" excerpt: > Mafia (also known as "Werewolf") is a game about logic and behavioral analysis. Play it. It's fun. ---
Mafia (also known as "Werewolf") is a game about logic and behavioral analysis.
Play it. It's fun.
{% assign mafiaInfo = site.mafia | where: 'type', 'info' %} {% include page_list.html pages=mafiaInfo showDates=false showExcerpts=false showHorizontalRule=false %}


From slahsdot:
CNN is reporting on a (relatively) new website called the Minisode Network that allows users to watch popular television shows that have been strategically condensed down to somewhere between four and six minutes.
"Don't think of the Minisode Network as a brand-new Web site. Think of it as a long-overdue public service. That is, who among us hasn't felt the double-edged sword of our media age: So much video from TV, DVDs, the Internet and even cell phones ... but too little time to watch it all? The Minisode Network has a solution. Launched in June as a broadband channel on the MySpace site, it offers, for our streaming pleasure, episodes of vintage Sony Pictures Television series like 'Silver Spoons,' 'Starsky & Hutch,' 'Diff'rent Strokes' and even Ricki Lake's talk show."
Now this is innovation! :-)


Just in case you're still salivating for more outside events, this one will catch 'em all.
The element firing the event is highlighted in red.
The large #test element, as well as elements #a through #e are declared as v-event-outside.jquery and, as such, will respond to native and jquery events.
Elements #f through #i are declared only as v-event-outside and will only respond to native events. These elements have thicker borders so they stand out.
(Hint: The show gets really exciting after about 30,000 iterations.)
var event = document.createEvent('Event'); event.initEvent('customEvent', true, true); randomElement.dispatchEvent(event);
$(randomElement).trigger("customEvent");
<script> export default { methods: { onCustomOutside(e, el) { console.log("onCustomOutside"); console.log("Event:", e); console.log("Element that the custom event fired out of:", e.target); console.log("Element that finds custom events very exotic:", el); } } } </script>


What is Developer Fact Card?
Developer's fact card is an open-source project for gathering facts about life, adventure, software engineering.
Collaction is done by developers and for developers. Remember it is Open-source! Do you have a fact to tell the world? You are just one pull request away.
See some amazing fact below!


--- layout: page title: About header-img: "img/about-bg.png" ---
Aspiring data scientist learning how to code one step at a time.


Banned driver caught in uninsured car in Telford
by Rob SmithA banned driver who was caught in an uninsured car in Telford was stopped and arrested.
Police stopped the Ford Fiesta in Southall Road, Dawley, this afternoon and after checking the driver's license discovered that he was disqualified from driving.
He was subsequently arrested and the car was seized.


Hello world - This was my first project ever as a coder whereby I created a webpage with just a title, a header
and a paragraph. I only used HTML in this project
My first website - In this project, I learnt to use images and creating links and even went further by styling the webpage a bit
by adding color elements on the headers. I used HTML and CSS in this project
Cookie Recipe - In this project, I was formatting an already made webpage by correcting indentation and spacing
errors. I only used HTML in this project.
Delani Studio Site - In this project, I learnt how to fork a project from someone's repository and clone it to a local repo
in order to make changes or add to it. I only used HTML in this project.
I am a 21 year old software development student at Moringa school with an aim of becoming
a full-stack web developer in the near future. I have recently acquired a Digital Marketing certificate
from The Africa Digital Media Institute and I am an ongoing student in Political Science and Public Administration
at The University of Nairobi. I had previously worked as an SEO expert and media buyer at Digital 4 Africa ; a
digital marketing agency in Nairobi and I co-own an EDM event organising company called Element Kenya.
I am a solution driven person and I strongly feel that a programming course would equip me with the necessary skills
to achieve my goals. I love solving common problems, planning and attending social events and I am really interested
in fashion and football, perhaps I might even consider them as industries I would love to contribute to as a programmer.


--- layout: page title: Beyond the Loop subtitle: Learning to think like engineers. use-site-title: true ---
Welcome to Beyond the Loop!
Here, we focus on helping people who know how to code become professional developers. Becoming a professional, self-sufficent engineer is not an easy process, but it becomes easier with a little bit of direction. If you are a novice engineer, that wants to graduate out of the "junior" title, I think this blog can help you.
This direction may come in very different ways. Check out the different Recurring Series to find something useful, whether you have 5 or 50 minutes.
If you don't know where to start, start with these posts:
Or check out some recent posts, fresh from the oven:


@inproceedings{huang2017towards,
title={Towards Production-Run Heisenbugs Reproduction on Commercial Hardware},
author={Huang, Shiyou and Cai, Bowen and Huang, Jeff},
booktitle={2017 USENIX Annual Technical Conference (USENIX ATC 17)},
pages={403--415},
year={2017},
organization={USENIX Association}
}


---
layout: post
title: skater in lion costume dancing in copenhagen pride
date: '2015-08-20T03:12:05+02:00'
tags:
- Instagram
- PhotoOfTheDay
tumblr_url: http://deepredsky.tumblr.com/post/127104015424/skater-in-lion-costume-dancing-in-copenhagen-pride
---
skater in lion costume dancing in Copenhagen pride walk 2015 #copenhagenpride #travel #photooftheday #denmark


{{profile.followers}} Followers {{profile.following}} Following {{profile.public_gists}} Gists {{profile.public_repos}} Repositories


THE DESTINY OF MARTY FINE A film review by James Berardinelli Copyright 1996 James Berardinelli
RATING (0 TO 10): 4.0 Alternative Scale: ** out of ****
United States, 1996 Shown at the 1996 SXSW Film Festival Running Length: 1:25 MPAA Classification: No MPAA Rating (Mature themes, profanity) Theatrical Aspect Ratio: 1.85:1
Cast: Alan Gelfant, James LeGros, Catherine Keener, Michael Ironside, Glenn Plummer, John Diehl, Norman Fell Director: Michael Hacker Producer: Jeffrey Miller Screenplay: Michael Hacker and Mark Ruffalo Cinematography: Melinda Sue Gordon Music: Dave Stringer and Greg Ellis
THE DESTINY OF MARTY FINE is a shoestring-budget independent feature with a fascinating premise that is totally wasted. Talky, boring, and ultimately pointless, this film is distinguished only by several effective performances and a few nicely-written scenes. In general, however, MARTY FINE is a disappointment. It's one thing to be quirky; it's another to be incoherent.
Marty (Alan Gelfant) is an ex-boxer with a dream of opening a boxing training camp in Utah. That's all it is, however -- a dream. Marty doesn't even have pocket change, not to mention the dose of cash needed for such an ambitious project. So he approaches a big-time boxing promoter (Michael Ironside) with his idea. Much to Marty's surprise, the promoter expresses some interest. Unfortunately, before a deal can be struck, a car speeds by, a few shots are fired, and Marty is left standing over a dead body. From that point on, his luck goes from bad to worse. His girlfriend (Catherine Keener) kicks him out, he's locked out of his gym locker, a friend (Glenn Plummer) needs back $200 Marty borrowed from him, and someone else wants him to perform a hit as a demonstration of friendship.
Ultimately, MARTY FINE isn't concerned about telling a story. The narrative gets lost in a seemingly-endless sequence of uninteresting conversations. There's nothing inherently wrong with ninety minutes of dialogue, as long as what's being said is worth hearing. That's not the case here. The only ones who appreciate what these people have to say are the characters themselves. Except for the exchanges between Marty and his girlfriend, it's difficult to find high points.
The cinematography, done in 16 mm black-and-white, is suitably atmospheric, but the noir-ish quality of the production is undermined by its confusing and unfocused storyline. It's never clear where MARTY FINE is going, or whether it ever gets there.  The actors all do good jobs (even Norman Fell!), but their skills are wasted on such sub-par material. I have little doubt that MARTY FINE is destined for obscurity.
- James Berardinelli e-mail<EMAIL_ADDRESS>web: http://www.cybernex.net/~berardin (or) http://www2.cybernex.net/~berardin
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Ice sheet height, or elevation, is a combined measure of the land below and ice above. Elevation is important when considering ice susceptibility to climate change. Higher elevations, like those in East Antarctica, often show little to no warming while many lower elevations, like areas of Thwaites Glacier in West Antarctica, show noticeable warming. Elevation is also used to measure changes in ice surface through time. The ice surface in Thwaites Glacier and neighboring Pine Island Glacier has been dropping in elevation as they lose ice. The total amount of ice, where it has accumulated, how it changed in past climate events, and how it is changing today are all measurements used to develop models for future predictions of the ice sheet.
A permanent layer of land ice at least 50,000 sq. km. (20,000 sq. miles)
Why is Antarctica covered in thick ice? The Earth's tilted rotation, and Antarctica's position away from the equator, mean that for much of the year Antarctica receives significantly less heat and energy from the sun than areas in the mid-latitudes nearer the equator. Approximately 35-40 million years ago Drake's Passage opened separating Antarctica from South America and causing a change in ocean and atmospheric circulation around Antarctica. This separation has kept the continent mainly isolated from the rest of the world. The physical changes, the establishment of the strong circular currents in the Southern Ocean and the strong air patterns in the Polar Front, resulted in somewhat of a temperature isolation of Antarctica. Snow collects and presses into permanent ice, and through time has formed the very thick and old ice sheet now covering Antarctica. Overall, the land mass is 97% covered with 27 million km3 of ice.
Is all of Antarctica the same? Antarctica is made up of two very different land masses. East Antarctica, is a much older, denser and larger section of land and ice, and makes up ~66% of the continent. The average elevation of East Antarctica is 2 kms (1.2 miles), although some areas reach up to 4 kms (2.5 miles). Although some sections of East Antarctica are below sea level, much of it sits up high with large amounts of ice stacked on the land. If all the ice on East Antarctica moved into the ocean, sea level would rise close to 55 meters (180 ft). However, currently this high frozen desert of Antarctica is undergoing limited ice loss. West Antarctica is an ice covered series of islands, or archipelago, with elevations measuring up to 2500 meters (1.5 miles) thick at its highest, but mostly measuring less than 2000 meters of elevation. This part of the continent is much lower in elevation and is undergoing measurable ice loss with resulting elevation losses. This is especially true in the region of the Amundsen Sea which includes glaciers like Thwaites and Pine Island. To better understand this region, you can go to the section of the app titled 'Why is Thwaites Vulnerable' and select the map 'Look under the Antarctic ice sheet'. This map shows Antarctica without the ice cover, emphasizing how much of West Antarctica is below sea level, with much of the ice in this area already resting in the ocean. If the entire West Antarctic ice sheet were to melt the contribution to sea level would be close to 6 meters (20 ft.). Thwaites glacier is critical in West Antarctic sea level rise contributions with direct contributions of 65 cm (2 ft.) of sea level rise. However, its collapse could release ice stacked behind it, which overall would cause 3 meters (10 ft.) of sea level rise.
A group of islands
How was the data collected? Ice elevation is a combined measure from which Ice thickness is calculated by using radar to find the base of the ice on the underlying topography, and then measuring the height of the ice in the ice sheet above that point. Knowing the ice elevation is a 'boundary condition', or a required element, for developing models of how we expect the ice sheet to behave with changes in climate. The total amount of ice in the ice sheet, and where it has accumulated over time, are both important in understanding potential future changes and sea level impacts of the ice sheet.
Measurements of ice thickness in the app are collected from the Radarsat Antarctic Mapping Project (RAMP) and include high-resolution radarsat data and topographic data from a number of sources to get full coverage of the area. Data for this map has been collected from the 1940s to present, most of it from 1980 forward. Radar measures total ice thickness from the surface to the base of the ice, as well as information on the different internal layers of ice thickness. Radar operates by sending pulses of radio waves and measuring and timing the delay between sending and receiving a pulse through the ice. The size and remoteness of Antarctica makes data collection challenging. Satellite data combined with airborne data continues to improve our understanding of ice thickness in Antarctica.
What can we learn from the app? Ice sheet height or elevation, and overall ice thickness, are both important measurements in understanding present changes in the ice sheet and in predicting future change. The map in the app divides the ice into contours of ice thickness. Zoom out to get a better look at the full continent. Clicking on each contour brings up the thickness of the ice in meters. Although Antarctica is one continent, it is separated into West and East Antarctica by the Transantarctic Mountains. In the app, you can see the separation in the narrowing between the peninsula shape of West Antarctica, and the larger more oval shaped land mass of East Antarctica. Click through the map. How does East Antarctic elevation differ from West Antarctic elevation? Why do you think West Antarctica is more vulnerable to climate change? What is the highest elevation in the Thwaites Glacier catchment area? Why do you think Thwaites glacier is important for us to be studying?


--- layout: post title: "Yes silver bullet" description: "Since Fred Brooks published his essay, I believe that we, contrary to his prediction, have witnessed several silver bullets." date: 2019-07-01 07:38 UTC tags: [Productivity] image: "/content/binary/essential-accidental-complexity-shells-brooks-scenario.png" image_alt: "Some, but not much, accidental complexity as a shell around essential complexity." --- {% include JB/setup %}
{{ page.description }}
I've been rereading Fred Brooks's 1986 essay No Silver Bullet because I've become increasingly concerned that people seem to draw the wrong conclusions from it. Semantic diffusion seems to have set in. These days, when people state something along the lines that there's no silver bullet in software development, I often get the impression that they mean that there's no panacea.
Indeed; I agree. There's no miracle cure that will magically make all problems in software development go away. That's not what the essay states, however. It is, fortunately, more subtle than that.
It's a great essay. It's not my intent to dispute the central argument of the essay, but I think that Brooks made one particular assumption that I disagree with. That doesn't make me smarter in any way. He wrote the essay in 1986. I'm writing this in 2019, with the benefit of the experience of all the years in-between. Hindsight is 20-20, so anyone could make the observations that I do here.
Before we get to that, though, a brief summary of the essence of the essay is in order. In short, the conclusion is this:
The beginning of the essay is a brilliant analysis of the reasons why software development is inherently difficult. If you read this together with Jack Reeves What Is Software Design? (available various places on the internet, or as an appendix in APPP), you'll probably agree that there's an inherent complexity to software development that no invention is likely to dispel."There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity."
Ostensibly in the tradition of Aristotle, Brooks distinguishes between essential and accidental complexity. This distinction is central to his argument, so it's worth discussing for a minute.
Software development problems are complex, i.e. made up of many interacting sub-problems. Some of that complexity is accidental. This doesn't imply randomness or sloppiness, but only that the complexity isn't inherent to the problem; that it's only the result of our (human) failure to achieve perfection.
If you imagine that you could whittle away all the accidental complexity, you'd ultimately reach a point where, in the words of Saint Exupéry, there is nothing more to remove. What's left is the essential complexity.
Brooks' conjecture is that a typical software development project comes with both essential and accidental complexity. In his 1995 reflections "No Silver Bullet" Refired (available in The Mythical Man-Month), he clarifies what he already implied in 1986:
This I fundamentally disagree with, but more on that later. It makes sense to me to graphically represent the argument like this:"It is my opinion, and that is all, that the accidental or representational part of the work is now down to about half or less of the total."
The way that I think of Brooks' argument is that any software project contains some essential and some accidental complexity. For a given project, the size of the essential complexity is fixed.
Brooks believes that less than half of the overall complexity is accidental:
While a pie chart better illustrates the supposed ratio between the two types of complexity, I prefer to view Brooks' arguments as the first diagram, above. In that visualisation, the essential complexity is a core of fixed size, while accidental complexity is something you can work at removing. If you keep improving your process and technology, you may, conceptually, be able to remove (almost) all of it.
Brooks' point, with which I agree, is that if the essential complexity is inherent, then you can't reduce the size of it. The only way to decrease the overall complexity is to reduce the accidental complexity.
If you agree with the assessment that less than half of the overall complexity in modern software development is accidental, then it follows that no dramatic improvements are available. Even if you remove all accidental complexity, you've only reduced overall complexity by, say, forty percent.
I find Brooks' arguments compelling. I do not, however, accept the premise that there's only little accidental complexity left. Instead of the above diagrams, I believe that the situation looks more like this (not to scale):
I think that most of the complexity in software development is accidental. I'm not sure about today, but I believe that I have compelling evidence that this was the case in 1986, so I don't see why it shouldn't still be the case.
To be clear, this is all anecdotal, since I don't believe that software development is quantifiable. In the essay, Brooks explicitly talks about the invisibility of software. Software is pure thought stuff; you can't measure it. I discuss this in my Humane Code video, but I also recommend that you read The Leprechauns of Software Engineering if you have any illusions that we, as an industry, have any reliable measurements of productivity.
Brooks predicts that, within the decade (from 1986 to 1996), there would be no single development that would increase productivity with an order of magnitude, i.e. by a factor of at least ten. Ironically, when he wrote "No Silver Bullet" Refired in 1995, at least two such developments were already in motion.
We can't blame Brooks for not identifying those developments, because in 1995, their impact was not yet apparent. Again, hindsight is 20-20.
Neither of these two developments are purely technological, although technology plays a role. Notice, though, that Brooks' prediction included technology or management technique. It's in the interaction between technology and the humane that the orders-of-magnitude developments emerged.
 In the beginning of my programming career, I became quite the expert on a programming framework called Microsoft Commerce Server. In fact, I co-authored a chapter of Professional Commerce Server 2000 Programming, and in 2003 I received an MVP award as an acknowledgement of my work in the Commerce Server community (such as it were; it was mostly on Usenet).
The Commerce Server framework was a black box. This was long before Microsoft embraced open source, and while there was a bit of official documentation, it was superficial; it was mostly of the getting-started kind.
Over several years, I managed to figure out how the framework really worked, and thus, how one could extend it. This was a painstaking process. Since it was a black box, I couldn't just go and read the code to figure out how it worked. The framework was written in C++ and Visual Basic, so there wasn't even IL code to decompile.
I had one window into the framework. It relied on SQL Server, and I could attach the profiler tool to spy on its interaction with the database. Painstakingly, over several years, I managed to wrest the framework's secrets from it.
I wasted much time doing detective work like that.
In general, programming in the late nineties and early two-thousands was less productive, not because the languages or tools were orders-of-magnitude worse than today, but because when you hit a snag, you were in trouble.
These days, if you run into a problem beyond your abilities, you can ask for help on the World Wide Web. Usually, you'll find an existing answer on Stack Overflow, and you'll be able to proceed without too much delay.
Compared to twenty years ago, I believe that the World Wide Web has increased my productivity more than ten-fold. While it also existed in 1995, there wasn't much content. It's not the technology itself that provides the productivity increase, but rather the synergy of technology and human knowledge.
I think that Brooks vastly underestimated how much time one can waste when one is stuck. That's a sort of accidental complexity, although in the development process rather than in the technology itself.
In the late nineties, I was developing web sites (with Commerce Server). When I wanted to run my code to see if it worked, I'd launch the web site on my laptop, log in, click around and enter data until I was convinced that the functionality was working as it should. Most of the time, however, it wasn't, so I'd change a bit of the code, and go through the same process again.
I think that's a common way to 'test' software; at least, it was back then.
While you could get good at going through these motions quickly, verifying a single, or a handful of related functionalities, could easily take at least a couple of seconds, and usually more like half a minute.
If you had dozens, or even hundreds, of different scenarios to address, you obviously wouldn't run through them all every time you changed the code. At the very best, you'd click your way through three of four usage scenarios that you thought were relevant to the change you'd made. Other functionality, earlier declared done, you just considered to be unaffected.
Needless to say, regressions were regular occurrences.
In 2003 I discovered test-driven development, and through that, automated testing. While you can't directly compare unit tests with whole usage scenarios, I think it's fair to compare something like automated integration tests or user-scenario tests (whatever you want to call them) with manually clicking through an application.
Even an integration test, if written properly, can verify a scenario at least ten times faster than you can do it by hand. A more realistic estimate is probably hundred times faster, or more.
Granted, you have to write the automated test as well, and I know that it's not always trivial. Still, once you have an automated test suite in place, you can run it all the time.
I never ran through all usage scenarios when I manually 'tested' my software. With automated tests, I do. This saves me from most regressions.
This improvement is, in my opinion, a no-brainer. It's easily a factor ten improvement. All the time wasted manually 'testing' the software, plus the time wasted fixing regressions, can be put to better use.
At the time Brooks was writing his own retrospective (in 1995), Kent Beck was beginning to talk to other people about test-driven development. As is a common theme in this article, hindsight is 20-20.
There's been other improvements in software development since 1986. I considered including several other improvements as bona fide orders-of-magnitude improvements, but I think that's probably going too far. Each of the following developments have, however, offered significant improvements:
Personally, I'm inclined to believe another order-of-magnitude improvement is right at our feet.
This section is conjecture on my part. The improvements I've so far covered are already realised (at least for those who choose to take advantage of them). The improvement I'll cover here is more speculative.
I believe that statically typed functional programming offers another order-of-magnitude improvement over existing software development. Twenty years ago, I believed that object-oriented programming was a good idea. I now believe that I was wrong about that, so it's possible that in another twenty years, I'll also believe that I was wrong about functional programming. Take the following for what it is.
When I carefully reread No Silver Bullet, I got the distinct impression that Brooks considered low-level details of programming part of its essential complexity:
It's unreasonable to blame anyone writing in 1986, or 1995 for that matter, to think that"Much of the complexity in a software construct is, however, not due to conformity to the external world but rather to the implementation itself - its data structures, its algorithms, its connectivity."
for
loops, variables, program state, and such other programming stables were anything but essential parts of the complexity of developing software.
Someone, unfortunately I forget who, once made the point that all mainstream programming languages are layers of abstractions of how a CPU works. Assembly language is basically just mnemonics on top of a CPU instruction set, then C can be thought of as an abstraction over assembly language, C++ as the next step in abstraction, Java and C# as sort of abstractions of C++, and so on. The origin of the design is the physical CPU. You could say that these languages are designed in a bottom-up fashion.
Some functional languages (perhaps most famously Haskell, but also APL, and, possibly, Lisp) are designed in a much more top-down fashion. You start with mathematical abstractions like category theory and then figure out how to crystallise the theory into a programming language, and then again, via more layers of abstractions, how to turn the abstract language into machine code.
The more you learn about the pure functional alternative to programming, the more you begin to see mutable program state, variables, for
loops, and similar language constructs merely as artefacts of the underlying model. Brooks, I think, thought of these as part of the essential complexity of programming. I don't think that that's the case. You can get by just fine with other abstractions instead.
Besides, Brooks writes, under the heading of Complexity:
When he writes functions, I don't think that he means functions in the Haskell sense. I think that he means operations, procedures, or methods."From the complexity comes the difficulty of enumerating, much less understanding, all the possible states of the program, and from that comes the unreliability. From the complexity of the functions comes the difficulty of invoking those functions, which makes programs hard to use."
Indeed, when you look at a C# method signature like the following, it's hard to enumerate, understand, or remember, all that it does:
int? TryAccept(Reservation reservation);
If this is a high-level function, many things could happen when you call that method. It could change the state of a database. It could send an email. It could mutate a variable. Not only that, but the behaviour could depend on non-deterministic factors, such as the date, time of day, or just raw randomness. Finally, how should you handle the return value? What does it mean if the return value is null? What if it's not? Is 0
a valid value? Are negative numbers valid? Are they different from positive values?
It is, indeed, difficult to enumerate all the possible states of such a function.
Consider, instead, a Haskell function with a type like this:
tryAccept :: Int -> Reservation -> MaybeT ReservationsProgram Int
What happens if you invoke this function? It returns a value. Does it send any emails? Does it mutate any state? No, it can't, because the static type informs us that this is a pure function. If any programmer, anywhere inside of the function, or the functions it calls, or functions they call, etc. tried to do something impure, it wouldn't have compiled.
Can we enumerate the states of the program? Certainly. We just have to figure out what ReservationsProgram
is. After following a few types, we find this statically typed enumeration:
data ReservationsInstruction next = IsReservationInFuture Reservation (Bool -> next) | ReadReservations UTCTime ([Reservation] -> next) | Create Reservation (Int -> next) deriving Functor
Essentially, there's three 'actions' that this type enables. The tryAccept
function returns the ReservationsProgram
inside of a MaybeT
container, so there's a fourth option that something short-circuits along the way.
You don't even have to keep track of this yourself. The compiler keeps you honest. Whenever you invoke the tryAccept
function, the compiler will insist that you write code that can handle all possible outcomes. If you turn on the right compiler flags, the code is not going to compile if you don't.
(Both code examples are taken from the same repository.)
Haskellers jokingly declare that if Haskell code compiles, it works. While humorous, there's a kernel of truth in that. An advanced type system can carry much information about the behaviour of a program. Some people, particularly programmers who come from a dynamically typed background, find Haskell's type system rigid. That's not an unreasonable criticism, but often, in dynamically typed languages, you have to write many automated tests to ensure that your program behaves as desired, and that it correctly handles various edge cases. A type system like Haskell's, on the other hand, embeds those rules in types instead of in tests.
While you should still write automated tests for Haskell programs, fewer are needed. How many fewer? Compared to C-based languages, a factor ten isn't an unreasonable guess.
After a few false starts, in 2014 I finally decided that F# would be my default choice of language on .NET. The reason for that decision was that I felt so much more productive in F# compared to C#. While F#'s type system doesn't embed information about pure versus impure functions, it does support sum types, which is what enables the sort of compile-time enumeration that Brooks discusses.
F# is still my .NET language of choice, but I find that I mostly 'think in' Haskell these days. My conjecture is that a sufficiently advanced type system (like Haskell's) could easily represent another order-of-magnitude improvement over mainstream imperative languages.
The essay No Silver Bullet is a perspicacious work. I think more people should read at least the first part, where Brooks explains why software development is hard. I find that analysis brilliant, and I agree: software development presupposes essential complexity. It's inherently hard.
There's no reason to make it harder than it has to be, though.
More than once, I've discussed productivity improvements with people, only to be met with the dismissal that 'there's no silver bullet'.
Granted, there's no magical solution that will solve all problems with software development, but that doesn't mean that improvements can't be had.
Consider the improvements I've argued for here. Everyone now uses the World Wide Web and sites like Stack Overflow for research; that particular improvement is firmly embedded in all organisations. On the other hand, I still regularly talk to organisations that don't routinely use automated testing.
People still use centralised version control (like TFS or SVN). If there was ever a low-hanging fruit, changing to Git is one. Git is free, and there's plenty of tools you can use to migrate your version history to it. There's also plenty of training and help to be had. Yes, it'll require a small investment to make the change, but the productivity increase is significant.
So it is with technology improvements. Automated testing is available, but not ubiquitous. Git is free, but still organisations stick to suboptimal version control. Haskell and F# are mature languages, yet programmers still program in C# or Java."The future is already here — it's just not very evenly distributed."
The essay No Silver Bullet was written in 1986, but seems to me to be increasingly misunderstood. When people today talk about it at all, it's mostly as an excuse to stay where they are. "There's no silver bullets," they'll say.
The essay, however, doesn't argue that no improvements can be had. It only argues that no more order-of-magnitude improvements can be had.
In the present essay I argue that, since Brooks wrote No Silver Bullet, more than one such improvement happened. Once the World Wide Web truly began furnishing information at your fingertips, you could be more productive because you wouldn't be stuck for days or weeks. Automated testing reduces the work that manual testers used to perform, as well as limiting regressions.
If you accept my argument, that order-of-magnitude improvements appeared after 1986, this implies that Brooks' premise was wrong. In that case, there's no reason to believe that we've seen the last significant improvement to software development.
I think that more such improvements await us. I suggest that statically typed functional programming offers such an advance, but if history teaches us anything, it seems that breakthroughs tend to be unpredictable.
Comments
As always I enjoy reading your blog, even though I don't understand half of it most of the time. Or is that most of it half of the time? Allow me to put a few observations forward.
First I should confess, that I have actually not read the whole of Brook's essay. When I initially tried I got about half way through; it sounds like I should make another go at it. That of course will not stop me from commenting on the above.
Brook talks about complexity. To me designing and implementing a software system is not complex. Quantum physics is complex. Flying an airplane is difficult. Software development may be difficult depending on the task at hand (and unfortunately the qualifications of the team), but I would argue that it at most falls into the same category as flying an airplane.
I would properly also state, that there are no silver bullets. But like you I feel that people understand it incorrectly and there is definetely no reason for making things harder than they are. I think the examples of technology that helps are excellent and exactly describe that things do move forward.
That being said, it does not take away the creativity of the right decomposition, the responsibility for getting the use cases right, and especially the liability for getting it wrong. Sadly especially the last of overlooked. People should be reminded of where the phrase 'live under the bridge' comes from.
To end my ramblins, I would also look a little into the future. As you know I am somewhat sceptial about machine learning and AI. However, looking at the recent break throughs and use cases in these areas, I would not be surprised of a future where software development is done by 'an AI' assemblying pre-defined 'entities' to create the software we need. Like an F16 cannot be flown without a computer, future software cannot be created by a human.
Karsten, thank you for writing. I'm not inclined to agree that software development falls into the same category of complexity as flying a plane. It seems to me to be orders of magnitudes more complex.
Just look at error rates.
Would you ever board an air plane if flying had error rates similar to those observed in software development? Would you fly even if only one percent of all flights ended with plane crash?
In reality, flying is extremely safe. Would you claim that software development is as safe, predictable, and manageable as flying?
I see no evidence of that.
Are pilots significantly more capable human beings than software developers, or does something else explain the discrepancy in failure rates?
Hi Mark. The fact that error rates are higher in software development is more a statement to the bad state our industry is in and has been for a milinium or more.
Why do we except that we produce crappy systems or in your words software that is not safe, predictable, and manageble? The list of excuses is very long and the list of results is very short. We as an industry are simply doing it wrong, but most people prefers hand waving and marketing than simple and plausible heuristic.
To use your analogy about planes I could ask if you would fly with a place that had (only) been unit tested? Properly not as it is never the unit that fails, but always the integration. Should be test all integrations then? Yes, why not?
The used of planes or pilots (or whatever) may have been bad. My point was, that I do not see software development as complex.
Karsten, if we, as an industry, are doing it wrong, then why are we doing that?
And what should we be doing instead?


Let's start with a simple bingle search. Head over to duckduckgo.com and type in "Azure REST API" and hit quack...
The top hit is already leading you astray! It takes us to the Azure Service Management API (ASM). "Ian, why is that not right?", you ask? Well to be fair it's not wrong... but wait we want Azure Resource Manager (ARM). It's the latest hotness.
Let me take a step back here to say, I fall off of mountain bikes regularly, it's my excuse.
Dear Katniss Everdeen...
uhh, back to Azure.
ASM is like?.. Well my 2009 Pathfinder. It's trusty, and gets me to and fro, but doesn't have all the latest bells and whistles (Bluetooth!!!). ARM is like?.. I want to say a Tesla, but that may be a little much. A NEW PATHFINDER! ha that would probably have Bluetooth.
ARM is where you should be focusing. Instead of crafting an ASM based URL with a POST method that looks something like:
https://management.core.windows.net//services/hostedservices//deployments
ref
With a body full of XML <digital shiver />. The 90's called wanting their code back... You should instead, create an ARM PUT that looks something like:
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}?validating={true|false}&api-version={api-version}
ref
With a body full of Crockford approved, JSON.
Now, there are plenty of tools to help you craft this JSON, so don't fret much. Check out this (shameless plug) awesome video about how to use Visual Studio to do just that.
Trust me, I'm a professional.
Continue reading


Let's Findy Your Dream Vacation
What is your favorite type of weather?
Hot
Warm
Cold
Do you like the city or country?
City
Country
No Preference
Submit
You should go to Hawaii
You should go to California
You should go to Oregon


cosifer.combiners package¶
Submodules¶
cosifer.combiners.cit module¶
Combiner for interaction tables.
-
class
cosifer.combiners.cit.
CombineInteractionTables
(combine_tables=<function mean_table>, interaction_symbol='<->', name='cit', **kwargs)¶ Bases:
cosifer.combiners.network_combiner.NetworkCombiner
Combine interaction tables representing networks using a function.
-
name
¶ name of the combiner.
- Type
str
-
combine_tables
¶ function to combine interaction tables.
- Type
function
-
interaction_symbol
¶ symbol used to indicate interactions in the index of the dataframe.
- Type
str
-
graph
¶ combined graph.
- Type
cosifer.collections.Graph
-
-
cosifer.combiners.cit.
combine_tables
(table_list, interaction_symbol='<->', processing_concatenated_intensities_fn=<function <lambda>>, reduce_fn=<function <lambda>>, **kwargs)¶ Compute the combined intensities from a list of interaction tables.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
processing_concatenated_intensities_fn (function, optional) – function to apply on the concatenated intensities. Defaults to identity.
reduce_fn (function, optional) – function to reduce intensities over dataframe rows. Defaults to mean.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
get_scaled_ranks
(dataframe)¶ Scaled ranks from an intensity dataframe.
- Parameters
dataframe (pd.DataFrame) – intensity dataframe.
- Returns
scaled ranks dataframe
- Return type
pd.DataFrame
-
cosifer.combiners.cit.
hard_mean_scaled_ranks_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the mean on the scaled ranks without considering interaction existence.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
hard_mean_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the mean on the intensities without considering interaction existence.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
max_scaled_ranks_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the maximum on the scaled ranks.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
max_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the maximum on the intensities.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
mean_scaled_ranks_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the mean on the scaled ranks.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
mean_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the mean on the intensities.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
median_scaled_ranks_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the median on the scaled ranks.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
median_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the median on the intensities.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
min_scaled_ranks_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the minimum on the scaled ranks.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
-
cosifer.combiners.cit.
min_table
(table_list, interaction_symbol='<->', **kwargs)¶ Compute the minimum on the intensities.
- Parameters
table_list (list) – a list of interaction tables.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
the combined interaction table.
- Return type
cosifer.combiners.core module¶
Core combiner utilities.
-
cosifer.combiners.core.
combined_df_to_interaction_table
(combined, table_list, interaction_symbol='<->')¶ Transform combined intensities dataframe into an InteractionTable.
- Parameters
combined (pd.DataFrame) – combined intensities dataframe.
table_list (list) – a list of InteractionTable objects.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
- an InteractionTable representing the combined
intensities.
- Return type
-
cosifer.combiners.core.
concatenate_intensities
(table_list, threshold_rate=None)¶ Concatenate intensities from a list of InteractionTable objects.
- Parameters
table_list (list) – a list of InteractionTable objects.
threshold_rate (float, optional) – threshold rate for the NAs. Defaults to None, a.k.a no threshold applied.
- Returns
- an InteractionTable representing the combined
intensities.
- Return type
cosifer.combiners.network_combiner module¶
Interface for a network combiner.
-
class
cosifer.combiners.network_combiner.
NetworkCombiner
(filepath=None, **kwargs)¶ Bases:
cosifer.handlers.network_handler.NetworkHandler
Abstract interface for a network combiner.
-
trained
¶ flag to indicate whether the combiner is already trained.
- Type
bool
-
combine
(results_list)¶ Apply the combination method. Checking whehter the combiner has been already trained.
- Parameters
results_list (list) – a list of InteractionTable objects.
-
cosifer.combiners.snf module¶
SNF combiner.
-
class
cosifer.combiners.snf.
SNF
(interaction_symbol='<->', name='snf', **kwargs)¶ Bases:
cosifer.combiners.network_combiner.NetworkCombiner
Combine interaction tables representing networks using SNF.
-
interaction_symbol
¶ symbol used to indicate interactions in the index of the dataframe.
- Type
str
-
name
¶ name of the combiner.
- Type
str
-
-
cosifer.combiners.snf.
compute_snf
(results_list, labels, K=20, T=10, snf=rpy2.robjects.packages.Package as a <module 'SNFtool'>)¶ Compute combination via SNF.
- Parameters
results_list (list) – a list of InteractionTable objects.
labels (list) – labels to consider.
K (int, optional) – number of nearest neighbors. Defaults to 20.
T (int, optional) – number of steps in the diffusion process. Defaults to 10.
snf (object, optional) – SNF rpy2 object. Defaults to importr(‘SNFtool’).
- Returns
the combined graph.
- Return type
cosifer.combiners.summa module¶
Combiner using SUMMA.
-
class
cosifer.combiners.summa.
Summa
(interaction_symbol='<->', name='summa', **kwargs)¶ Bases:
cosifer.combiners.network_combiner.NetworkCombiner
SUMMA algorithm for combining results.
-
interaction_symbol
¶ symbol used to indicate interactions in the index of the dataframe.
- Type
str
-
name
¶ name of the combiner.
- Type
str
-
summa_object
¶ SUMMA object.
- Type
pySUMMA.Summa
-
summa_object
= None
-
-
cosifer.combiners.summa.
fill_na_ranks
(a_series)¶ Fill NA ranks in a pd.Series.
- Parameters
a_series (pd.Series) – series to fill.
- Returns
the filled series.
- Return type
pd.Series
-
cosifer.combiners.summa.
summa_scores_table
(table_list, interaction_symbol='<->', **kwargs)¶ Apply SUMMA as a method on list of interaction tables.
- Parameters
table_list (list) – a list of InteractionTable objects.
interaction_symbol (str, optional) – symbol used to indicate interactions in the index of the dataframe. Defaults to ‘<->’.
- Returns
interaction table with SUMMA scores.
- Return type
Module contents¶
Combiner module.


If you love Telegram but don't want to leave Discord then you'll be pleased to find we've built a bridge in this channel. If you'd like to join the group in the Telegram app you can find it here: https://t.me/KomodoPlatform_Official.
[telegram] <TheCrabbyPaddy> in time for my birthday? I think so
[telegram] <TheCrabbyPaddy>
GatewayBOT05-Dec-19 01:07 PM
[telegram] <polycryptoblog> Most are online shops should be accessible to you (re @Deadpool1001: Good list but unfortunately i couldnt find any vendors that are in estonia.)
[telegram] <Kriptodan Batan Adam> chech distrubition binance guys
[telegram] <Deadpool1001> They are accessible but shipping costs usually more than the product itself which kinda defeats the point of using them. (re @polycryptoblog: Most are online shops should be accessible to you)
[telegram] <Kriptodan Batan Adam> 42 kmd hmmm not good
GatewayBOT05-Dec-19 01:22 PM
[telegram] <CryptoBattler> get your KMD off binance. their staking algo is broken
[telegram] <CryptoFera> ?? (re @CryptoBattler: get your KMD off binance. their staking algo is broken)
GatewayBOT05-Dec-19 01:40 PM
[telegram] <Kriptodan Batan Adam> ?? (re @CryptoBattler: get your KMD off binance. their staking algo is broken)
[telegram] <Giotti96> You could make a video or an article in which you explain the advantages of kmd over other crypto like ethereum ecc
[telegram] <CriptoAZ> Hi,
I am a Cointelegraph journalist and I would like to ask some somewhat technical questions about the AtomicDEX platform.
Is there anyone that I can contact?
@admin
[telegram] <CriptoAZ> Hi,
I am a Cointelegraph journalist looking to ask some somewhat technical questions concerning the AtomicDEX platform.
Is there anyone that I can contact?
@admin
[telegram] <CriptoAZ> Hi,
I am a Cointelegraph journalist looking to ask some somewhat technical questions concerning the AtomicDEX platform.
Is there anyone that I can contact?
[telegram] <CriptoAZ> @admin
GatewayBOT05-Dec-19 03:41 PM
[telegram] <vogelfreund> @Acura360 or maybe better in discord
We are excited to announce the public beta test of AtomicDEX, a revolutionary app combining a secure multi-coin wallet with a DEX built on atomic swaps.
GatewayBOT05-Dec-19 03:56 PM
[telegram] <CriptoAZ> Thanks, I already joined the Discord channel.(edited)
GatewayBOT05-Dec-19 04:05 PM
[telegram] <wktong> Does anyone facing problem when claim rewards via Ledger wallet?
GatewayBOT05-Dec-19 04:26 PM
[telegram] <RobaireCrypto> Moon when I ask
[telegram] <RobaireCrypto> Moon now, komodo must.
[telegram] <Marius> Yes (re @wktong: Does anyone facing problem when claim rewards via Ledger wallet?)
[telegram] <cmyslopez> Atomic Dex is not working for me....
[telegram] <cmyslopez>
[telegram] <cmyslopez> This is how it looks
[telegram] <Regnar> Are you on the most recent update? (re @cmyslopez: This is how it looks)
[telegram] <cmyslopez> Yes
[telegram] <cmyslopez>
GatewayBOT05-Dec-19 05:05 PM
[telegram] <Acura360> deinstall, the reinstall (re @cmyslopez: )
[telegram] <cmyslopez> I will try again
[telegram] <x22nnaru> go on discord at rewards channel ... you will find the help there (re @wktong: Does anyone facing problem when claim rewards via Ledger wallet?)
Claim your KMD rewards on your hardware wallet device.
[telegram] <cmyslopez> All fix
[telegram] <Acura360> :) (re @cmyslopez: All fix )
GatewayBOT05-Dec-19 07:22 PM
[telegram] <Acura360> Komodo CTO Kadan Stadelmann was interviewed by Crypto Murmur about his past and his journey in the blockchain scene.
Read this great interview to get to know ca333 a little better.
https://cryptomurmur.com/get-to-know-kadan-stadelmann/
EDIT: *The date of the KMDLabs bug-hunting contest has been moved from Friday, December 6 to Sunday, December 8. Please disregard the title of...
GatewayBOT05-Dec-19 08:55 PM
[telegram] <Hastrup>
GatewayBOT05-Dec-19 09:13 PM
[telegram] <Ggokhangark> Hey guys, I saw that you have added Turkish language to kmd offical web site. As I see translation is still continue for other parts which has not translated yet. But it looks perfect from now on. I am very happy to see that really.(edited)
GatewayBOT05-Dec-19 09:28 PM
[telegram] <alperC> Hey, yes, it’s still work in progress @Ggokhangark
[telegram] <Ggokhangark> Thank you Alper. You are doing great work there. (re @alperC: Hey, yes, it’s still work in progress @Ggokhangark)


Supplementary Marathon List for 2006
Scheduled but not verified
ENG 14 Apr Stratford-Upon-Avon Good Friday
ENG 22 Apr Caythorpe Caythorpe Canter
ENG 25 Jun Barley Herts Hobble
ENG 23 Jul Brighton Rottingdean Windmill (cross)
ENG 26 Aug Robin Hoods Bay Smugglers Trod
ENG 12 Nov Barton-Le-Clay Steppingley Step
GER 13 Aug Südmoslesfehn Wardenburg Natur
Scheduled but cancelled
USA 25 Mar Saint George UT Eureka Casino Tri-State
USA 29 May Chicago IL Lakeshore
Marathons that are not races (fun runs or non-competitive walks)
AUT 26 Aug Unterweitersdorf Pferdebahn-Genuss
JPN 08 Oct Tokyo Tokyo Yumemai (7th)
"Marathons" that are not marathons
ITA 10 Sep Anguillara Extreme (22.3 km)
Last Updated on 12 Apr 2014


Basic Forms
Input Types
Most common form control, text-based input fields. Includes support for all HTML5 types: text
, password
, datetime
, datetime-local
, date
, month
, time
, week
, number
, email
, url
, search
, tel
, and color
.
Select menu
Custom <select>
menus need only a custom class,
.custom-select
to trigger the custom styles.
Switches
A switch has the markup of a custom checkbox but uses the
.custom-switch
class to render a toggle switch. Switches
also support the disabled
attribute.
Checkboxes
Radios
Disabled
Basic Example
Horizontal Form
Inline Form
Use the .form-inline
class to display a series of labels, form controls, and buttons on a single horizontal row. Form controls within inline forms vary slightly from their default states. Controls only appear inline in viewports that are at least 576px wide to account for narrow viewports on mobile devices.


Mum jailed for stabbing daughter multiple times despite victim pleading with judge not to lock her up
Irene Forrester pounced on Linda Ann Forrester after telling her: "I don't love you as much as I used to."
by Connor GordonA retired nurse who repeatedly knifed her daughter has been jailed - despite a plea by the victim not to lock her up.
Irene Forrester pounced on Linda Ann Forrester after stating to her: "I don't love you as much as I used to."
The attack happened at the 66 year-old's flat in Glasgow's Partick in January this year.
Her 38 year-old daughter was knifed four times leaving her with a collapsed lung and broken rib.
Forrester today returned to Glasgow Sheriff Court after she pled guilty to assaulting Linda Ann to her severe injury and danger of her life.
Her lawyer Neil Stewart told the hearing: “Her daughter doesn’t want her mother to receive a custodial sentence.”
But, Sheriff Alan MacKenzie instead jailed Forrester for 32 months.
He told the OAP: "I understand your life has been grim for a very long time.

“I recognise this offence was isolated and was fuelled by medication plus alcohol.
“The reality is you have pled guilty to the most serious charge.
"I consider the gravity of the offence that no disposal is appropriate other than a custodial sentence.”
Family of Forrester sobbed as she was lead handcuffed to the cells.
Her daughter was not present for sentencing.
The court earlier heard the pair had been at Forrester's home when she suddenly blurted out that she no longer had the same love for her daughter.
Linda Ann went to bed and said she did not want to speak to her mum.
But, prosecutor Lorri Pidgeon told the hearing: “Forrester returned a short time later with a kitchen knife.
“She told her daughter that she was going to put her out her misery and stabbed her four times.”
A wounded Linda Ann managed to escape the flat into her car before calling an ambulance.
Her mum also dialled 999 stating: "I stabbed my daughter. I hope she is not dead. I'm very sorry."
"She will be dead. I am guilty. It is so bad."
The pensioner was later held by police, who found the knife at the flat.
She told officers: "I did it. I did not want to do it, but sometimes enough is enough."
Linda Ann suffered wounds to her back, hip and arms.
She was fortunately able to leave hospital days later.
Forrester's lawyer Mr Stewart today/yesterday said: “Nothing I’m going to say is an excuse to her actions.
“There is very much a background as she was on the receiving end from her ex-husband this is her daughter..
“This affected her for a number of years.”
The court heard also heard Linda Ann had sent an email to the prosecutors asking for her mother not be to locked up.
No further details were given.


Copyright © 2012 Cromwell Enage
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Table of Contents
template < typename Filter , typename VisitorList , typename T , typename InputGraph > void call_visitors( VisitorList& visitors , T t , InputGraph& input_graph );
This function will invoke the function call operator of each element in the specified visitor list whose event filter type matches the one specified.
This function enables BGL
algorithms such as find_eulerian_trail()
to decouple visitor event points
from algorithm-specific class definitions while offering user code the ability
to take advantage of a simpler programming interface via Boost.Fusion
containers. It still supports the Event Visitor List interface as an alternative.
* `Filter` must be explicitly passed in as a template parameter. * `VisitorList` must model either the Fusion Forward Sequence concept or the Event Visitor List concept. * If `VisitorList` models the Fusion Forward Sequence concept, then the second type of each half-runtime pair in `VisitorList` whose first type matches `Filter` must model the Binary Function concept. Furthermore, the function call operator of the second type must accept `T` as a valid first argument type and a reference to `InputGraph` as a valid second argument type.
|
Parameter |
Description |
Runtime requirements |
|---|---|---|
|
|
The visitor list to be filtered for event point invocation. |
|
|
|
The object to be passed in as the first argument to the function
call of each visitor whose event filter type matches |
The input graph must also contain the specified object. |
|
|
The object to be passed in as the second argument to the function
call of each visitor whose event filter type matches |
Last revised: September 09, 2012 at 18:12:07 GMT |


{% extends "base_user_email.html" %} {% load date %} {% load i18n %} {% load urn %} {% load humanize %} {% block subject %}{% blocktrans %}Notice of Fine and How to Pay{% endblocktrans %}{% endblock subject %} {% block extra_css %} h1 { font-size: 32px; } .name { font-weight: 400; } .collapse { margin: 6px 0; } {% endblock extra_css %} {% block content %}
{{ name }}
{{ urn|format_urn }}
{{ court.court_name }}
{% for fine in fines %}
{% if forloop.counter != 1 %}
{% endif %}
{{ fine }}
{% endfor %}
£{{ total|floatformat:2|intcomma }}
{{ pay_by|date:"d/m/Y" }}
{% if endorsements %}{% for endorsement in endorsements %}
{% if forloop.counter != 1 %}
{% endif %}
{{ endorsement }}
{% endfor %}
{% blocktrans %}Do not send your driving licence to the court. The DVLA will contact you if they need you to send it to them.{% endblocktrans %}
{% blocktrans %}You will need to tell us:{% endblocktrans %}
{% blocktrans %}Division:{% endblocktrans %} {{ payment_details.division }}
{% blocktrans %}Account number:{% endblocktrans %} {{ payment_details.account_number }}
{% blocktrans %}Payments can be made 24 hours a day using credit or debit card (Visa, Mastercard, Maestro). Please allow 5 days to allow the payment to be credited to your account.{% endblocktrans %}
www.gov.uk/pay-court-fine-online
{% blocktrans %}Copy and paste this web address into a new browser window.{% endblocktrans %}
0300 790 9980
{% else %}0300 790 9901
{% endif %}{% blocktrans %}When you pay you will be given an authorisation number. Keep this as proof of payment along with the date and amount paid. The court will not issue a receipt.{% endblocktrans %}
{% blocktrans %}If you can no longer pay as ordered, contact the Fines Team to discuss your options by email at:{% endblocktrans %} {{ court.enforcement_email }}
{% blocktrans %}A hard copy of your fine and collection notice will be posted to you by the court. Do not wait for these documents before making payment.{% endblocktrans %}
{% blocktrans %}If you fail to pay the fine as ordered, you may be liable for further penalties.{% endblocktrans %}
{% blocktrans %}Please do not reply to this email as this email address is not monitored. Instead please send all queries directly to the court or fine email address shown in this email.{% endblocktrans %}
{% endblock content %}