|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.oro.text.MatchActionInfo
This class is used to provide information regarding a match found by MatchActionProcessor to a MatchAction callback implementation.
MatchAction
,
MatchActionProcessor
| Field Summary | |
char[] |
charLine
The char[] representation of the matching line with the trailing newline truncated. |
java.util.List |
fields
A List of Strings containing the fields of the line that were separated out by the fieldSeparator. |
Pattern |
fieldSeparator
The field separator used by the MatchActionProcessor. |
java.io.BufferedReader |
input
The input stream passed to the MatchActionProcessor from which the matching line was read. |
java.lang.String |
line
The String representation of the matching line with the trailing newline truncated. |
int |
lineNumber
The line number of the matching line |
MatchResult |
match
The first match found in the line of input. |
PatternMatcher |
matcher
The PatternMatcher used to find the match. |
java.io.PrintWriter |
output
The output stream passed to the MatchActionProcessor. |
Pattern |
pattern
The pattern found in the line of input. |
| Constructor Summary | |
MatchActionInfo()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public int lineNumber
public java.lang.String line
public char[] charLine
public Pattern fieldSeparator
public java.util.List fields
public PatternMatcher matcher
public Pattern pattern
public MatchResult match
public java.io.PrintWriter output
public java.io.BufferedReader input
| Constructor Detail |
public MatchActionInfo()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


User Administration—User Summary
User Summary allows you to view security record details for all users associated with your institution. It gives you a comprehensive view of the user record and an opportunity to print the page. Changes cannot be made on this page, but you can select Manage User if updates to the user record are required.
- Key Information—Displays the User Name, User ID, and Primary Institution ID of the selected user record.
- User Details—Displays relevant user details: System, User Name, Address, User IDs, and relevant maintenance details.
- Token Information—Displays all hard and/or soft tokens assigned to the user record.
- Applications—Displays all Applications, Permissions, and Access Rights assigned to the user.
- Special Roles—Displays all special roles assigned to the user.
- OrgIDs—Lists all OrgIDs available to the user.
- FIIDs—Lists all FIIDs available to the user.
- Availability—Displays the time period (Pacific Time) the user is allowed to access Client-Central.
- Manage User button—Takes you to the User Record page where you can update, disable/enable, or delete the user record.
- Print link—Allows you to print the page.
All relevant sections display based on your institution's parameter setup and your access rights. For more information about a specific field, go to the page help of the associated page.


{% verbatim %}
With PaddlePaddle Fluid, users describe a program other than a model. The program is a ProgramDesc
protobuf message. TensorFlow/MxNet/Caffe2 applications generate protobuf messages too, but their protobuf messages represent the model, a graph of operators, but not the program that trains/uses the model.
Many know that when we program TensorFlow, we can specify the device on which each operator runs. This allows us to create a concurrent/parallel AI application. An interesting questions is how does a ProgramDesc
represents a concurrent program?
The answer relies on the fact that a ProgramDesc
is similar to an abstract syntax tree (AST) that describes a program. So users just program a concurrent program that they do with any concurrent programming language, e.g., Go.
The following table compares concepts in Fluid and Go
| Go | Fluid | |
|---|---|---|
| user-defined functions | layers | |
| control-flow and built-in functions | intrinsics/operators | |
| goroutines, channels | class ThreadPool | |
| runtime | class Executor |
To review all above concepts in an example, let us take a simple program and writes its distributed version.
Suppose that we want to parallelize a naive Fluid program (written in Go and calling Fluid's Go binding) that multiplies two tensors.
import "fluid"
func paddlepaddle() {
X = fluid.read(...)
W = fluid.Tensor(...)
Y = fluid.mult(X, W)
}
Please be aware that the Fluid's Go binding provides the default main
function, which calls the paddlepaddle
function, which, in this case, is defined in above program and creates the following ProgramDesc
message.
message ProgramDesc {
block[0] = Block {
vars = [X, W, Y],
ops = [
read(output = X)
assign(input = ..., output = W)
mult(input = {X, W}, output = Y)
],
}
}
Then, the default main
function calls fluid.run()
, which creates an instance of the class Executor
and calls Executor.Run(block[0])
, where block[0]
is the first and only block defined in above ProgramDesc
message.
The default main
function is defined as follows:
func main() {
paddlepaddle()
fluid.run()
}
By parallelizing the above program, we could support very big tensor X by splitting into small pieces {x_1, x_2, ...} and sent each piece to worker process/node for parallel multiplication.
In this case, we can write a transpiler that takes a ProgramDesc
message that represents the above example program and outputs two ProgramDesc
messages, one for running on the master process/node, and the other one for worker processes/nodes.
The master program could look like the following:
message ProgramDesc {
block[0] = Block {
vars = [X, L, Y],
ops = [
read(output = X)
kube_get_workers_addrs(output = L)
Y = tensor_array(len(L))
parallel_for(input = X, output = Y,
attrs = {L, block_id(1)}) # referring to block 1
]
}
block[1] = Block {
parent = 0,
vars = [x, y, index],
ops = [
slice(input = [X, index], output = x) # index is initialized by parallel_for
send(input = x, attrs = L[index])
recv(outputs = y, attrs = L[index])
assign(input = y, output = Y[index])
]
}
}
The equivalent Fluid program (calling the Go binding) is:
func main() { //// block 0
X = fluid.read(...)
L = fluid.k8s.get_worker_addrs()
Y = fluid.tensor_array(len(L))
fluid.parallel_for(X, L,
func(index int) { //// block 1
x = X[index]
fluid.send(L[index], x)
y = fluid.recv(L[index])
Y[index] = y
})
}
An explanation of the above program:
fluid.k8s
is a package that provides access to Kubernetes API. fluid.k8s.get_worker_addrs
returns the list of IP and ports of all pods of the current job except for the current one (the master pod). fluid.tensor_array
creates a tensor array. fluid.parallel_for
creates a ParallelFor
intrinsic, which, when executed,
creates len(L)
scopes, each for the concurrent running of the sub-block (block 1 in this case), and initializes a variable named "index" in the scope to an integer value in the range [0, len(L)-1]
, and
len(L)
threads by calling into the ThreadPool
singleton, each thread Executor.Run(block)
, where block
is block 1 as explained above.The worker program looks like
func main() {
W = Tensor(...)
x = fluid.listen_and_do(
fluid.k8s.self_addr(),
func(input Tensor) {
output = fluid.mult(input, W)
})
}
where
fluid.listen_and_do
creates a ListenAndDo
intrinsic, which, when executed,fliud.k8s.self_addr()
,Executor.Run(block)
, where the block is generated by running the lambda specified as the second parameter of fluid.listen_and_do
.From the above example, we see that:
fluid.run
function that runs the program implicitly.ProgramDesc
protobuf message.Executor.Run
takes a block, instead of a ProgramDesc
, as its parameter.fluid.run
calls Executor.Run
to run the first block in the ProgramDesc
message.Executor.Run
's implementation is extremely simple -- it doesn't plan the execution nor create threads; instead, it runs on the current thread and execute intrinsics/operators' Run
method sequentially as they appear in the Block.ops
array.Run
method might create threads. For example, the ListenAndDo
operator creates a thread to handle each incoming request.


Sample Code
Introduction
Here is the code I wrote for the BeHappy Documentation add-on. I hope everything is explained enough. If there's something you don't understand, please send me an email.
Class Declaration
/*
* BeHappy Documentation Add-on
*
* (c) 1999 Sylvain Tertois
*
*/
#ifndef ADDON_H
#define ADDON_H
#include "HTMLProject.h"
class AddOn : public HTMLProject
{
public:
AddOn(BMessage*);
AddOn();
void Update(HappyLink*);
const unsigned int *GiveConfig() const;
bool FindHome();
void About() const;
private:
void NewFile(HTMLFile *file, HappyLink *list);
unsigned int CountHTMLFiles(BDirectory &dir);
HappyLink *classes,*topics;
};
#endif //ADDON_H
I just add two functions to the base Add-On:
- NewFile parses the given file and puts all the found links and labels as children of the given list
- CountHTMLFiles returns the number of html files in the given directory dir. (This function if recursive. So if there's a directory inside dir that contains html files, they will be counted as well).
The classes and topics are the indexes used with the development kit documentation.
Add-On.cpp
/*
* BeHappy Documentation Add-on
*
* (c) 1999 Sylvain Tertois
*
*/
#include "Add-On.h"
#include "HappyLink.h"
#include "HTMLFile.h"
#include "BHAdd-ons.h"
#include
// don't touch these!
// these two variables are used by BeHappy to be sure it's compatible with the add-on
const uint16 BHVersion = BHAO_VERSION;
const uint16 BHVLastCompatible = BHAO_LCVERSION;
HTMLProject *InstantiateProject(BMessage *archive)
{
if (archive==NULL)
return new AddOn;
else
return new AddOn(archive);
}
You shouldn't need to change InstantiateProject. All it does is construct and return a new Add-On object.
// Put Add-On name here
const char *projectName="BeHappy Documentation";
AddOn::AddOn(BMessage *archive)
: HTMLProject(archive)
{
}
Note that I don't initialise the member variables in the constructor. I will in the Update() function.
AddOn::AddOn()
{
}
// Give the configuration of the different indexes
const unsigned int *AddOn::GiveConfig() const
{
static unsigned int config[] = { 0,BW_SECONDLIST,BW_SECONDLIST };
return(config);
}
The first index (Summary) will be one list, and the other two (Classes and Topics) will be two lists.
// Put here the code to find the documentation path
// if you return false, a window will be opened asking for the path
bool AddOn::FindHome()
{
// first try to find the "BeHappyDK" folder
BQuery myQuery;
BVolumeRoster roster;
/// get the boot volume
BVolume vol;
roster.GetBootVolume(&vol);
myQuery.SetVolume(&vol);
/// sets and launch the Query
myQuery.SetPredicate("name=BeHappyDK");
myQuery.Fetch();
/// and look what we've found
BEntry myEntry;
while(myQuery.GetNextEntry(&myEntry) == B_OK)
{
//// if it isn't a directory, give up
if (!myEntry.IsDirectory())
continue;
//// try to build a BDirectory object to see if the Doc folder is here
BDirectory myDir(&myEntry);
if (myDir.SetTo(&myDir,"Doc") == B_OK)
{
//// if the init is OK, we've found it!
SetHome(myDir);
return true;
}
}
// it seems that the BeHappyDK folder isn't here...
// look for BeHappy's folder
entry_ref beHappyRef;
BRoster appRoster;
if (appRoster.FindApp("application/x.vnd-STertois.BeHappy",&beHappyRef) == B_OK)
{
/// find BeHappy's directory
BDirectory happyDir;
BEntry beHappyApp(&beHappyRef);
beHappyApp.GetParent(&happyDir);
/// and the documentation directory
if (happyDir.SetTo(&happyDir,"Doc") == B_OK)
{
//// if the init is OK, we've found it!
SetHome(happyDir);
return true;
}
}
// not found... ask user
SetHome(BDirectory("/boot/home"));
return false;
}
// The biggest part: put here your code to build the indexes
// don't use the HappyLink* (yet)
void AddOn::Update(HappyLink*)
{
// first let's clean the old indexes if they're there
Clean();
// now let's go!! put your code here
HTMLLabel *mainFile = new HTMLLabel(this,"index.html","","Index");
// count the number of HTML files in the home directory, to tell the
// infowindow how many Print() calls it will get
{
/// first get the path of the home directory
BPath *homePath = GetPath("");
/// and here we go
BDirectory homeDir(homePath->Path());
NumPrint(CountHTMLFiles(homeDir));
}
// create the happyList
happyList = new HappyLink(this,projectName,mainFile);
// create the first index
HappyLink *index = new HappyLink(this,"Summary",mainFile);
// maybe the two other indexes... we'll see later!!
classes = topics = NULL;
// add the summary to the happy list:
happyList->AddChild(index); // this can be done before or after you fill in the index
// and add the files!!
HTMLFile *theFile = mainFile->GetFile();
NewFile(theFile,index);
delete theFile;
}
// Add all the labels and links of the given file into the given HappyLink
void AddOn::NewFile(HTMLFile *file,HappyLink *list)
{
// Add the beacons...
/// All the html files have a <!DK> tag, to say what type of file it is
/// I add a beacon to get this information
HTMLBeacon *beaconDK = new HTMLBeacon("<!DK><!","><!DK>");
file->AddBeacon(beaconDK);
/// only the links between <!start> and <!stop> will be useful
file->AddBeacon(new HTMLBeacon("<!start"));
file->AddBeacon(new HTMLBeacon("<!stop"));
Note that the beacons I used don't have the ending >. If I put this character, the word after <!start> or <!stop> wouldn't be recognised, if it's a link or a label. It would be put in FoundString() instead of being stored as a link/label.
// Parse the file
file->Search();
if (!beaconDK->Found())
// the DK tags aren't there... too bad!
return;
// get the labels and links found in the file
BList labels,links;
/// first the labels.. we want all of them
file->GetLists(0,4,NULL,&labels);
/// and the links... I only want those between <!start> and <!stop>
file->GetLists(2,3,&links,NULL);
// Add all the labels to the summary
int n = labels.CountItems();
for (int i=0; i<n; i++)
{
HTMLLabel *theLabel = (HTMLLabel*)labels.ItemAt(i);
list->AddChild(new HappyLink(this,theLabel->LabelText(),theLabel));
}
// And the links
n = links.CountItems();
for (int i=0; i<n; i++)
{
HTMLLabel *theLink = (HTMLLabel*)links.ItemAt(i);
// Update the information in the info window
BString info = "Parsing:";
info << theLink->FileName();
Print(NULL,info.String());
// Add a link in the summary
HappyLink *child = new HappyLink(this,theLink->LabelText(),theLink);
list->AddChild(child);
// parse the new file, and add its links and labels to the summary,
// as children of child.
HTMLFile *newFile = theLink->GetFile();
NewFile(newFile,child);
delete newFile;
}
// find if the file is a development kit topic, or a class
All the HTML files in the documentation have a special tag at the begining:
- <!DK><!no><!DK> if the file is just a BeHappy documentation file
- <!DK><!class><!DK> if it is a development kit file, that sould be put in the Classes index.
- <!DK><!topic><!DK> if it is a development kit file, that sould be put in the Topics index.
BString dkType = beaconDK->FoundString();
if (dkType != "no")
{
// This is a DK file
// is it the first one?
if (classes == NULL)
{
// yes, create the other indexes
HTMLLabel *mainFile = new HTMLLabel(this,"index.html","","Index");
classes = new HappyLink(this,"Classes",mainFile);
topics = new HappyLink(this,"Topics",mainFile);
// add the two indexes to the happyList
happyList->AddChild(classes);
happyList->AddChild(topics);
}
// create a copy of the HappyLink
HappyLink *copy = new HappyLink(*list);
When you want to have the same happyLink in two different places always make a copy! If you just add list to one of the two indexes Classes or Topics you'll have a segmentation fault because it's already in the Summary index.
// is it a class or a topic?
if (dkType == "class")
// class
classes->AddChild(copy);
else
// topic
topics->AddChild(copy);
}
}
// About box
void AddOn::About() const
{
BAlert *info = new BAlert("BeHappy:BeHappy Doc","BeHappy Documentation\nBy Sylvain Tertois","OK");
info->Go();
}
// Count the HTML files in a directory
unsigned int AddOn::CountHTMLFiles(BDirectory &dir)
{
BEntry file;
unsigned int count = 0;
// loop in all the files in the directory
while (dir.GetNextEntry(&file,true) == B_OK)
{
if (file.IsDirectory())
{
// if it a directory, we'll have to look for html files in it
BDirectory newDir(&file);
count += CountHTMLFiles(newDir);
}
else
{
// find the MIME type
BNode myNode(&file);
BNodeInfo myNodeInfo(&myNode);
// is it an html file?
char mime[256];
myNodeInfo.GetType(mime);
if (strcmp(mime,"text/html") == 0)
count++;
}
}
return count;
}
Next: Scripting


Class Matcher
Class used to match a type selector from the TypeTable with the properties of an object
Inheritance
Namespace:Faker
Assembly:Faker.dll
Syntax
public class Matcher
Constructors
View SourceMatcher()
Default constructor - uses the default TypeTable
Declaration
public Matcher()
Matcher(TypeTable)
Constructor which accepts a TypeTable as an argument
Declaration
public Matcher(TypeTable table)
Parameters
| Type | Name | Description |
|---|---|---|
| TypeTable | table | an instantiated type table that can be accessed via the TypeMap property later |
Properties
View SourceTypeMap
Declaration
public TypeTable TypeMap { get; protected set; }
Property Value
| Type | Description |
|---|---|
| TypeTable |
Methods
View SourceIsArray(Type)
Returns true if the targeted type is an array of some sort
Declaration
protected virtual bool IsArray(Type targetType)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Type | targetType | the type we want to test |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if it's an array, false otherwise |
MapFromSelector(Object, Type, out Boolean)
Selector-based mapping for when we need to apply it directly to objects wholesale
Declaration
protected virtual object MapFromSelector(object targetObject, Type propertyType, out bool isMached)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Object | targetObject | The target object who's value will be replaced |
| System.Type | propertyType | The type of the object |
| System.Boolean | isMached | true if a match was made and bound successfully; false otherwise |
Returns
| Type | Description |
|---|---|
| System.Object | The instance whose value has replaced. |
MapFromSelector(PropertyInfo, Object, Type)
Attempt to map the object directly based on the availability of selectors
Declaration
protected virtual bool MapFromSelector(PropertyInfo property, object targetObject, Type propertyType)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Reflection.PropertyInfo | property | The property that needs a match |
| System.Object | targetObject | The object to which the property belongs |
| System.Type | propertyType | The type of the property |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if a match was found and made; false otherwise |
Match<T>(T)
Method matches all properties on a given class with a
Declaration
public virtual T Match<T>(T targetObject)
Parameters
| Type | Name | Description |
|---|---|---|
| T | targetObject | an instance of the class |
Returns
| Type | Description |
|---|---|
| T | The instance whose value has replaced. |
Type Parameters
| Name | Description |
|---|---|
| T | a class with a parameterless constructor (POCO class) |
MatchStruct<S>(ref S)
Used for matching value types
Declaration
public virtual void MatchStruct<S>(ref S targetStruct)
Parameters
| Type | Name | Description |
|---|---|---|
| S | targetStruct | The value type instance |
Type Parameters
| Name | Description |
|---|---|
| S | A value type parameter |
ProcessProperties(PropertyInfo[], Object)
Method for iterating over all of the indivdual properties in for a given object
Declaration
protected virtual object ProcessProperties(PropertyInfo[] properties, object targetObject)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Reflection.PropertyInfo[] | properties | The set of properties available to an object instance |
| System.Object | targetObject | The object against which type selectors will inject values |
Returns
| Type | Description |
|---|---|
| System.Object |
ProcessProperty(PropertyInfo, Object)
Protected method used to implement our selector-matching strategy. Uses a greedy approach.
Declaration
protected virtual void ProcessProperty(PropertyInfo property, object targetObject)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Reflection.PropertyInfo | property | The meta-data about the property for which we will be finding a match |
| System.Object | targetObject | The object which will receive the property injection |
SafeObjectCreate(Type)
Method used for safely creating new instances of type objects; handles a few special cases
where activation has to be done carefully.
Declaration
public object SafeObjectCreate(Type t)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Type | t | The target type we want to instantiate |
Returns
| Type | Description |
|---|---|
| System.Object | an instance of the specified type |


AVR32 UC3 - SSC USART Driver Documentation
This is the documentation for the data structures, functions, variables, defines, enums, and typedefs for the SSC USART emulation driver.
It also comes with an example of the usage of this driver:
- Open an hyperterminal connected to USART 0 (the terminal settings are 57600 8N1).
- Type a character : it is echoed back by the application.
- Note:
- The IAR built-in event handling mechanism manages interrupt groups but not lines. This example shows how to register an interrupt through the INTC driver, which manages lines. If interrupt request lines do not have to be handled separately within groups, then the IAR built-in event handling mechanism can be used in this way:
- remove the INTC driver files (intc.c and exception.s82) from the IAR project;
- remove calls to the INTC driver functions (INTC_init_interrupts and INTC_register_interrupt);
- add
#pragma handler = AVR32_xxxx_IRQ_GROUP, int_level
above the __interrupt
keyword; - the IAR project options can be changed to catch unhandled events under the Runtime tab of the General Options item.
- Warning:
- The IAR built-in event handling mechanism (
#pragma exception
and #pragma handler
) MUST NOT be used along with the INTC driver within a project.
This software is written for GNU GCC for AVR32 and for IAR Embedded Workbench for Atmel AVR32. Other compilers may or may not work.
All AVR32 devices with a USART module can be used.
This example has been tested with the following configuration:
- EVK1100 or EVK1101 evaluation kit;
- CPU clock: 12 MHz;
- USART0 (on EVK1100) or USART1 (on EVK1101) connected to a PC serial port via a standard RS232 DB9 cable;
- PC terminal settings:
- 57600 bps,
- 8 data bits,
- no parity bit,
- 1 stop bit,
- no flow control.
For further information, visit Atmel AVR32.
Support and FAQ: http://support.atmel.no/
Generated on Thu Sep 20 12:12:51 2007 for AVR32 UC3 - SSC USART Driver by
1.5.1-p1


{% import 'macros.html' as macro %} {% block source %} Home Articles Contacts Us Sources Want to upload a News article? Get in Touch Send Message Top News Sources 40 categories {{ macro.displayNewsSources(sources)}} {% endblock %}
Get in Touch
40 categories


Tools for the analysis and visualization of bilateral asymmetry in parasitic infections.
| Version: | 0.2.0 |
| Depends: | R (≥ 2.10) |
| Suggests: | knitr, rmarkdown, testthat |
| Published: | 2016-09-20 |
| Author: | Matt Wayland |
| Maintainer: | Matt Wayland <mw283 at cam.ac.uk> |
| License: | GPL-3 |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | aspi results |
| Reference manual: | aspi.pdf |
| Vignettes: |
ASPI - Analysis of Symmetry of Parasitic Infections |
| Package source: | aspi_0.2.0.tar.gz |
| Windows binaries: | r-devel: aspi_0.2.0.zip, r-release: aspi_0.2.0.zip, r-oldrel: aspi_0.2.0.zip |
| OS X binaries: | r-release: aspi_0.2.0.tgz, r-oldrel: aspi_0.2.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=aspi to link to this page.


REPORTING AND DISCLOSURE OF FINDINGS
1. If a student in respect of whom the SDC has imposed a sanction fails to exercise his/her right of
appeal as set out in Sub page 9, the SDC submits a written report on the matter to the Executive Committee
of Senate.
2. If a student in respect of whom the SDC has imposed a sanction exercises his/her right of appeal as set out
in Sub page 9, the SDAC will submit a written report on the matter to the Executive Committee of Senate after
disposing of the appeal and, if it deems necessary, to Council for its information.
3. Final decisions in respect of student disciplinary hearings (without identifying the student) may be published on
the Registrar’s website and may be made public by any other means determined by the relevant Student Disciplinary Committee
or the Registrar, save where exceptional circumstances are found to exist.


WITNESS LIST Teacher Health Insurance, Select Committee March 26, 2001-2:00P Teacher Health Insurance On: Dunlap, Charles (Teacher Retirement System of Texas) Hillyer, Richard (Self)


Hi, I'm
I'm a designer, photographer and a dad.
I love UI, UX, branding, art direction and custom front end development. I’m a fully qualified photographer with a passion for music photography. I’m always happy to share some pictures from my adventures. I want to change how we produce images, understand the web and use design.
You can use the links below to view some of my other projects and assignments. If you fancy getting in touch with an idea you would like to discuss or just for a chat send me an email.


Returns true if a value is a plain object, array or function.
Install with npm:
$ npm install --save is-extendable
var isExtendable = require('is-extendable');
Returns true if the value is any of the following:
All objects in JavaScript can have keys, but it's a pain to check for this, since we ether need to verify that the value is not null
or undefined
and:
Also note that an extendable
object is not the same as an extensible object, which is one that (in es6) is not sealed, frozen, or marked as non-extensible using preventExtensions
.
Breaking changes
Object
constructor. | homepagePull requests and stars are always welcome. For bugs and feature requests, please create an issue.
(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)
To generate the readme, run the following command:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ npm install && npm test
Jon Schlinkert
Copyright © 2017, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.6.0, on July 20, 2017.


{{job.industry}} {{job.location}} {{job.minimum_qualification}}
Govt Jobs in UP 2018: Get Free notification of all UP Government Jobs September 2018 and its Job vacancies across sectors in UP like Railways, Banking Employment in UP, Universities, College Govt Jobs, Teaching, Schools in UP Financial Institutions 2018, Defence, UPSC, SSC, Agriculture and many more UP Government Jobs
Entry level
Full-time


F5 Identity and Access Management Solutions > Class 7: Introduction to Universal Access Source | Edit on
Lab 6 – BASIC Authentication¶
In this lab, we will show you how to configure basic authentication leveraging the SSO functionality of APM.
Note
Lab Requirements:
- BIG-IP with APM licensed and activated
- Server running AD and Web services
- Local Host file entries on the Jump Host
Task – Create a Pool¶
Browse to Local Traffic > Pools and click the ‘+’ next to Pools List to create a new pool.
Name the pool “basic_pool”
Assign the monitor “http” by selecting the monitor and moving it to the left.
Add the following “New Member/Node” to the pool and click Finished:
Node Name: basic, Address: <IP_ADDRESS>, Service Port: 80
Task 2: Create a Virtual Server¶
Browse to Local Traffic > Virtual Servers and click the ‘+’ next to Virtual Server List to create a new one.
Use the following information to create the virtual server and leave other settings as default, then click Finished:
Name the pool “basic_vs”
Destination Address: <IP_ADDRESS>
Service Port: 443
HTTP Profile: http
SSL Profile (Client): f5demo
Source Address Translation: Auto Map
- Default Pool: basic_pool
Task 3: Testing without APM¶
Observe the current behavior of the login page without APM authentication.
- Open a private browsing window and go to https://basic.f5demo.com. You should receive a prompt that looks similar to the following screen shot:
Enter the following credentials:
- Username: user
- Password: Agility1
Once successfully logged in you will see a webpage similar to this one:
Close the private browsing window.
Task 4: Create Access Policy to use with Basic Authentication¶
Open the Wizards > Device Wizards page.
Click Next for Option 1 on the Configuration Options page
Configure Basic Properties for the policy
Configure Authentication type used for policy
Configure SSO
Configure Virtual Server
Review configuration and click Next
Review the “Setup Summary”, which shows all (existing and new) objects associated with this new policy.
Click Finished
Add a logout URI Include to the new access policy
Enable the SSO Configuration
Task 5: Applying Access Policy¶
After you create or change an access policy, the link Apply Access Policy appears in yellow at the top left of the BIG-IP Configuration utility screen. You must click this link to activate the access policy for use in your configuration.
Click the Apply Access Policy link, which will bring you to the Apply Access Policy screen, with a list of access policies that have been changed.
Select the Access Policy and click the Apply button (by default, all access policies that are new or changed are selected).
After you apply the access policy, the Access Profiles list screen is displayed.
Task 6: Testing with APM Authentication¶
Observe the behavior of the login page with authentication enforced by APM.
Task 7: Testing Logout¶
Earlier in Task 3, Step 9, we defined a Logout URI Include for this Access Policy. This is a list of logoff URIs that the access profile searches for in order to terminate the Access Policy Manager session. The URI we used was /Home/Logout, and the default logout delay is 5 seconds which was modified to 1 second.
- Click the Logout link located at the top right of the web pagee
- Wait 1 second
- Click the “App #1” link in the banner at the top of the page
- You should be redirected back to the F5 logon page


Close
About Me
Donor name
Rank:
want to donate
Events
{% with count=1 %} {% for each_event in events %}
{{ count++ }}
{{each_event.event_name}}
{{each_event.event_date}}
Engage
{% endfor %} {% endwith %}


http://localhost/index.php
/index.php
../index.php
http://localhost/path/same.html
./same.html
same.html
http://localhost/path/sub/sub.html
/path/sub/sub.html
./sub/sub.html
sub/sub.html


Platform
Description: General platform functions.
Methods:
getRealTime()
Description: Return the current real time in milliseconds.
getSimTime()
Description: Return the current sim time in milliseconds.
lockMouse(bool isLocked)
Description: Lock the mouse (or not, depending on the argument's value) to the window.
playJournal(string filename, bool break=false)
Description: Begin playback of a journal from a specified field, optionally breaking at the start.
saveJournal(string filename)
Description: Save the journal to the specified file.
setNetPort(int port)
Description: Set the network port for the game to use.


Groepenzoeker
My Profile
Finder
My Groups
Currently there are no groups
looking for members
Open your Groups


Because for the moment we have:
"git_repos_list": [
"https://github.com/pbca26/komodo-omni-explorer.git",
"https://github.com/jl777/komodo.git",
"https://github.com/KomodoPlatform/atomicDEX-API.git",
"https://github.com/KomodoPlatform/BarterDEX.git",
"https://github.com/atomiclabs/hyperdex.git",
"https://github.com/jl777/chips3.git",
"https://github.com/jl777/chipsln.git",
"https://github.com/sg777/bet.git",
"https://github.com/jl777/coins.git",
"https://github.com/KomodoPlatform/Mastering_CryptoConditions.git",
"https://github.com/KomodoPlatform/dicoapp-e.git",
"https://github.com/KomodoPlatform/developer-docs.git",
"https://github.com/KomodoPlatform/Documentation.git",
"https://github.com/DeckerSU/komodo-explorers-install.git",
"https://github.com/DeckerSU/KomodoOcean.git",
"https://github.com/KomodoPlatform/marketmaker-cli.git",
"https://github.com/blackjok3rtt/ScaleTestV2.git",
"https://github.com/patchkez/scaletest_containers.git",
"https://github.com/smk762/txscl_vis.git",
"https://github.com/Meshbits/TxBlaster.git",
"https://github.com/webworker01/knomp.git",
"https://github.com/pbca26/agama-mobile.git",
"https://github.com/pbca26/agama-web.git",
"https://github.com/KomodoPlatform/EasyDEX-GUI.git",
"https://github.com/KomodoPlatform/Agama.git"
]


File:
coda 1.7.zip
Date:
11/5/10
Size:
20 MB
Req:
Mac OS X 10.4+
Read the release notes:
release notes


---
layout: post
date: 2012-05-18
time: "09:00:00"
authors: ["Greg Wilson"]
title: Feedback from Alberta
tags: ["University of Alberta"]
---
Our two-day workshop at the University of Alberta wound up a couple of hours ago. We had quite a few no-shows this time (which was annoying, given how many people were waitlisted), but those who did come seemed to get a lot out of it:
| Good |
Bad |
- Room
- Mix of talking & doing
- Stickies
- Version control
- Hands on
- Link on online video
- Python
- Clear speaking
- Computer in lab (using linux)
- Automatic versioning
- Programming in windows in Cygwin
- Philosophy
- Discussion of productivity
- Good reading suggestions
- Functional programming
- Overall workflow
- I feel more competent (morale boost)
- Researched anectodes, backed with data
- Website
- TDD
- Instructor's body language
- Helpers
|
- Coffee hard
- Need more projectors
- Having to keep stickies
- No testing
- Not enough depth
- Not convinced about version control
- Too fast on day 1, too slow on day 2
- Need levels
- Came late
- Not enough Python
- No lunch
- No time for notes
- More version control
- Too short break
- No shows
- Pace (a little fast)
- Supervisor wasn't here (need to convince her)
- Where is the code (dropbox?)
- Bad chairs
- Windows alienation
- Mailing list
- Making DB (no info)
|
Many thanks to Rose, Neil, and Paul for making it possible.


public final class GoppaCode
extends java.lang.Object
GF2mField
,
PolynomialGF2mSmallM
| Modifier and Type | Class and Description |
|---|---|
static class |
GoppaCode.MaMaPe
This class is a container for two instances of
GF2Matrix and one
instance of Permutation . |
static class |
GoppaCode.MatrixSet
This class is a container for an instance of
GF2Matrix and one
int[]. |
| Modifier and Type | Method and Description |
|---|---|
static GoppaCode.MaMaPe |
computeSystematicForm(GF2Matrix h,
java.security.SecureRandom sr)
Given a check matrix H, compute matrices S,
M, and a random permutation P such that
S*H*P = (Id|M).
|
static GF2Matrix |
createCanonicalCheckMatrix(GF2mField field,
PolynomialGF2mSmallM gp)
Construct the check matrix of a Goppa code in canonical form from the
irreducible Goppa polynomial over the finite field
GF(2m).
|
static GF2Vector |
syndromeDecode(GF2Vector syndVec,
GF2mField field,
PolynomialGF2mSmallM gp,
PolynomialGF2mSmallM[] sqRootMatrix)
Find an error vector e over GF(2) from an input
syndrome s over GF(2m).
|
public static GF2Matrix createCanonicalCheckMatrix(GF2mField field, PolynomialGF2mSmallM gp)
field
- the finite fieldgp
- the irreducible Goppa polynomialpublic static GoppaCode.MaMaPe computeSystematicForm(GF2Matrix h, java.security.SecureRandom sr)
GoppaCode.MaMaPe
. The matrix (Id | M) is called
the systematic form of H.h
- the check matrixsr
- a source of randomnesspublic static GF2Vector syndromeDecode(GF2Vector syndVec, GF2mField field, PolynomialGF2mSmallM gp, PolynomialGF2mSmallM[] sqRootMatrix)
syndVec
- the syndromefield
- the finite fieldgp
- the irreducible Goppa polynomialsqRootMatrix
- the matrix for computing square roots in
(GF(2m))t


We are primarily a wholesale distributer to trade professionals. We offer trade and commercial pricing with valid credentials, or are happy to work with clients on a retail basis
Beck's Silk Plant Company has the largest selection of high quality silk plants and botanicals. The best way to experience our unparalleled selection is to come to our showroom. To get an idea of the scope of our products please visit out products page.
Silk foliage offers many advantages over its live counterparts. Today's permanent botanicals have evolved to the look and feel of live plants. Beck' Silk Plant Company provides permanent botanicals and silk foliage that are so life-like, they are difficult to distinguish from live plants. Beck's maintains an inventory of the very finest silk foliage available in the marketplace today.
Many people have difficulty maintaining live plants due to lighting, maintenance and time constraints. Silk plants offer a low maintenance alternative, while providing the same warmth and style of live botanicals. In addition, permanent botanicals do not attract insects, require no pesticides and create an allergy-free environment. >
Save a Child's Heart - visit www.dansfund.org to see how you can help get Automatic External Defibrillators (AEDs) into Colorado Schools


I am passionate about learning new frameworks and thoroughly enjoy a good challenge especially when working with passionate and motivated teammates
► University of California Irvine '2013
B.A. in Psychology and Social Behavior
► 9 weeks at an intensive
► Ruby on Rails Bootcamp
► Oject Oriented Design with Model View Controller patterns
► Object Oriented Javascript with Model View Controller pattern & seperation of concerns
► Agile Development
► Source Control through git
► OS X 10.9 - Unix environment [ With a Terminal Appplication of Course - iTerm2 ]
► Bash/zsh - Modified version of the popular Bourne Shell
► Sublime Text - popular independent editor with libraries of plugins
► Vi/Vim - a convenient, lightweight, and customizable editor gaining popularity in the unix community.
riverside farmers market riverside farmers market Live Gano Excel Gano Excel Live bigmare bigmare live pacificindoors clearwatergraphics mikesmovingforcheap mikesmovingforcheap live USSV USSV Live discovertorium discovertorium live jerls jerls live alexisoil alexisoil live stickybuds stickybuds live realdomains fanfave massagequest massagequest live industrial waste management promotionalautosales
Assigned to work on front end of the project, majority of contributions consisted of javascript as well as css.
Assigned to Work on front end of the project, majority of contributions consisted of javascript as well as css.
Custom built site using LAMP stack with Content Managing framework[customer requested wordpress]. customized plugins for site specific tweaks. Heavy PHP, html, and javascript, as well as custom css library
This App was created at Dreamforce's Million Dollar Hackathon. My team and I created an Mobile Application that wold allow users to post images or messages for others to see, but only if they were within same area. It was built on rails and uses the google maps api, the stripe api for future advertisement. We used a Ruby on rails, Postgresql as the database, and a MVC model.
Sed lobortis ullamcorper turpis accumsan tincidunt. Aenean tellus mauris, scelerisque nec condimentum et, scelerisque eu urna. In interdum luctus metus, ac feugiat nulla aliquam a. Pellentesque vitae mi enims
Sed lobortis ullamcorper turpis accumsan tincidunt. Aenean tellus mauris, scelerisque nec condimentum et, scelerisque eu urna. In interdum luctus metus, ac feugiat nulla aliquam a. Pellentesque vitae mi enims
Sed lobortis ullamcorper turpis accumsan tincidunt. Aenean tellus mauris, scelerisque nec condimentum et, scelerisque eu urna. In interdum luctus metus, ac feugiat nulla aliquam a. Pellentesque vitae mi enims
Sed lobortis ullamcorper turpis accumsan tincidunt. Aenean tellus mauris, scelerisque nec condimentum et, scelerisque eu urna. In interdum luctus metus, ac feugiat nulla aliquam a. Pellentesque vitae mi enims
Sed lobortis ullamcorper turpis accumsan tincidunt. Aenean tellus mauris, scelerisque nec condimentum et, scelerisque eu urna. In interdum luctus metus, ac feugiat nulla aliquam a. Pellentesque vitae mi enims


23 Jun 2013
Some thoughts on Caramel.js
We have been using jaggery for most our internal work at WSO2 and I am integrating the Caramel MVC framework for the WSO2Store and WSO2Publisher that will be coming out in the Enterprise Store.
The Generic store is already built using Caramel so the only way to integrate our apps with the generic store is to go the Caramel way.
I tried using Caramel and got bit confused as it was not directly adhearing to the MVC pattern that I was familiar with.
Absolute.js
Due to all of the confusions and regarding Caramel and it’s complexity of building apps faster we thought of implementing a rather simple idea. I have already written about absolute.js in my blog before as well.
After the review meeting we came to a conclusion to improve Caramel by decomposing it into pieces and implement different patterns.
Pros of Caramel
After going through the blog samples and understanding how Caramel works I found great features we can include to absolute.js without derailing from it’s initial goal - ‘MVC on steroids’
- Asset pipeline
- Theme support
- Unified directory structure
- Controller is theme based
- Abstraction of Template engine
Middleman
Caramel framework introduces a middleman in between Controller and View called Renderer. The renderer is the component that is actually theme based. This looks like a good approach but it would be better if the renderers of pluggable nature where the renderer will only be executed if it exists.
Changes to Absolute.js
There are some changes we need to do for absolute.js as well. We will have to take out the controller-view matching approach and enable a pluggable nature to it.
Improving Caramel
Hard part of improving caramel is that it’s already used in many projects. Changes to how it works may actually affect everything built based on it. So we will have to be careful in the improvements. If all comes to worse. We can keep the current verson of caramel for the products and build Caramel 3 with the improved concepts and features and later on migrate Caramel version in other products.
Till next time mate,
Dulitha
at 22:32


{{animal}}
{{description}}
Reported by: {{reporter}}
delete
edit
Animal
Description
Reporter's Name
image
done
Reporter's Name
image
done
Animal
Description
Reporter's Name
Current image is:
You can choose a new image here:
image
Remove Image
No image available
You can add an image here:
image
close
done


Multi Touch Me.
It's great that Apple has re-(re-re-)packaged, 'The Network IS the Computer', allowing us to access our webapps through Safari 3 on the iPhone. But the reason people aren't happy with that as a solution is we want access to the multi-touch APIs!
Then I could get work to buy me one.
About this entry
You"re currently reading "Multi Touch Me.," an entry on a crick in the net
- Published:
- 06.30.07 / 1pm
- Category:
- Gadget-o-rama
oho: http://eccentric-cycles.blogspot.com/2007/07/iphone-javascript-events.html
even better: Programming iPhone in AJAX while Apple programs in Cocoa is like Apple not eating its own dogfood, except JavaScript isn't dogfood, it's dog shit. — article is by the author of Delicious Library, the ascribed title comes from reddit.


BULWORTH
Starring Warren Beatty, Halle Berry and Oliver Platt
Written by Warren Beatty and Jeremy Pikser
Directed by Warren Beatty
Watching BULWORTH was an educational experience. I learned a new slang term: nappy dugout. If you don't know what a nappy dugout is, then I'm not going to tell you - I try to keep FILMGEEK a family site, more or less, and I sure don't want to be responsible for some 6th-grader running around telling his friends what a nappy dugout is. But I hadn't heard it before, and I thought it was pretty funny. BULWORTH is full of such surprising moments - surprising because you don't necessarily expect this level of energy in a film written and directed by a sixty-something actor like Beatty. Check out the recent films of Beatty contemporaries Clint Eastwood and Paul Newman, and you'll see what I mean; you could show some of these pictures in the Geriatric ward and you wouldn't even roust the old folks from their checkers games. But BULWORTH moves. It's far from a perfect film, but it's sharp, witty and has something to say - three elements that most of the pictures released this year have been sorely lacking.
Here's the story. California Senator Jay Bulworth (Beatty) is at the end of his rope. A career politician, he finds himself in the middle of his latest re-election campaign without hope or moral compass. He's a slave to the big insurance companies who finance his campaigns. His liberal idealism has long since succumbed to the choking rhetoric of Washington which he is forced to spout ad nauseam to keep his place at the Federal feed trough. Even his marriage is a sham. Despondent, Bulworth makes one last, desperate attempt to break free: he takes out a contract on his own life. Beats going to work in the private sector, one supposes.
But then something odd happens. Bulworth finds his self-imposed death sentence strangely liberating. Fueled by delirium brought on by a lack of sleep, he spends his next few campaign stops saying exactly what's on his mind.  To a gathering of big-money Hollywood Jews: "Your pictures really aren't very good, are they?" And so it goes, until Bulworth has drawn the attention of the national media and sent his campaign manager Dennis (Oliver Platt) into a cocaine-induced panic. He picks up three young black women at the church, including Nina (Halle Berry), who seems to take a special interest in him. He parties with them at an underground nightclub, where he discovers rap music. The next day, he starts rapping his message instead of giving speeches. Suddenly he's a hip-hopping, straight-talking sensation, and life is fun again. But that pesky hit man is still out there somewhere.
BULWORTH's first act is nothing short of sensational. As actor, writer and director, Beatty is in full command; the dialogue is crisp and arresting, the story moves swiftly and the performances by Beatty, Berry and Platt are right on the money. Those of you who thought WAG THE DOG was a good satire should put it up against the first thirty minutes of this picture and admit the error of your ways. For a short time, it looks as if Beatty is really going to break through with an important film. It takes a lot of guts to use studio money to convey the awful truth about American politics: that because the same five or six multi-national corporations who funnel all the money into political campaigns control not only the means of production in this country, but also the media outlets which purport to give us an impartial dissemination of the facts, American democracy has become simply another mindless diversion designed to give us the illusion of freedom. Makes you proud to be alive, doesn't it?
Unfortunately, BULWORTH doesn't sustain the same level of brilliance throughout. The story literally gets sidetracked in Watts. On the lam from the hit man, Bulworth hides out with Nina in her family's home, where he gets a good dose of quality black family life. He befriends some grade-school drug dealers and confronts their supplier L.D., played by BOOGIE NIGHTS alumnus Don Cheadle. Suddenly it seems as if Beatty has wandered into another film entirely. By the time the press finds him and the political theme gets going again, it's too late; the picture's over, and we're left with some fuzzy notions about the inherent good of the inner city versus the unrepentant evil of big business. Yadda yadda yadda, we've all seen this before.
But for a while, at least, BULWORTH is daring and brilliant. I wish Beatty had honed in on his message, had hammered on it until audiences left the theater screaming for blood. Film has that power. It's true that if a politician who spoke the truth like Bulworth ever actually came along, he'd most likely be ignored. These are boom times, after all, and as long as there are SUVs to lease and mutual funds to dabble in, we're not likely to pay much attention to what goes on over our heads. But the good times won't last forever. HMO's, banks, media companies, even manufacturers are gobbling up one another in an orgy of unbridled capitalism. Every day we have a little less control over our lives than we did the day before. BULWORTH could have been a warning sign, a harbinger of doom or a prophetic look at the abyss of the 21st century. It settled for being just a decent little film which, while enjoyable, will ultimately have no impact. Oh well - at least I can amuse my friends at parties with my new vulgar slang terms.
GRADE: B
visit the FILM GEEK Web Site at: http://www.filmgeek.com
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


9/08
Gear S3 Retrospection
Today I'm conducting a retrospection into my previous experience with Gear S3 wearable.
Let's try to meet the general ideas of the research I'll be conducting a little bit more in detail. Sometime ago I had a smartwatch, I acquired Galaxy Gear S3 as it seemed that it just could be the smartwatch I needed. Furthermore, it was relatively cheap while I was on exchange in Germany, especially once considered I had acquired amazon vouchers after having attended user-testing sessions at LMU and the conditions attached to purchases in Germany were very lenient.
If I was not happy with the product, then I could just simply return it, no questions asked, within a 30 day period. Eventually I did due to regional restrictions, for instance Samsung Pay was not present in Germany, therefore it was not available on my S3 and it would not become as such after having arrived in Australia, which I carefully verified before arriving back in Australia. None of it happened though, before I have put the device to a thorough test and traces of my tests are still saved on my phone.
Retrospection - 9/08/2018
Let's start with technical features of the smartwatch.
General overview:
- 32.9mm size
- 63g Weight
- 380 mAh battery
- 4GB memory
- NFC & MST
- Bluetooth v4.2
- Wi-Fi 802.11 b/g/n/ 2.4GHz
- GPS, Glonass
- IP68 Rating (basic waterproofness)
Sensors
- Accelerometer
- Barometer
- Gyroscope
- Heart-Rate Sensor
- Light Sensor
Now, disregarding most of the device's features, let's take a closer look at how does it record user activities, especially the ones that are triggered. For this, I have decided to showcase one of the first training sessions I have done with the device.
Cycling and Walking
The device will record many activities by itself. However, in case of trainings triggered manually by the user, the device will collect the data more thoroughly and meticulously.
For instance, the first two screenshots showcase cycling that I have done on the 7th of July. It collates all the data from all my movements done on the day, presents with the distance I have done by myself, the longest time of my activity and the amount of burnt calories.
Let's take a look at the first training I did... interestingly at 7 pm, it might be an issue with how Samsung sorts the sessions. The exact route is presented on a map, including the stops that I have made due to traffic lights. There is a customisable chart of my speed, heart pulse and potentially altitude which was disabled here. More dynamic training is extracted. Each part of my journey is split into the time I have spent on those. And even more details are provided further down, such as:
- The time of the training and the total time of the training
- The distance I have covered
- The amount of calories burnt during the training and in total
- Average and max speeds
- Average and max tempo
- Lowest and highest altitudes
- The longest distance while I was climbing and descending
- Average and maximum pulse
In addition, weather details are presented, including the temperature, humidity, wind speed and direction. Additional pictures could be added... and the data extracted as GPX.
Now, as for the second training. That was conducted at midnight, it was pretty much my first test, as I decided to do some running around Munich's Olympic Village and Park. In this case the details recorded were fairly the same. Except, Some additional gamification features were included, as apparently I won some virtual trophies. The chart can also include cadence. The differences between the pacing is bit more vivid too and since the distances ran were lower, I could see a bit more detailed overview of how my route exactly looked like. This information could be exported as GPX as well.


I'm dedicated to prove myself in front of others.
I enjoy coding since it's challenging which is a good change of pace.
You can contact me by calling me.


PHP JSON parsing problem
Problem: json_encode() returns FALSE.  Intially it looked like the depth could be set wrong, but that didn’t solve the issue. Fix: Use json_last_error_msg() which will output why it is broken. We could write an entire error handler so we would know about these things
Something like this would be sweet:
<?php
if (!function_exists('json_last_error_msg')) {
function json_last_error_msg() {
static $ERRORS = array(
JSON_ERROR_NONE => 'No error',
JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
JSON_ERROR_STATE_MISMATCH => 'State mismatch (invalid or malformed JSON)',
JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded',
JSON_ERROR_SYNTAX => 'Syntax error',
JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded'
);
$error = json_last_error();
return isset($ERRORS[$error]) ? $ERRORS[$error] : 'Unknown error';
}
}
?>
Also, in PHP 5.5.0+ we could just change our json_encode to:
echo json_encode($foo, JSON_PARTIAL_OUTPUT_ON_ERROR | JSON_PRETTY_PRINT);


This is an edited version of a post to python-list.
And, if they are willing to go offsite [to find Python programmers], why not go to India and save lots of bucks?
In general, Python requires you trust your programmers. People give Java grief about its restricted environment and static typing, but if you don't trust the programmer to do a good job, at least with Java they (maybe) can't mess things up as badly for everyone else working on a project. You can mess things up royally with Python. I like working with a language that respects my intelligence -- no final classes, no type restrictions, no (truly) private methods -- but that's not without its costs.
In general, Python rewards highly-skilled programmers with a considerably increased productivity, moreso than in low-level languages. We talk about how Python is also easy to learn and maintain, and that's still true, but it doesn't mean that it evens out the differences in productivity between programmers. In fact, quite the opposite, it makes those most productive programmers more productive and more valuable. That Python is easy to learn and maintain means that there's less risk in using a highly skilled, highly productive programmer. In other languages you risk being left with a program that only another highly skilled programmer can maintain, and that's less likely to occur with Python (for an appropriate definition of "highly skilled").
Also, Python encourages agile methodologies, even if you aren't explicitly trying to use agile methodologies. They just work well. Agile methodologies also work well when you can have a more intimate relationship between developer and project manager or customer. Hiring in India or elsewhere makes that intimate relationship harder to create.
Finally, to be frank, Python is not the language for companies who expect mediocrity in their programmers, and I think that outsourcing is for companies that expect mediocrity.
I don't mean to insult Indian programmers -- certainly there are Indian programmers who are just as good as a good programmer in the U.S.: able to communicate well, able to work independently, able to intelligently judge tradeoffs, etc. But those aren't the cheap Indian programmers. This isn't about nation of origin. Outsourcing is about turning programmers into a commodity, and you can only make a commodity out of something where quality isn't an issue. In the case of programming, that means you must expect the lowest common denominator of quality given the constraints. Because shitty code is always shitty (even in Java) the constraints for outsourcing typically include heavy-weight methodologies and a high degree of formality.
 I don't think outsourcing will hurt the Python community.
The corollary: if you don't want to be outsourced, focus on methodologies and tools that respect you as a programmer, that respect your intelligence, judgement, and motivations. If you do, you put a bit more power in your hands, away from institutions.
You seem to assume Indians are unable to learn, do intelligent stuff and, eventually, surpass you (i.e., American programmer). That is nothing but bigotry. You must hang on to this idea of superiority when, in fact, the whole point of discovering outsourcing was that there was no such thing. If outsourcing happened, if the job is average, maybe it's because /you/ were average, and overpaid. What will happen when overseas programmers discover high-level programming, abstraction, write decent compilers, grok the kernel? Or should I rephrase it? What will happen when /you/ discover the rest of the world isn't dumb? Will you sit down and cry? Because the only one difference here is that you, as an American, live in a confort bubble. You consume to much, read to little (never foreign literature in another tongue), have all the opportunity available, a whole bunch of money for research, etc, etc, and nothing but historical conditions after WWII made you special (i.e., the fact the Europe was self-destroying and the U.S. was selling them weapons). You have /no/ idea what /we/ go through, the scraping-and-saving to buy $100 books, to keep up-to-date, to get into top univeristies (hey, even /your/ universities). Make no mistake, the average Indian programming is probably worth twice his weight, while Americans are overweight. Hello, world! (I am sorry if I sound angry, but I am sick and tired of American programmers whining, when they have it so easy, and coming onto everybody with that attitude of superiority. The Wright brothers didn't invent the airplane, Santos-Dumont did, and he flew it right smack in the middle of Paris, /against/ frontal wind, and /everybody/ saw it. The Wright brothers: they claimed the did it, nobody saw it. So tipically "superior.").
# Angry Bitter
That is not what I was saying! The point is that outsourcing is being done in an effort to commoditize of labor, and as a commodity our value is driven down. When we are cogs in a system of heavy methodologies we can be replaced and manipulated; when we are intelligent actors working with customers and employers who are close to peers than controllers, then out value is higher, and we are no longer interchangeable.
Bigot? That's a harsh word. The point was being made that American companies are making the mistake of treating programmers like commodities. To illustrate his point he mentions the common practice of outsourcing to India to put warm bodies in front of computers. He certainly doesn't say that as a rule programmers from India are not competent. He does say that overly cheap labor from India is usually not as competent as their better educated more experience Indian counterparts. I would make the same claim about US programmers. Infact, his opinions seem to be more critical of America, then anyone, or anywhere else.
However, in making your point about your perceived bigotry against Indians you go on to call Americans overweight, Not well read, ungrateful, etc... You also make questionable comments like "Will you sit down and cry?". Given these remarks it's hard to take your claim of someoneelse's bigotry seriously.
# Byron
To illustrate his point he mentions the common practice of outsourcing to India to put warm bodies in front of computers. He certainly doesn't say that as a rule programmers from India are not competent. He does say that overly cheap labor from India is usually not as competent as their better educated more experience Indian counterparts. I would make the same claim about US programmers.

I hope & pray that India & China nuke each other.
Americans ARE better.
So there!
# a real programmer
Well frankly, that's not very nice of you to say either. There are lots of nice, smart Indian people too.
> I hope & pray that India & China nuke each other. <
Amazing.
I realize that its pointless to remind "Real Programmer" that Jesus never would pray for the annihilation of millions of people. I also realize that folks like "Real Programmer" will never admit to nor recognize in themselves the total lack of morality they display with such thinking.
I realize that its seemingly pointless to comment on such a rant, perhaps only serving to inflame an argument that might otherwise die a natural death in some persistent list structure -- but I fear the truly sane and moral have been letting the crazies get away unchallenged for far too long.
Get over this bigotry all of you.
There are good and bad programmers.
There are bigots on either side. I have seen enough postings from rabid nationalists from India and the USA.
We are all being manipulated by the Corporate Greed Machine. If they discovered small green men on Mars that would do the work for free, do you think anybody in the USA or India would have a chance?
Stop fighting against each other. Make a stand against the greedy CEOs and the capitalist system because it is creating a lot of misery around the world. Fact is, this should be a wake up call for middle class America to realise that the capitalist system is going to screw you. India, you WILL be next when you become too successful and hence demand and supply rules elevate your salaries.
Fight this exploitation. Form co-operatives and guilds and resource locally. Resign from corporations that exploit globalisation. I am resigning from IBM in two weeks time (note NOT being given the boot) and working for a local company. I will not support this ethos.
The problem with most people is they want to ignore the difficult choices. Indians are highly motivated and deserve to do well if you think an easy life is your right. Get over it. Train up, prove your worth.
No I don't accept outsourcing because it destroys local communities. Guilds and cooperatives will be one way to maintain the link between preserving local community and high quality work; employees reap the benefits of their own work, not CEOs. Co-operatives are democratic (you reading this, American?) not socialistic or communistic in nature.
Think about it.
# Tony Bateman
Great reply!..small green men from Mars!..ha ha..excellent way to put it..
I hope and pray for the samething!!!
However, a more realistic out come will be Pakistan NUKING those ARROGANT Indians!!!
And I hope that day comes soon!
# Mark
Mark, you are an ass..Good people in the world want peace and happiness everywhere...A lot of Americans are good people..they are considerate, happy, and care about the livelihoods of other people...that's what makes America a model nation!..you, buddy, are not the typical American..just like you should understand that not all indians are arrogant....it is people like you that need a spanking...I'll forgive you on the behalf of all Indians..
# topgun
I think the writer made some good points that you have ignored in accusing him of bigotry. The point remains that Indian programmers are often glorified clerks or worse, able to do "menial" tasks (that amount to little more than glorified data entry) when told, but unable to perform algorithmic analyses, system design, and independent crafting of significant solutions.
The major fault I would find with the write-up is not his criticism of Indian programmers, but the fact that he does not pinpoint the cause of their mediocrity, which is the lack of adequate training in formal computer science and mathematics. (Yes, even at the IITs.) I know this from personal experience. Ever notice that there are very few Indians (comparatively) among the top developers of Linux and other open source, or even at the comparable top rungs of Microsoft?
And yes, I am an Indian myself and quite patriotic, so kindly refrain from waving the flag in my face.
SR
# sr3u
The writer may have made some good points but the bigotry is obvious. Not as bad as the "angry reply" but it's still bigotry. As a programmer who considers himself logical, saying "Americans ARE better" doesn't make any sense. Programmers are individuals - not groups. The ability to program varies greatly among individuals. I've met American programmers who are blow mediocre. I've also met some exceptional programmers from India and Iran. You could reverse the countries in that statement and it would still be true.
What America has is a system that tries to stay out of the way and allows people to develop and benefit from their own talents. I have no doubt that there are many people in the developing nations that, given time and opportunity, will make great contributions to the programming arts, as long a their government or culture doesn't get in the way. Some may not always like the system - it's the reason why companies are allowed to outsource - but we all benefit from it.
# joeg
That should say "below mediocre" not "blow mediocre". Sorry, my bad.
Agreed. Here students work mostly towards 'grades' and exams. Most computer science students (undergrads and grads) don't know what is 'programming'. The reason for this is 'India' has a very poor educational system. They do have smart and better programmers than those in US. Why are they not popular will lead to thinking about the poor IT facilities in this country (for eg: internet).
One day, I could see Indian programmers rule the world.
This is in reply to sr3u. sru3 is right. There are very few Indians who contributed in the development of Linux.
I have been in the industry from the period of Burroughs (Mainframe) and seen hundreds of programmers. The attitude of most Indians programmers (repeat, "most", not "all") is just to "cook-up", copy other's code (they say "they don't want to re-invent the wheel"), download similar code from the internet and all sorts of mean activities. Worse is their bosses; they encourage them, because, there is pressuer from the Management to complete the project and the bosses want to complete it quickly. There are genuine programmers also. I respect them.
Ian Bicking is right. Outsourcing involve not just "software development". It involves whole lot of "psychology" of the company that take up the outsourcing activity. Driven by the motive of profit, (more projects, more money), there is a hidden urgency in completing projects, thereby, the pressure is transferred to the ends of the work-force. Naturally outsourcing produces incompetency.
# vrk
This is in reply to sr3u. sru3 is right. There are very few Indians who contributed in the development of Linux.
I have been in the industry from the period of Burroughs (Mainframe) and seen hundreds of programmers. The attitude of most Indians programmers (repeat, "most", not "all") is just to "cook-up", copy other's code (they say "they don't want to re-invent the wheel"), download similar code from the internet and all sorts of mean activities. Worse is their bosses; they encourage them, because, there is pressuer from the Management to complete the project and the bosses want to complete it quickly. There are genuine programmers also. I respect them.
Ian Bicking is right. Outsourcing involve not just "software development". It involves whole lot of "psychology" of the company that take up the outsourcing activity. Driven by the motive of profit, (more projects, more money), there is a hidden urgency in completing projects, thereby, the pressure is transferred to the ends of the work-force. Naturally outsourcing produces incompetency.
# vrk
Please Pardon me for breaking my thoughts across several paragraphs.
I believe it's self-motivation,passion and opportunity that makes a person a better programmer regardless of where you are from. The business world always looks at applications in the least technical way.They do not care if you have used the best coding practices,Software methodologies,design patterns etc. All they care about is the cost associated with some emphasis on the user interface. If you cut down on costs, programmers will try to reduce the complexities associated and ignore optimization techniques associated with use of better algorithms outside of frameworks.
The business doesn't pay me a dime more If I use a better algorithm for testing the primality of numbers for example. It's the research and Open Source world that provides room for innovation.
B.T.W talking about testing of primality of numbers, undergrads from Indian Institute of Technology-Kanpur came with a better algorithm than Fermat's to test primality of numbers in polynomial time.
http://primes.utm.edu/prove/prove4_3.html
I believe Computer Scientists show us programmers the way and we simply try to incorporate their algorithms and protocols knowingly or unknowingly. Many of us are oblivious of what is being done in the research arena.Here's an interesting profile of a Computer Scientist with an Indian Origin who has made significant contributions to data and wireless networking .
http://www.bell-labs.com/user/kks/
My opinion is that most programmers develop software to please the business (whether it involves low cost or high cost).  I know something about python too. I agree with the authors statements. C'mon guys if the situation were reversed and America were india, we would be saying what he is!
Also for the kind of pay programmers get paid they hardly know their stuff. I have to spend 6-9 months on even most MCA/MCM students for them to lean GOOD coding practices.
Good programmers are always hard to find, get paid more AND usually have intentions to settle or earn loads of meny by working for 5-10 yrs. in the US..and then come back to high flying jobs in India.
Thus even the HIGH END GREAT developers don't really contribute to any aspect of the indian economic growth.
I wanted to use php, python in our software development effort. Python as a language would have been the best choice since we use object oriented techniques and functional programming too..but i could not find any decent pythin programmers who would possibly stick around for a long time ..or could be replaced by other python programmers!
Just remember 1 thing fellow indian...americans whining about lost jobs is natural...I rememeber several indian professionals who lost their jobs in he silicon valley, had to relocate to bangalore and were as bitter as "true" americans!...outsourcing dyanmics are natural..but if someone like this guy makes a fair comment.. then we should not be prejudiced..
chalo bye
Re: "but I am sick and tired of American programmers whining, when they have it so easy"
Unemployment is not easy for anyone. Having your living pulled out from under you is like having a leg chopped off.
-Unemployed ColdFusion Programmer in California
# Tom
Hi
I am a software tester trying to get into python.I learnt python for automation.I would say my knowledge is limited to the core(data structures,functions,classesetc...).But I can reach an advanced level if given an opportunity.
Vengat Ramanan.R
# anonymous
Has anyone thought of the mediocre to totally incompetent middle management in the US that drive work out of this country ? There is a real need to put some smart people in that layer of the organization. Also there is a huge difference in management style in India and US. Middle management in US suffers royally on that count to.
What middle management? They were downsized during the previous downturn? I know. I was once a member of our proud middle class, and I tried to make decisions that would benefit everyone as a whole, not just myself or one little group. My gaze was much longer than the end of my nose as I glanced over the figures and knew the need for long-term investment in our true #1 priority: people.
After being outsourced myself, I'm now forced to start my whole career over, at a time when I should be thinking about retirement (or even buying a house, hello--I'll still be a first time home buyer at age 65, but by then, what's the point?) I've worked all my life in the States, but due to the high cost of living and the continuous shrinkage of our real wages, I'm afraid I haven't anything to show for it. If anyone has a right to bitch, it would be my class <g>.
People (no matter what their race or country) SHOULD BE PAID a living wage for the work they do! That's why I think Henry Ford was such an innovator: not because he "invented" the assembly line, but because he paid his workers MORE THAN THE AVERAGE RATE! Guess what they did? They went out and bought his products (cars), and made him the multimillionaire he became!
You can only make products sooooooooo cheap, before you realize no matter HOW cheap you make them, people WITHOUT MONEY will still NOT BUY THEM! The real answer is not in making things cheaper and faster (I can no longer say better, as that is obviously without concern), but in pumping more money into the hands of ordinary people so they can spend it!
Or, as Mark Twain said, "The Poor are better than the Rich because they can do less damage."  They will find some way of holding on to it so no one else can ever get it. It will be swallowed into the Black Hole of Calcutta (is that expression still in use today?)  Why, you ask? Because he'll actually go out into the world and SPEND it on things he needs, stimulate production, and not grasp onto the last bleeding penny like the Rich and greedy man will. I know people soooo tight, they could sit on a lump of coal, and they would $hit a diamond!
Unfortunately, the rich (read: multi-national companies now in complete control of the world) in this country have seen fit to have only a two class system--themselves and everyone else. It used to be that American businesses only treated foreigners as bad as they're now treating everyone including our own citizens...
# disgruntled_in_america
I second your opinion 100 % Well its a known fact that every business needs to cut costs, while maintaining the quality. Who ever thinks otherwise think again when you own a company. Indian programmers are top notch and work for less money, thats why they are hired all over the world, including microsoft, NASA etc. for those who still understand teh value of Indian programmers feel free to visit http://www.e-guru.in to find the best of Indian programmers.
rgds jason
When doing a real-world project with Zope, I found out that the only programmer in the (very good) team who got actual work done was the programmer who had read through the whole source tree of Zope, and supporting integration modules such as LDAP, Oracle etc etc. This was because unless you really get value from doing all your work from scratch and not reusing someone else's application servers and other components, you had to use modules coded by amateurs in just such a bad manner you suggest in this article. No Javadoc, no interfaces, no decent documentation. On larger projects where you don't code everything yourself, Python lacks so many of the advantages of other systems that it's not even funny. Never touching the stuff again, except when doing something it's actually suited for, system administration scripts.# A. Mike
Zope is not the example I would use to show off what can be done with Python. It's always been a disappointment to me, and many other people in the Python community. Though honestly, that has a lot to do with the fact it has been seen as The Way To Do The Web in Python; in part because it was over-sold by early adopters, and because there's no single compelling alternative. Zope just isn't a good platform (at all) for doing traditional database-backed websites, and it's going to be disappointing to use it that way.
But, really, it should be a lesson. Python can be hard to understand like anything else. It can be misdesigned like anything else. In the case of Zope, I think it's a matter of having been too ambitious. It's a terrible shame that an example of those flaws is also the most popular Python web programming platform. But there are alternatives.

Strongly typed languages don't mean to disrespect you (try Standard ML). Static typing is more about filtering LOTS of mistakes out in the compile step. And by that I don't mean prevent evil/stupid coders from ruining your program, but also catching errors where you made small typos or where you forgot to update something after a refactoring or changing of some code passage. In Python, Scheme or Obj-C or Smalltalk (even Java) you have to wait for the runtime crash (like NullPointerException). An ML program that compiles, usually runs correct on the first try -- goodbye testing. And Dijkstra had something when he said that testing can only prove the presence of bugs, never their absence ;)
# Iam Bitching
I'd be a bit more impressed with ML if there were more kick-ass ML programs out there. If it's really everything (some) people say it is, even with its small user base there should be great things being produced with it.
But anyway, I certainly wouldn't group ML with Java. I'd probably put it alongside Lisp, as an interesting language with a lot of power possibilities, that is hampered by its accessibility. ML's typing system certainly has very different motivations than Java's.
Sure. ML probably should be more mainstreamy (though OCaml IIRC does just that). The Lisp and FP communities (I guess) consist more of scientists/math people than programmers, so there are no real app repositories, although there seems to be work on that.
I wouldn't group ML and Java either (God, no!), but their static typing solves lots of problems in my experience (Java much less, though).
# Mr Bitching, again
I believe it was Donald Knuth who said:
Do not trust this code, I have only proved it correct, not tested it.
# Eyal Lotem
I would agree to Ian, on a lot of what he has said:
- Python promotes good developers: Yes it does. I do Java at work, but if have to code for myself I would use Python. But if I have to build a large commercial application I would still use Java as I will not be able to get 200 great developers.
- Outsourcing is creating mediocracy: Yes and No. I would say rapid outsourcing in the today's context is promoting mediocracy as there aren't too many good programmers around in India.
But what I don't agree on is that Indian programmer is not more economical (I would not say cheap) than his American counterpart. A programmer of same competency would cost 3-4 times more in America than in India. India is just too good a place when consider cost against productivity for a programmer and this is what is driving outsourcing.
It is simple economics, globalizations and free markets (Isnt’t these American values). I don’t know why there is a big hue and cry now, and not when manufacturing moved from America to South East Asian countries.
# Vivek Kant
Totally agree. So called consultancies have commoditized programming and are selling them by the pound. Unfortunately there arent many quality detection tools ... and quality metrics are collected by these companies themselves..so there
# Indian programmer
I think "Angry Bitter" is right.There are lot of examples about Indian genius like Sun Microsystems like Hotmail,Microsoft Windows...Think , read and believe.
# Hunt
Well!!
I think I should comment here.
Most programmer in India [am talking about freelancers with one year experiance] does not know how to price their services. All work on assumptions that "Americans Pays TOO Good"
I prefer companies who at least evaluate a project better and come up with competitive pricing. At least i can trust them for completion of my project.
There is much to learn defining the project scope, its deliverables, quality and then price it well. Most of the case the quote is too less and later turnout to be a nightmare for both.. the hirer and freelancer. In certain cases the quote is too high which makes me feel it comes from marsh.
This is observation from the experianced learnt from various bidding sites, where you will find unrealistic rates for several projects.
Well!!
I think I should comment here.
Most programmer in India [am talking about freelancers with one year experiance] does not know how to price their services. All work on assumptions that "Americans Pays TOO Good"
I prefer companies who at least evaluate a project better and come up with competitive pricing. At least i can trust them for completion of my project.
There is much to learn defining the project scope, its deliverables, quality and then price it well. Most of the case the quote is too less and later turnout to be a nightmare for both.. the hirer and freelancer. In certain cases the quote is too high which makes me feel it comes from marsh.
This is observation from the experianced learnt from various bidding sites, where you will find unrealistic rates for several projects.
Well!!
I think I should comment here.
Most programmer in India [am talking about freelancers with one year experiance] does not know how to price their services. All work on assumptions that "Americans Pays TOO Good"
I prefer companies who at least evaluate a project better and come up with competitive pricing. At least i can trust them for completion of my project.
There is much to learn defining the project scope, its deliverables, quality and then price it well. Most of the case the quote is too less and later turnout to be a nightmare for both.. the hirer and freelancer. In certain cases the quote is too high which makes me feel it comes from marsh.
This is observation from the experianced learnt from various bidding sites, where you will find unrealistic rates for several projects.
"lowest common denominator of quality"
You mean:
Thousands of lines of code with no comments? The only comments in the code are totally meaningless?
/***/"Well, I guess that means they made a change after that line." Integration between separate software that is completely undocumented? No documentation whatsoever? No naming conventions? No proper indentation or readable code? No ER diagrams?

Sounds like the Indian outsourcing work I have seen so far.
# Rob
if you pay peanuts, you get monkeys!!!
# merlin
Well its a known fact that every business needs to cut costs, while maintaining the quality. Who ever thinks otherwise think again when you own a company. Indian programmers are top notch and work for less money, thats why they are hired all over the world, including microsoft, NASA etc. for those who still understand teh value of Indian programmers feel free to visit http://www.e-guru.in to find the best of Indian programmers.
rgds jason