150-Year Anniversary: The Birth of College Football
by Mike FergusonIt’s not hard to make the argument that college football is the greatest sport in the world. There are the rivalries, the pageantry, the traditions and waking up on New Year’s Day thinking about bowl games.
This sport got it’s start on this day 150 years ago as Princeton — then known as New Jersey — took on Rutgers in New Brunswick, New Jersey for the first-ever college football game.
The contest on Nov. 6, 1869 would be unrecognizable by today’s standards. Only about 100 fans were in attendance as Rutgers won the game, six goals to four.
There were no formations at the time or forward passes. The purpose of the game was simply to kick the ball into the other team’s goal.
Carrying the football and forward passes were both illegal at the time. It wouldn’t be until 1875 that the game started to look more like its modern form with a line of scrimmage, ball-carriers and tackling.
The teams would meet again a week later as Princeton won the rematch, 8-0. In 1870, Columbia took part in football. After no games were played in 1871, five teams played in 1872 and 13 in 1873.
Today, there are 130 teams that play FBS football and 126 that make up FCS. That doesn’t include Division II, III and NAIA competition.
Over the years, college football has become an industry worth billions with TV money, multi-millionaire head coaches, live streaming and more access to games than ever before. It all started on this day a century and a half ago.
References
NCAA.com
College Football Forever is a college football history site and part of The Sports Daily network. Be sure to like College Football Forever on Facebook and follow College Football Forever on Twitter @ForeverCfb.


WA dark history inspiration for True West
by Tanya MacNaughtonLIKE many of his novels, author David Whish-Wilson’s latest crime fiction book True West started with a single image.
“In this case, the image was of 17-year-old Lee Southern fleeing Geraldton in a jerry-rigged tow-truck, driving south through the bush in wildflower season, headed for Perth with one eye over his shoulder in search of his pursuers,” Whish-Wilson, of Hamilton Hill, said.
“The development of my character, Lee Southern, coincided with a desire to explore a pretty unrepresented, in fiction at least, part of WA history: the rise of radical nationalism in the 1980s and how that played out in Perth’s streets and suburbs.
“Lee has had a very tough upbringing since his father is preparing him for the war that he believes is coming to Australia. The narrative explores, from the inside, his journey of learning what really lies at the heart of all the dogma and ritual.”
Using former WA neo-Nazi group Australian Nationalist Movement leader Jack van Tongeren’s memoirs as part of his research into this dark 1980s era, the Curtin University creative writing lecturer said he chose to write novels set in the recent past because the resonances of these periods were clearly visible today.
“It has been a sad thing to observe, worldwide, the rise over the past decade in particular of various strains of far-right extremism, and how in some countries these views have been incorporated into government policy as a way of garnering votes,” he said.
“I wrote True West with far-right extremism in mind to explore a time when the more extreme positions of some of these groups hadn’t yet been camouflaged and dressed-up to appeal to a broader public.”
Blessed with a tiny writing studio in Fremantle’s West End, with room for only a desk and swag on the floor, Whish-Wilson said he found Perth an endlessly fascinating place.
“True West is set partially in Fremantle, the Perth CBD, Nollamara, Subiaco, Mt Lawley and plenty of other locations that all possess their own distinct sense of identity,” he said.
“The Perth landscapes, light and big sky are all perfectly conducive to the kind of stories that I like to write.”
He already has plans for a new crime novel with Southern as the central character.


Copyright © 2007 Mochi Media, Inc.
Authors: Bob Ippolito (bob@mochimedia.com).
| iodevice_foldl/3 | |
| iodevice_foldl/4 | |
| iodevice_size/1 | |
| iodevice_stream/2 | |
| iodevice_stream/3 |
iodevice_foldl(F, Acc, IoDevice) -> any()
iodevice_foldl(F, Acc, IoDevice, BufferSize) -> any()
iodevice_size(IoDevice) -> any()
iodevice_stream(Callback, IoDevice) -> any()
iodevice_stream(Callback, IoDevice, BufferSize) -> any()
Generated by EDoc, May 23 2010, 22:45:55.


Before Change
libpath += "/"
print("LD_LIBRARY_PATH expected: " + libpath)
print("LD_LIBRARY_PATH current: " + os.environ.get("LD_LIBRARY_PATH"))
assert libpath == os.environ.get("LD_LIBRARY_PATH")
After Change
// The name of the environment variable used to define the path where the
// OS should search for dynamic libraries.
if sys.platform.startswith("aix"):
libpath_var_name = "LIBPATH"
else:
libpath_var_name = "LD_LIBRARY_PATH"
print("LD_LIBRARY_PATH expected: " + libpath)
libpath_from_env = os.environ.get(libpath_var_name)
print("LD_LIBRARY_PATH current: " + libpath_from_env)


years into the Eternal September, web pages have gotten big. Really big. According to the HTTP Archive's 2022 State of the Web Report, as of May 2022 the median page size was 2.2 MB, up from 669 KB in 2012. Contrast with 2002, when Trends in the Evolution of the Public Web by O'Neill et al reported average web-page sizes between 10-20 KB. Much of this growth can be attributed to the rise of multimedia: web-pages in the 90's were predominantly text, and web connections were still slow-enough in the early 2000's that video cost a significant amount of bandwidth. High speed internet connections are everywhere nowadays, so bandwidth is much less of a concern than it was in the day of 56k modems.
But let's not dwell on the bloat of the web. Instead, there's a silver lining: These days, creating eye-catching web pages is a breeze. Thanks to fantastic tools like Flask, Django, and Jekyll, crafting dynamic web pages has never been easier. Tools like Flask, Django, and Jekyll make it simple to dynamically render web pages, and have plugins to make things as fast as possible to get up and running. React and Redux allow for complex websites that remain performant. And on the horizon are the possibilities of Large Language Models, which can allow for rapid prototyping and content generation.
Some fun facts about this website:
- This site is hosted on GitHub pages.
- The first iteration of this site (way back in 2020) did actually use Jekyll!
- The header, footer, and navbar get included dynamically with JavaScript. This function could easily be expanded into a simple includes system if needed.
- The average page size on this website is ~120 KB, although 73 KB of this is the background image.
- The background image was hand painted by me! Imagine a crystal, delicately held together by interconnected wires. That's the vibe I wanted to capture.
I hope you have a delightful time exploring the content and appreciate the effort that went into its creation!


Genus Salmonella bacteria's Ultrastructure
Bacteria are microscopic single-celled organisms. Bacteria have a number of shapes, ranging from spheres to rods and spirals. Bacteria inhabit soil, water, acidic hot springs, radioactive waste, and the deep portions of Earth's crust. Following are few examples of various bacteria that we encounter in pur everyday life:
Bacterial cells have a cell wall made of polysaccharides and proteins.
They do not have a nucleus, but instead they have a circular chromosome of DNA. They may also have small extra circles of DNA called plasmids.
Some bacteria can carry out photosynthesis, but most bacteria feed from other organisms (living or dead).
Some bacteria are pathogens, for example Pneumococcus (which causes pneumonia).


Quick Links: Talk recordings · Conference program · Speaker list · Code of conduct
!!Con (pronounced "bang bang con") 2015 was two days of ten-minute talks (with lots of breaks, of course!) to celebrate the joyous, exciting, and surprising moments in programming. Check out our speaker lineup!
Where and when?
!!Con 2015 was held on Saturday, May 16 and Sunday, May 17, 2015 at the NYU MAGNET space, located at 2 MetroTech Roadway, 8th Floor, Brooklyn NY 11201.
MAGNET (short for "Media and Games Network") is part of the NYU Polytechnic School of Engineering at MetroTech Center in Brooklyn. It's a beautiful, studio-like space that's well suited for events like !!Con (see pictures!). We had enough space, and better A/V gear than ever before.
On Saturday, the fun began at 10:30 AM; on Sunday, at 9:45 AM. We provided breakfast, lunch, and snacks on both days, and talks ended at around 5:30 PM. Throughout each day, we had breaks for relaxation, refreshment, and unconferencing. See the full program!
!!Con was pay-what-you-want, but you must have had a ticket in order to attend. Our registration lottery closed on April 23. Thanks for your participation!
How cool is !!Con?
Judging by the reaction of the 2014 speakers and attendees, it's pretty cool:
"@bangbangcon was such an enormous highlight of my 2014 and I am SO THRILLED to hear that it's happening again." — @jczetta
"Having a hard time even deciding what my favorite !!Con talks were." — @silentbicycle
"I had so much fun at #bangbangcon—great concept for a conference and I met lots of rad people!"  — @daniellesucher
"Diverse and inspiring talks, friendly people and enlightening unconferencing. A weekend well spent!" — Scott Feeney
"Awesome time at #bangbangcon! Well-timed reminder of why I <3 programming." — @pkhuong
"@bangbangcon was amazing! Got to speak in public for the 1st time, met great people, learned a lot and got tons of new ideas!" — @rfkdr
"The best thing I did in 2014" — @mrb_bk
We hope !!Con 2015 was at least as good!
How do I get updates?
To find out about future !!Con events, follow @bangbangcon on Twitter, or sign up for our mailing list below! No spam, we promise!
Who organized all this?
Listed in increasing order of the MD5 hashes of our names: Maggie Zhou, Lindsey Kuper, Alex Clemmer, Julia Evans, Leo Franchi, and Erty Seidohl.
Logo design and additional web wrangling by Lea Albaugh. Danielle Sucher helped immensely with speaker outreach.
Accessibility
!!Con aimed to be an accessible conference. (However, we failed in that we didn't manage to update the venue details on our accessibility page after we had to change venues. Sorry, everyone.)
Code of Conduct
We had a code of conduct that all !!Con participants were required to observe.
Sponsors
!!Con 2015 wouldn't have been possible without the support of our fabulous sponsors!!


Mobile Full-stack Developer working on android and python RESTful Api's with a keen interest in Mobile Application development,Artificial Intelligence,ML.
Work related to development of android applications and tailor made releases of android AOSP for custom hardware.
Responsible for streamlining architecture,coding standards,build deployment,development and maintenance of flagship applications.
Freelance work on multiple projects,responsible for designing and coding app architecture from scratch with api specification design.
Development,Coding implementation of new functionality along with maintenance of existing Applications.
Involved with development of apps from scratch along with app architecture and development,coding implementation of new functionality along with maintenance of existing applications.
I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technology advancements in the Android, Machine Learning and python development.


New Blockchain Product for Loyalty to Accumulate USD 4.59 Billion
Leading merchants in many sectors are constantly introducing new loyalty programs for customers or enhancing current programs. According to the new market research report “Loyalty Management Market by Type of Solution”, the global loyalty program market is expected to reach 4.59 billion USD by 2021. However, in the battle for customer retention, the secret to loyalty program success is still eluding most merchants.
Leading market analysis report surprising statistics: 57% of loyalty program members do not know the balance of their reward accounts, 25% feel that earning rewards takes too much effort, 33% state difficulties with the conditions of earning rewards, and 36% claim that they do not have the chance to use their points before they expire.
The numbers paint a rather clear picture that most loyalty programs are not useful instruments for clients, thus not assisting with customer retention. And that directly translates into lost opportunities for merchants running loyalty campaigns.
Bonoox Solution
The advantages that blockchain can bring to the loyalty program market are numerous and are only now beginning to be fully appreciated by large retail chains. The Credits platform is a blockchain platform that offers an out-of-the-box, full-scale solution for loyalty programs, for merchants large and small.
The Bonoox Loyalty Platform is a blockchain-based system for implementing brand loyalty programs. The platform allows merchants to issue loyalty points in the form of tokens on the Credits blockchain for enhanced customer interaction. As a result, Bonoox loyalty program operators can attract new customers with unique features like the ability to track one’s loyalty balance and to exchange loyalty tokens from different merchants, thus generating traffic and increasing customer engagement. The new loyalty tokens earned can be shared among loyalty program participants and the platform allows the federation of multiple loyalty programs into one system.
Features and Advantages
Launching a loyalty program on Bonoox could not be simpler. The merchant creates his own digital asset, or token, on the Credits platform. The token acts as a loyalty point and an automatically-generated and customizable smart contract contains all of the relevant information about the terms and conditions of the program. The merchant can customize the default app or develop his own app for his customers, who can then make purchases via a QR-code, NFC, or RFID tags. The flexibility of the smart contracts allows the merchant to set any terms that he sees fit for his loyalty program.
The customer then creates an account through a mobile or web application and is assigned a unique identifier with public and private keys and a digital signature. The account creation process is very lightweight so that anyone can do it. Once purchases are made, the loyalty points are automatically distributed through the Credits platform and the customer can view his or her history in the blockchain.
One of the biggest advantages that blockchain brings to the loyalty program is the liquidity of loyalty points. Features for storing tokens in personal wallets, tracking one’s balance, and exchanging tokens bring the new value to the loyalty programs. Finally, a merchant’s customers can take the loyalty program seriously, more than just another card in the wallet.
In addition, Bonoox is a huge ecosystem with a wide spectrum of merchants on board, which allows them to explore audience cross-sharing between different business niches.
Bonoox Users
“Soom Hizar” Restaurant Chain Loyalty Program
- App: under development
- Amount of company users: 50,000 visitors per month on average
- SH Token
Fitness Loyalty Program
Sevastopol Hotel Loyalty Program
- App: under development
- Amount of company users: 5,000 visitors on average
- Token
The Bonoox loyalty program on the Credits platform has already been successfully applied by the Turkish Zoom Hizar restaurant chain, Sevastopol Hotel, Fitness chain, and more big customers are lining up to launch programs. To launch your business loyalty program on the blockchain –<EMAIL_ADDRESS>About the Author: The author of this article is Martin Goldmann, a freelance writer
with a background in journalism and publishing. He is a former managing editor of a
cryptocurrency news outlet. He has been involved in the cryptocurrency industry for
over two years and fully believes in its capacity to change the world.


SNOBOL4EXT(1) | CSNOBOL4B 2.2 | December 5, 2020
NAME
snobol4ext – CSNOBOL4 extensions
DESCRIPTION
This page describes extensions to the Bell Telephone Laboratories
portable implementation of SNOBOL4 in snobol4(1).
-
ARRAY/TABLE access
-
Multiple ARRAY and/or TABLE index operations may appear in a
row, without having to resort to use of the ELEMENT function, so
long as no intervening spaces (or line continuations) appear.
-
Case folding
-
By default the compiler folds identifiers and directives to upper
case, so programs can be entered in either case:
see snobol4(1),
-CASE in snobol4ctrl(1),
&CASE in snobol4key(1).
-
Control lines
-
The following additional “control lines” are implemented:
-CASE,
-COPY,
-BLOCKS/-NOBLOCKS,
-ERROR/-NOERRORS,
-EXECUTE/-NOEXECUTE,
-HIDE,
-INCLUDE,
-LINE:
See snobol4ctrl(1).
-
Functions
-
The following additional functions are implemented:
ATAN(),
BREAKX(),
CHAR(),
CHOP()
COS(),
DATE(),
DELETE(),
EXP(),
FILE(),
FILE_ABSPATH(),
FILE_ISDIR()
FREEZE(),
FUNCTION(),
HOST(),
IO_FINDUNIT()
LABEL(),
LEQ(),
LGE(),
LLE(),
LLT(),
LN(),
LNE(),
LOG(),
LPAD(),
ORD(),
RENAME(),
REVERSE(),
RPAD(),
RSORT(),
SET()
SETEXIT(),
SIN(),
SORT(),
SQRT(),
SSET(),
SUBSTR(),
TAN(),
THAW(),
VDIFFER():
see snobol4func(1).
-
Keywords
-
The following additional keywords are implemented:
&CASE,
&DIGITS,
&ERRTEXT
&FATAL,
&FATALLIMIT,
&FILE,
&GCTIME,
>RACE
&LASTFILE,
&LASTLINE,
&LCASE,
&LINE,
&MAXINT,
&PARM,
&PI,
&STEXEC,
&UCASE:
see snobol4key(1).
-
REAL numbers in INTEGER contexts
-
REAL numbers (or strings convertible to REAL) are accepted in
all contexts which previously required an INTEGER (or string
convertible to INTEGER). Contexts include TABLE(), ITEM(),
array indices, INPUT(), OUTPUT(), SET(), keyword values,
CHAR(), RPAD(), LPAD(), FIELD(), COLLECT(), DUMP(),
DUPL(), OPSYN(), SUBSTR() added in CSNOBOL4 0.99.44.
-
Scientific notation
-
REAL number syntax has been expanded to allow exponents of the
form: ANY('Ee') ('+' | '-' | ”) SPAN('0123456789') --
added in CSNOBOL4 0.98.
-
-
Exponential format reals need not contain a decimal point
added in CSNOBOL4 0.99.44.
-
SPITBOL extensions
-
For compatibility with SNOBOL4+, certain SPITBOL extensions can be
enabled and disabled using the -PLUSOPS directive. -PLUSOPS 0
or -PLUSOPS disables SPITBOL operators, while -PLUSOPS n
where n is a non-zero integer enables them. SPITBOL extensions are
enabled by default. Extensions controlled by PLUSOPS are as follows:
-
-
The SPITBOL scan (?) and assignment (=) operators have been added. A
pattern match can appear within an expression, and returns the matched
string as its value. Similarly assignment can appear in an
expression, and returns the assigned value. An assignment after a scan
(ie; STRING ? PATTERN = VALUE) performs a scan and replace.
Assignment is right associative, and has the lowest precedence, while
scan is left associative and has a precedence just higher than
assignment.
-
-
The SPITBOL selection/alternative construction can be used in any
expression. It consists of a comma separated list of expressions
inside parentheses. The expressions are evaluated until one succeeds,
and its value is returned. Abuse of this construction may result in
incomprehensible code.
-
-
The type NUMERIC with CONVERT() and the removal of leading
spaces from strings converted to numbers (implicitly or explicitly)
are also legal when SPITBOL extensions are enabled.
-
TERMINAL I/O variable
-
The variable TERMINAL is associated with the standard error file
descriptor for both input and output (replaces PUNCH variable).
-
TRACE() function type argument
-
The second argument of the TRACE() function can be abbreviated to a
single letter:
C (CALL),
F (FUNCTION),
K (KEYWORD),
L (LABEL),
R (RETURN), or
V (VALUE) as in Macro SPITBOL.
-
Keyword trace
-
TRACE() works on &STFCOUNT keyword added in CSNOBOL4 0.99.44.
-
Value TRACE() on pattern match assignments
-
variable changes by . and $ operators are visible via value trace.
BUGS
Add CSNOBOL4 version where each extension added?
Group the keywords, control lines, functions, operators together?
SEE ALSO
snobol4(1).
snobol4ctrl(1),
snobol4func(1),
snobol4key(1).


{% load img static %}
Size 50% 50% (does not distort).
Positon 5% 5%.
Positon from bottom and from right.
Positon out of bounds.
Múltiple overlays.
Fit to box and fill with blue.
Fit to box and fill with transparent blue.


WITNESS LIST Infrastructure Development and Security Committee October 28, 2004 - 1:00P Homeland Security ON: Ahlenius, Steve President/CEO (McAllen Chamber of Commerce), McAllen, TX Garza, Carlos Mayor Pro-Tem/ Chairman Bridge Board (City of McAllen and Anzalduas Bridge Board), McAllen, TX Henderson, Buck Manager- Public Drinking Water (Texas Commission on Environmental Quality), Austin, TX Mamula, Debbie Homeland Security Coordinator (Texas Commission on Environmental Quality), Austin, TX McCraw, Steven Governor's Homeland Security Director (Governor's Office), Austin, TX Nilakhe, Shashank State Entomologist (Texas Department of Agriculture), Austin, TX Ramon, George Bridge Director (City of McAllen- Bridge Board), Hidalgo, TX Registering, but not testifying: On: Martinez, Armando State Representative Elect District 39 (Firefighters and EMS), Weslaco, TX Transportation ON: Ahlenius, Steve President/CEO (McAllen Chamber of Commerce), McAllen, TX Garza, Carlos Mayor Pro-Tem/ Chairman Bridge Board (City of McAllen and Anzalduas Bridge Board), McAllen, TX Hinojosa, Gilberto County Judge (Cameron County), Brownsville, TX Ramon, George Bridge Director (City of McAllen- Bridge Director), Hidalgo, TX Saenz, Jr., Amadeo Asst. Director- Engineering Operations (TxDOT), Austin, TX Smith Sturgis, Wendy City Manager (Mayor of Edinburg Richard H. Garcia), Edinburg, TX


--- layout: master title: Mostly the ramblings of a mad man! excerpt: Whinnen.COM is a blog about random stuff n'at. ---


Menu
Logo
Richi
Student
Dashboard
☞
Admin
☞
Student
☞
Parents
Addmission
☞
New Student
☞
All Applicants
People
☞
Students
☞
Parents
Library
☞
Manage Books
☞
Book Categories
☞
Issue Book
☞
Return Book
☞
History
Files and Cabinets
☞
Cabinets
☞
Documents
Academic Planning
☞
Manage Subject
☞
Manage Grade
☞
Manage Classes
☞
Manage Sessions
☞
Manage Term
☞
Manage Time Table
☞
Manage Calender
☞
Attendance
Fees
☞
Add Fees Category
☞
Add Fee
☞
Make Payment
☞
Payment Report
Assessment
☞
Add New
☞
Record Sheet
☞
Comments
☞
Report Sheet
☞
Broad Sheet
☞
Promotion
Question Bank
☞
Add Question
☞
Manage Question
☞
Generate Text
☞
Manage Text
Store and Inventory
☞
Category
☞
Add Item
☞
Sales
☞
Inventory Report
Manage Hostel
☞
Block Details
☞
Rooms
☞
Allocation
☞
Request
☞
Transfer/Vacation
☞
Register
☞
Visitors
☞
Fees Collection
☞
Report
Year Book
☞
Manage Year
☞
Manage Contents
Finances
☞
Income
☞
Expenses
☞
Transactions
☞
Payment Notice
☞
Cash Flow
HR/Payroll
☞
Manage Staff
☞
Staff Payroll
☞
Staff PaySlip
Tools and Settings
☞
Rolels and privileges
☞
Manage Users
☞
Paymemt Gateway
☞
School Profile


Compare tray is full.


Implements methods for anticipating the emergence and eradication of infectious diseases from surveillance time series. Also provides support for computational experiments testing the performance of such methods.
| Version: | 0.4.0 |
| Depends: | R (≥ 3.2.1) |
| Imports: | stats |
| Suggests: | covr (≥ 3.0.0), earlywarnings (≥ 1.0.59), knitr (≥ 1.11), np (≥ 0.60.2), pomp (≥ 1.19), rmarkdown (≥ 0.9.2), testthat (≥ 0.11.0) |
| Published: | 2018-12-16 |
| Author: | Eamon O'Dea [aut, cre] |
| Maintainer: | Eamon O'Dea <odea35 at gmail.com> |
| BugReports: | https://github.com/e3bo/spaero/issues/ |
| License: | GPL-2 | GPL-3 | file LICENSE [expanded from: GPL (≥ 2) | file LICENSE] |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | spaero results |
| Reference manual: | spaero.pdf |
| Vignettes: |
Getting Started with spaero |
| Package source: | spaero_0.4.0.tar.gz |
| Windows binaries: | r-devel: spaero_0.3.0.zip, r-release: spaero_0.3.0.zip, r-oldrel: spaero_0.4.0.zip |
| OS X binaries: | r-release: spaero_0.4.0.tgz, r-oldrel: spaero_0.4.0.tgz |
| Old sources: | spaero archive |
Please use the canonical form https://CRAN.R-project.org/package=spaero to link to this page.


{% extends 'market/base.html' %} {% block title_block %} Registration-Step2 {% endblock %} {% block body_block %}
Firstname: *This field is required.
Lastname: *This field is required.
Phone Number: *This field is required.
Description:
Interest:


Kiwi.Plugins.Inventory.InventoryManager Class
A Kiwi Plugin GameObject that can manage basic inventory items and functionality.
By default, inventory items have an item description, and a count variable which keeps track of how many of the item you currently have. You can add other variables to inventory items with the addVariable method, for example you could add a cost value to each item.
Constructor
Kiwi.Plugins.Inventory.InventoryManager
()
Item Index
Methods
addVariable
-
id
-
defaultValue
A method that adds a new property to all existing items and the default item object.
Parameters:
-
id
StringThe name of the new property
-
defaultValue
Number, boolean, or stringThe starting value
changeItemCount
-
id
-
val
A method that changes a specific inventory item's count value
Parameters:
-
id
StringThe name of the inventory item
-
val
NumberThe value to change the count property by
changeItemVariable
-
id
-
varId
-
val
A method that changes a specific inventory item's property
Parameters:
-
id
StringThe name of the inventory item
-
varId
StringThe property to change
-
val
Number, boolean, or stringThe value to change the property by
createItem
-
id
A method that creates a new item type and mirrors the same variable names of existing items.
Parameters:
-
id
StringThe name of the new item type
outputInventory
()
public
Sends the current inventory list and associated variables and values to the console log.
returnItemCount
-
id
A method that returns a specific inventory item's count
Parameters:
-
id
StringThe name of the inventory item
Returns:
The returned value
returnItemDescription
-
id
A method that returns a specific inventory item's description
Parameters:
-
id
StringThe name of the inventory item
Returns:
The inventory item's description
returnItemVariable
-
id
-
varId
A method that returns a specific inventory item's property
Parameters:
-
id
StringThe name of the inventory item
-
varId
StringThe property to return
Returns:
The returned value
setItemCount
-
id
-
val
A method that sets a specific inventory item's count value
Parameters:
-
id
StringThe name of the inventory item
-
val
NumberThe value to set the count property to
setItemVariable
-
id
-
varId
-
val
A method that sets a specific inventory item's property
Parameters:
-
id
StringThe name of the inventory item
-
varId
StringThe property to change
-
val
Number, boolean, or stringThe value to change the property to


--- layout: post title: the problem with multiple selects and php tags: [] status: publish type: post published: true meta: {} ---
Forms are the primary method for users to interact with web applications and though there are a number of pitfalls associated with user interactions and forms, I want to specifically take a closer look at the way PHP behaves when dealing with a particular form element: the multiple select box. Listed below is a standard form and select input box
<form action="some_html.html" method="post" name="frm_test" id="frm_test" enctype="application/x-www-form-urlencoded">
<select name="test_select" id="test_select" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="Submit" name="btn_submit" id="btn_submit" value="Submit" />
</form>
This is a pretty standard form with a normal multiple select box. The user can select one or more options and then click on the submit button and pass these values to the server for processing. If you were using PHP as your server side scripting language, submitting this form with more than one option selected would result in only one value being passed to the application or script that you are calling. Why? Well it turns out that multiple select values are actually passed in an array and PHP needs to understand it as such (I may be really oversimplifying this, but what the hey this really works). The first thing you'll need to do is change the way you name your form variables for that type of form field, i.e. instead of using name="test_select" you'll need to refer to it as name="test_select[]". When this form field is submitted PHP will now know that the values are stored in an array. So here is the now amended form:
<form action="some_html.html" method="post" name="frm_test" id="frm_test" enctype="application/x-www-form-urlencoded">
<select name="test_select[]" id="test_select[]" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="Submit" name="btn_submit" id="btn_submit" value="Submit" />
</form>
Now this style of annotation may cause one or two errors with your existing JavaScripts. So as a work around just change the attribute name to the new naming convention as JavaScript references the id attribute (if provided, else I think it uses name). So here is how your form would now look:
<form action="some_html.html" method="post" name="frm_test" id="frm_test" enctype="application/x-www-form-urlencoded">
<select name="test_select[]" id="test_select" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="Submit" name="btn_submit" id="btn_submit" value="Submit" />
</form>
Ok so far so good, however there is another issue that you should be aware of and that is that values are only submitted if they have been selected. 9/10 this isn't an issue because your user will have selected them himself, but there was a case recently where I was transferring values from one select box to another and as a result these transferred values weren't selected and hence not submitted [note: I don't know if this is just a PHP specific issue as I haven't had a chance to test it with other application servers, but it's worth bearing in mind]. JavaScript to the rescue. First the amended form:
<form action="some_html.html" method="post" name="frm_test" id="frm_test" enctype="application/x-www-form-urlencoded" onSubmit="return allSelect();">
<select name="test_select[]" id="test_select" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="Submit" name="btn_submit" id="btn_submit" value="Submit" />
</form>
So when the form is submitted the function allSelect() is called (I found this script at: http://www.xs4all.nl/~ppk/js/transfer.html), which will select all the elements in a drop down box before submitting the form. And here is the code which you will need to include in your page (you will possibly need to modify the field name to match what you have called your multiple select box, i.e. modify the line List = document.forms[0].your_field_name;).
<script language="JavaScript1.2" type="text/javascript">
function allSelect()
{
List = document.forms[0].test_select;
if (List.length && List.options[0].value == 'temp') return;
for (i=0;i<List.length;i++)
{
List.options[i].selected = true;
}
}
</script>
Finally I'll quickly show you how to access the submitted variables from within a PHP script:
if (is_array(test_select[])) { // is this an array?
$selects = sizeof(test_select[]); // get the size of the submitted array (i.e. how many content items were submitted for the home page)
for ($i=0; $i<$selects; $i++) { // ok loop over it
echo($test_select[$i]."<br />"); // and output it to screen
}
}
In the first instance I am checking that this is actually an array and if the condition is satisfied I determine it's length. Now I can create a loop and output each value submitted by setting the array dimension to the current value of $i (e.g. first loop $i will be equal to 0 [or $test_select[0] ], second loop $i = 1, etc...). OK that's it, I hope this has helped in some way, shape or form...


--- layout: default --- {% assign posts_count = paginator.posts | size %}
I am a senior undergraduate at the Indian Institute of Technology, Kanpur interested in various aspects of Computer Science on the Theoretical side. I am also interested in application of algorithms for Social good. I was previously at Microsoft Research and was part of a project aimed at using Machine Learning for first response during disaster situations. I have worked to make AI algorithms for speech more accessible by developing models for accented speech generation. More of my recent work has been on the theoretical side where I have been exploring Algorithmic notions of Randomness and Ergodic systems. I have also been looking at optimization techniques that use Langevin dynamics and other processes for convex and non convex functions. I also have been looking at graph sparsification using Spectral Graph theory. For information checkout any of the recent blog posts or the projects page
Nothing is more practical than a good theory!


Poll Results
This page contains the results of all held polls. Polls can currently only be scheduled by being directly inserted into the database.
{{#polls.LIST}}
{{#IS_ACTIVE}}ACTIVE POLL - {{/IS_ACTIVE}}
{{^IS_ACTIVE}}POLL CONCLUDED - {{/IS_ACTIVE}}
{{{QUESTION}}} ({{TOTAL_VOTES}} votes; {{{USERS_VOTED_IN_POLL}}} users)
{{DATE_STARTED}} - {{DATE_ENDED}}
| Option |
Votes |
% of votes |
% of voters |
{{#OPTIONS}}
| {{TEXT}} |
{{VOTES}} |
{{PERCENTAGE_OF_ALL_VOTES_DISPLAY}} |
{{PERCENTAGE_OF_USERS_VOTES_DISPLAY}} |
{{/OPTIONS}}
{{/polls.LIST}}


I'm a senior at Tufts University studying Mechanical and Biomedical Engineering. I have worked on a range of projects, from molding and casting prosthetics, to building soft-robot prototypes for natural disaster relief, to making an assistive device for a boy with ectrodactyly. I love to create innovative products that enhance the daily lives of individuals, strengthen human resilience to injury, or combat climate change. Learn more:
ResumeModeled a kitchen tool, ball valve, gear box, and encoder mounting system.
Represented an automated production process for annealing sheet metal. Took and analyzed data sets.
Simulated movement of the Manduca worm using a second-order differential equation. Utilized heuristic methods in problem solving.
Decrypted encrypted files using a cipher. Created several different games.
Created an assistive device for a boy with ectrodactyly, educational toys for children, rotary encoders, mounting devices, and prototypes for several fabrication classes.
Fabricated 3D prototypes, gears for encoders, and various designs.
Developed prosthetic sockets and other prototypes.
Integrated a rotary encoder that I built into a system with an electromagnetic motor and clutch array.
For my senior design project, my group set out to develop an electronic generating device. Through user interviews with several bike-packers, (people who take trips for many miles) they expressed their frustrations with other alternatives for power sources on long rides with limited access to outlets. Our team set out to design a device that would use the energy generated as a bike wheel turns to power a wide variety of electronic devices. This would enable a bike packer to power their smart phone for navigation, or a bike light to stay safe. It is easy to install, cheap to manufacture, and moveable between different bikes.
In Dr. Barry Trimmer’s Neuromechanics and Biomimetics Lab at Tufts. I fabricated a soft robot prototype for natural disaster relief using an electromagnetic motor and clutch-array system. Through testing several different types of rotary encoders using an Arduino, I maximized efficiency and accuracy in the prototype. I created a precise CAD model of the robot with SolidWorks.
Transforming an educational staple into an engaging modern solution for every child! This project takes a "make your own track for marbles," and combines it with a piggy bank to make a transformable toy that can live on a magnetic refrigerator or wall. It contains a sleek track with several different 3D printed shaped pieces with press-fitted magnets on the back that can create as many track designs as can be imagined. There are multiple color choices for a laser cut transparent bank to make the toy a compact self-storing design. Saving has never been more exciting!
Allen is a seventh grade boy with ectrodactyly, or cleft-hand. He is an avid hockey player, but due to his hand's condition, he struggles with holding his hockey stick. In my Biomedical Engineering Design Process class, my classmates and I created Iron Hand, an assistive device to help Allen improve his grip for hockey and increase the use of his hand in daily life. Through brainstorming and iteration, we came up with a power paddle hand that could be 3D printed and easily strapped on his arm. We worked closely with Allen to test and create multiple iterations of our prototype to best meet his needs.
After conducting user needs surveys and receiving user experience data about kitchen tools, my group in Mechanical Design and Fabrication discovered that there was a need for a device that could transport food, but not take up too much space in a backpack once a student's lunch was over. Through background research on other products and comparisons, my group found that there was a gap in the market between flimsy ziplock bags and hard containers. We set out to produce multi-volumetric and collapsible Tupperware. We created a device that had a hard structure, but a soft interior so that one could easily collapse the Tupperware container while ensuring that the food inside wasn't compressed by other objects in the bag. The final product was fabricated on an industrial 3D printer and assembled using hand tools.


rnalysis.general¶
This module contains general-purpose functions, such as loading and saving files, removing table rows with no WBGene index, identifying type of input variables, etc. This module is used mainly by other modules.
Functions
|
checks whether an input file is a pandas DataFrame, a string that represent a path of a .csv file, a Path object of a .csv file, or an invalid input. |
|
remove all features which have less then ‘threshold’ reads per million in all conditions. |
|
loads a csv df into a pandas dataframe. |
|
Receives a dataframe of reads/counts and a dataframe of feature counts (ambiguous, no feature, not aligned, etc). |
|
receives an htcount filename and a feature filename, normalizes the htcount file to rpm, removes unindexed rows, and saves the file with the suffix ‘_rpm’. |
removes rows which have no WBGene index. |
|
|
save a pandas DataFrame to csv. |


Aurelia is a next generation framework that promotes good design patterns and practices. The next version of HTTP, HTTP/2 , may very well obsolete the necessity of creating bundles in the future, but we are not there just yet. Nobody likes to see a production application making 256 requests when loading. That's why Aurelia takes bundling very seriously. Read on to find out how to get your app bundled up for deploy using our new CLI.
Note: We've drastically improved our bundling technology. Please disregard this article and see the most up to date resources, found here .
Getting Started
Let's begin by creating some bundles. We will use our skeleton-navigation project as the basis of our work. First, we will run it as is and then we will bundle it to see the difference.
Note: We assume you have downloaded and set up the navigation skeleton, per these instructions .
Once the project is set up, run the following gulp task to view the application in the browser.
gulp serve
Up until now, we have not done any bundling. Let's say we decided to put our app into production as is. If we open the browser's dev tools we can see how many requests are being made by the application:
258! Yep, that's a scary picture for a production scenario. We want to minimize the number of requests. So, let's call Aurelia-CLI
to the rescue.
Before we bundle our app, we need to change the config.js
file a little bit to switch off building css
. Add buildCSS: false
in the config.js
, so that the file looks something like this:
System.config({
"transpiler": "babel",
"babelOptions": {
"optional": [
"es7.decorators",
"es7.classProperties",
"runtime"
]
},
"paths": {
"*": "dist/*.js",
"github:*": "jspm_packages/github/*.js",
"npm:*": "jspm_packages/npm/*.js"
},
"buildCSS": false
});
Note: We have discovered a possible bug in JSPM related to bundling CSS at the moment. We will investigate further and let you know as soon as we find a solution.
Installing Aurelia CLI
Bundling apps with the Aurelia CLI is a breeze. Let's begin by installing the CLI tool:
npm install -g aurelia-cli
For bundling, we need to install the tool locally to our project too. To do so cd
into the skeleton-navigation
project's root and run:
npm install aurelia-cli --save-dev
Bundling JavaScript
Now we are all set to create our first bundle. Before running our bundle command we will tell the cli
what to bundle. Let's add an aureliafile.js
in the root of our project and use the configuration bellow:
var aurelia = require('aurelia-cli');
aurelia.command('bundle', {
js: {
"dist/app-bundle": {
modules: [
'*',
'aurelia-bootstrapper',
'aurelia-http-client',
'aurelia-router',
'aurelia-animator-css',
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>],
options: {
inject: true,
minify: true
}
}
}
});
Next, let's run the command below from the shell:
aurelia bundle
Everything should go well and we now should have a file named app-bundle.js
in the dist
folder. As per the configuration in aureliafile
, we have inject
set to true. This injects the bundle into config.js
. As a result, the bundle will be automatically loaded when the application requests any of the modules included in the bundle. We also have minify
set to true
to reduce the size of our bundle.
Let's refresh our browser, keeping the dev tool open and see what happens.
Note: Make sure you clear the browser cache to see the result.
15 requests! That's a significant improvement over 256. But, we can make it even better. As we can see in the picture, we have some requests for templates like app.html
, nav-bar.html
etc. In skeleton-navigation we have only 5 templates. But, a non trivial application may have 100s or even more. So, we need a way to bundle them as well. Fortunately, Aurelia CLI
does have an answer to that too!
Bundling Templates
Let's teach the cli
which templates to bundle. We will add a template configuration section in aureliafile.js
. It should now look like this:
var aurelia = require('aurelia-cli');
aurelia.command('bundle', {
js: {
"dist/app-bundle": {
modules: [
'*',
'aurelia-bootstrapper',
'aurelia-http-client',
'aurelia-router',
'aurelia-animator-css',
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>],
options: {
inject: true,
minify: true
}
}
},
template: {
"dist/app-bundle": {
pattern: 'dist/*.html',
options: {
inject: true
}
}
}
});
Let's run aurelia bundle
again. This time a new file named app-bundle.html
should be created in the dist
folder. This bundle contains all our templates in a way that
aurelia-loader
understands. Since we have set inject
to true, a link
tag has been injected at the end of the body
in our index.html
.
Note: You may have to run
aurelia bundle --force
since we already have a JS bundle at this point in thedist
folder. The cli will not overwrite a created bundle normally.
Now, let's reload the application and see the request count again:
10 requests! That's better, isn't it?
That's how easy it is to create bundles with Aurelia CLI. Once the aureliafile.js
is in place with proper configuration, all we need to do is run aurelia bundle
.
Important Notes When Bundling Templates
- Glob patterns execute relative to
baseURL
- You can use patterns like
['dist/**/*.html', '!dist/about/*.html']
as well. - Bundle files gets created relative to
baseURL
. So, according to theaurelifile
configdist/app-bundle
will be created asbaseURL/dist/app-bundle.js
Important Notes When Bundling JS
- Unlike template bundling patterns, it does not glob files. Rather, it globs system.js
paths
like*/**
or*
. - Bundle config should include proper
module names
instead of file names. - Like templates in the bundle file, the JS bundle file also gets created relative to the
baseURL
.
More to Come...
Apart from bundling, the Aurelia CLI
has some other really cool tricks up its sleave. It can make your development time more pleasing and interesting. The CLI team is working really hard to create a tool that everyone loves. Tell us what you want, what you like or even dislike on our gitter channel and please raise CLI related issues
here
.
Thanks to the CLI team and especially Core Team Member Shuhel Ahmed for putting together this post!


Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
4.3.0 (compare) - 2019-08-29
Features
- feat: add preliminary support for lima (#227) (a96bb98).
4.2.0 (compare) - 2019-08-15
Bug Fixes
- fix: improve error handling (3e96065).
- fix: contract bytecode decoding function call in main (0fa8fd3).
Code Refactoring
- refactor: Imporove vm/abi detection (bb3fcf1).
- refactor: improve consistency of api calls (62472f5).
- refactor: improve reliability of the hashing submodule (777f0a7).
- refactor: move vm and abi retrieval to the node subm (9b2488b).
- refactor: remove legacy unused code (872cc02).
Features
- feat(contract): add ability to unpack a compiled contract (39d9f44).
- feat(ga): add support to generalized accounts (9e8c02c).
- feat(ga): detect ga account when signing from a node client (ae542b2).
- feat(state-channels): added settle method support (efd2ced).
- feat(state-channels): state channels ga awareness (42c233f).
- feat: add function to decode a compiled/encoded contract object (59afdaf).
- feat: add compiler v3.2.0 support (65759dc).
Docs
- docs: add documentation for ga in the docs folder
4.1.0 (compare)
Features
- refactor(scm): update compatibility range for node:3.0.1 - 5.0.0 (1ed1eb0).
- feature(compiler): Add compatibility with compiler 3.2.0 (7931924).
- feat(state-channels): added settle method support (efd2ced).
Know Issues
- State Channel API is incompatible with node version >= 4.0.0
4.0.0 (compare)
BREAKING CHANGES
- refactor(scm): update compatibility range for node 3.0.1 to 4.0.0 and compiler:3.1.0-4 (#214) (1e957d3).
- refactor(scm): update compatibility range for compiler from >=3.1.0 to < 4.0.0 (#214) (1e957d3).
- feat(fee): adjust the fee calculation for contract transactions (#212) (60aecbf).
- refactor: clean deprecated (#215) (ea0e73e).
- remove
--privte-key
from cli for accounts (use--secret-key
) - renamed api for
Account
:get_private_key()
toget_secret_key()
- remove
Account.from_private_public_key_strings
Bug Fixes
- fix(state-channels): remove execution round storage (3875a66).
- fix(state-channels): use kwargs instead of a named dict (cfb6853).
- fix(state-channels): use kwargs instead of a named dict (311d119).
Features
- feat(state-channels): add update event to enum (ad64584).
- feat(state-channels): add update event to enum (cb3d8d7).
- feat(state-channels): added a method to trigger transfer update (fcf5761).
- feat(state-channels): added a method to trigger transfer update (712ee82). Related issues/PRs: #186
- feat(state-channels): added contract related methods contract incl. poi (244bfc8). Related issues/PRs: #153
- feat(state-channels): added contract support incl. poi (635ae9f).
- feat(state-channels): added method to create a contract from on-chain contract (77724e6).
- feat(state-channels): added method to create contract from on-chain contract (6499426).
- feat(state-channels): added method to create contract from on-chain contract (b3b737e).
- feat(state-channels): event handler for state-channel events incl. messages and error (23004a2).
- feat(state-channels): event handler for state-channel events incl. messages and error (db9daa7).
Misc
- build(dependencies): update dependencies (#213) (2a9e7e7).
Docs
- docs(state-channels): define params in the docs (f19b70a).
- docs: remove deprecated api in docs (62af9b1).
3.1.1 (compare)
Bug Fixes
- fix(tx): encode spend tx payload as base64 string prefixed by 'ba' (#204) (488745b). Related issues/PRs: #203
Code Refactoring
- refactor(cli): add option --secret-key as alias to --private-key.(60bcf6d).
⚠ --private-key
is deprecated and will be removed in a future release`
Features
- feat(tx): improve precision for fee calculation (#193) (04adcb4).
3.1.0 (compare)
Features
- feat(state-channels): generic messaging and option to add custom error handler (02efd3b)
- feat: improve cli output in case of errors (4636311)
- feat(state-channels): add withdraw related states (5f6fefa)
- feat(state-channels): sign offchain deposit tx (0a0ed47)
- feat: support aeternity node fortuna series ([>= v2.3.0, < 4.0.0] 2191eae )
- feat: support call_info for transaction info endpoint (2191eae)
- feat: improve logging for unsupported node api version (2191eae)
- feat: add method to get the protocol version of the a node (2191eae)
- feat: automatically select the correct vm/abi based on protocol number (2191eae)
- feat: improve error message when a node is not reachable (2191eae)
- feat(state-channels): websocket ping pong and dependency fix (0117324)
- feat(cli): add ability to inspect an encoded transaction (ec95446)
- feat(state-channels): added leave and shutdown calls (2c1a90c)
- feat(state-channels): basic message queue and processing (ff42d54)
- feat(state-channels): get channel's current offchain state (4dbc027)
- feat: Add ability to retrieve an account balance at height from the cli (a13b516)
- feat: Add human readable formatting for amounts (a13b516)
- feat: Pretty print amounts output from cli (a13b516)
- feat: Add ability to transfer a percentage of funds to another account (a13b516)
- feat(state-channels): added leave and shutdown calls (db95c42)
- feat(state-channels): basic implementation for websocket connection, channel initialization and fetch account balance (2544aa0)
Style
- style: fix spell mistakes (4636311)
- style(state-channels): remove blank lines (151d48a)
- style: fix linting issue (2a696ba)
Code refactoring
- refactor(state-channels): use single quotes wherever possible (7910e21)
- refactor(state-channels): refactor get channel id (a08fa47)
- refactor: update websocket dependencies (2191eae)
- refactor(state-channels): refactor for balances call (3cde14d)
Bug Fixes
- fix(state-channels): add shutdown tx signing (f2726d8)
- fix(state-channels): Fix channel shutdown. add shutdown tx signing (3d82bd6)
- fix: validator check on aens with uppercase letters (2191eae)
- fix(state-channels): run websocket connection as background task (072cf55)
- fix(state-channels): updated to more stable websockets library (2f98467)
- fix(state-channels): fix websocket connection crash issue (4dbba3a)
Build
- build: switch from setup.py to pyproject.toml (and poetry) (2191eae)
- build: add flake8 configuration to skip unnecessary folders (2191eae)
Chore
- chore: Removed legacy submodule (a13b516)
Documentation
- docs(state-channels): add comments to the state method (371ff54)
- doc: update readme (4636311)
- doc: add github badges to the readme (2191eae)
3.0.0 (compare)
3.0.1 (compare)
Bug Fixes
- fix: openapi parser for node v2.4.0 (#157) (63b46fa).
3.0.0 (compare) - 2019-04-16
Bug Fixes
- fix: honour value of transaction fee provided as parameter (d525aba). Related issues/PRs: #128
Code Refactoring
- refactor: add get_secret_key method (deprecates get_private_key) (8516443).
- refactor: set the minimum fee when the provided fee is 0 (99a3c0f). Related issues/PRs: #128
Features
- feat(cli): add payload to the account spend command (7cdf2d9). Related issues/PRs: #104
- feat: add support for sofia and raw encoding of account address (fb6fea6). Related issues/PRs: #134
Misc
- ci(node): set the docker node image version to 2.1.0 (37696fa).
- Feature/cli sp37 iteraction (#146) (da645a5).
- Feature/new compiler (#145) (8b4853a).
- Merge pull request #137 from aeternity/fix/cli_fee_param (0ea6817).
- Merge pull request #138 from aeternity/feature/cli_spend_payload (cbee5e0).
- Merge pull request #139 from aeternity/feature/contracts_address_format (51597af).
- Merge pull request #147 from aeternity/release/3.0.0 (7dc3a2f).
- style: fix lint errors (519f66c).
- update version to 3.0.0 (c7e59ac).
2.0.0 (compare) - 2019-03-05
Misc
- Add generic signautre verification (#109) (6fa956a).
- Change reference from Epoch to Aeternity Node (#107) (c3d7e6c).
- Chore/general cleanup and fixes (#108) (d97894e).
- Feature/node 2.0.0 (#112) (1986de6).
- Feature/tx decoding (#117) (b7c60dc).
- Feature/update docs (#98) (223747f).
- Improve command line output (7bf0ef5).
- Merge branch 'master' into develop (302c8ec).
- Merge pull request #118 from aeternity/release/v2.0.0 (1dca16f).
- Remove personal notes from env file (71604a4).
- Update changelog and verision number (c7163f5).
- Update README.md (73eed3f).
1.1.2 (compare) - 2018-12-14
Misc
1.1.1 (compare) - 2018-12-01
Misc
- Implement range check for epoch compatibility (#91) (3444256).
- Merge pull request #92 from aeternity/release/1.1.1 (d034d46).
- Update version to 1.1.1 and update changelog (5d1cced).
1.1.0 (compare) - 2018-11-29
Misc
- Feature/native contracts transactions (#88) (c17ee71).
- Fix and update changelog (53700e9).
- Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (4cd2b90).
- Merge pull request #89 from aeternity/release/1.1.0 (79a3a0a).
- Update sdk version to 1.1.0 (a2478a4).
- Use sdk-mainnet as default node (5e1234c).
1.0.0 (compare) - 2018-11-28
Misc
- Feature/epoch 1.0.0 (#86) (171c26b).
- Feature/oracles (#84) (1004e9f).
- Merge branch 'master' into develop (60892bc).
- Merge pull request #87 from aeternity/release/1.0.0 (e320c4e).
- Update version number to 1.0.0 (fe8cae4).
<IP_ADDRESS> (compare) - 2018-11-23
Misc
- Add DEBUG environment variable to README (0ae8c18).
- Add github issues template (348aad2).
- Change command options order (#81) (c9a08eb).
- correction of README.md (6c863ff).
- Feature/native_aens_tx (#77) (1fd8199).
- Feature/offline (#79) (a1c84d8).
- Fix offline signing Improve support for network_id (c36a91d).
- Fix typos (c05524f).
- Fix typos in md files (309e832).
- Merge branch 'master' into develop (df1745a).
- Merge branch 'release/<IP_ADDRESS>' of github.com:aeternity/aepp-sdk-python into release/<IP_ADDRESS> (a749c4d).
- Merge pull request #80 from aeternity/release/<IP_ADDRESS> (58848ce).
- Remove tests keys (ee92ad8).
- Removed commented code (08f925e).
- Set native default to False Give better output for inspect blocks (db70663).
- Update changelog and documentation (b43ec74).
- Update verison to 0.25.0 (9d2e3c6).
- xsalsa-poly1305 (87893e1).
<IP_ADDRESS>b1 (compare) - 2018-11-06
Misc
- Feature/epoch 0.25.0 (#72) (1b06da0).
- Merge pull request #73 from aeternity/release/<IP_ADDRESS>b1 (22e7795).
- Update changelog (6f3ee1b).
<IP_ADDRESS> (compare) - 2018-11-01
Misc
- Feature/sonar (#68) (ee224e3).
- Fix for CVE-2018-18074 (#69) (c5e6a36).
- Merge branch 'master' into develop (76c11b1).
- Merge pull request #70 from aeternity/release/<IP_ADDRESS> (bce24f0).
- Update version and changelog (bd7fa6d).
<IP_ADDRESS> (compare) - 2018-10-19
Misc
- Merge branch 'master' into develop (444aa8c).
- Release/<IP_ADDRESS> (#64) (2c6e215).
- Release/<IP_ADDRESS> (#67) (35ef090).
<IP_ADDRESS>b1 (compare) - 2018-10-19
Misc
<IP_ADDRESS> (compare) - 2018-10-18
Misc
- Chore/spend transaction (#58) (edc999e).
- Feature/cli_compliance (#60) (6ee14a1).
- Feature/epoch-0.24.0 (#62) (87853fb).
- Feature/keystore json (#55) (2ab15d6).
- Feature/native transactions (#56) (3a08f31).
- Feature/output json (#54) (03b3f18).
- Merge pull request #61 from aeternity/release/<IP_ADDRESS> (dc90b6e).
- Remove unnecessary libraries from the setup.py (8300496).
- Update command-line-tool.md (#57) (d140c38).
- Update version number to <IP_ADDRESS> and Changelog (dc81c49).
<IP_ADDRESS>rc2 (compare) - 2018-10-02
Misc
- Add epoch version compatibility check (#51) (b4c32d0).
- Feature/calculate_nonce (#50) (8960d17).
- Feature/tx execution reliability (#52) (8d30f58).
- Hotfix - forgot to increase version number (d20564a).
- Merge branch 'master' into release/<IP_ADDRESS>rc2 (5d242a2).
- Merge pull request #53 from aeternity/release/<IP_ADDRESS>rc2 (2b2db85).
- Update changelog (a6343b9).
<IP_ADDRESS>rc1 (compare) - 2018-09-26
Misc
- Feature/epoch 0.21.0 (#47) (47466ef).
- Feature/epoch-0.22.0 (#48) (13fa8c3).
- Merge pull request #49 from aeternity/release/<IP_ADDRESS>rc1 (ea6fc22).
<IP_ADDRESS> (compare) - 2018-09-05
Misc
- Bump version to <IP_ADDRESS> (e52b790).
- Merge pull request #46 from aeternity/hotfix/pypi-dist (627c529).
<IP_ADDRESS> (compare) - 2018-08-23
Misc
- Add automated deploy to pypi (2a745a4).
- Automatically publish on test.pypi.org on develop branch Automatically publish on pypi.org on tags (7aab3fb).
- Bump version to <IP_ADDRESS> Update epoch reference version 0.20.0 Use namehash to calculate the commitment hash Update changelog (d8b0433).
- Increase default ttl from 10 to 100 Set the name_ttl to 100 in tests (c99d0e3).
- merge master into develop (e385442).
- Merge pull request #42 from aeternity/feature/epoch-0.20.0 (042c705).
- Merge pull request #43 from aeternity/release/<IP_ADDRESS> (dff2cf3).
- Set the target epoch version 0.20.0 for tests (bfc5f4e).
<IP_ADDRESS>.1 (compare) - 2018-08-15
Misc
- Release/<IP_ADDRESS>.1 (#41) (c14ba6e).
<IP_ADDRESS> (compare) - 2018-08-15
Misc
- Add --private-key options to the cli to print the private key as a string Fix output print for the spend transaction (6146bed).
- Fix possible index out of range in signing decode function (809da32).
- merge <IP_ADDRESS> into develop (81305dd).
- Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (1c04df5).
- Release/<IP_ADDRESS> (#40) (9999b45).
- Update changelog (214c1a1).
- Update command-line-tool.md (fa68f70).
<IP_ADDRESS> (compare) - 2018-08-14
Misc
- Command line tool documentation and examples corrected (4b61896).
- Command line tool documentation and examples updated (f0db8e8).
- Create index.md (c613921).
- Decode the result of a contract using the decode-data api call Crate a descriptor of a contract deploy so the client doesnt have to compile a contract over and over Contracts get complied when the object get instantiated if the bytecode is not provided on the constructor (5af7884).
- Feature/add name commands (#36) (89229c1).
- Feature/validate aet hash (#38) (fbffb39).
- Fix duplicate function signature (52686b5).
- Fix lint error (21bcebf).
- Hotfix/claim (#33) (40c76fe).
- Implement the command play that (f989de1).
- Inpect of a deploy desciptor prints also informations about the transaction of the contract cration (757e984).
- Make a Contract object store the values of a contract: bytecode, source code and contract address. Increase default gas for contracts in CLI Uses the full contract address in the deploy descriptor name Changed author to owner in the deploy descriptor (6396acb).
- Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (70d1b12).
- Merge pull request #34 from aeternity/feature/chain_play (b73e50c).
- Merge pull request #35 from aeternity/feature/data_decode (a279f63).
- Merge remote-tracking branch 'origin/develop' into feature/chain_play (a8e6d9f).
- Play command (#37) (3245b8b).
- Print 'N/A' for variable that are None in cli output Handle the transaction not found error gracefully (76bd26a).
- Refactor contract code to handle the contract address and abi more consistently (1151f52).
- Release/<IP_ADDRESS> (#39) (bb96f56).
- Resolve conflict in imported libraries (c5e5454).
- Started documentation of command line tool (66f9d60).
- Update changelog with the play command (ecdddce).
- Update command-line-tool.md (0990ded).
- Update index.md (f9a9da6).
- Update test for contracts, add the decode_data test (baa5653).
- updates (d4ca6c5).
- Use ip address <IP_ADDRESS> instead of localhost to connect to docker (b600d11).
<IP_ADDRESS> (compare) - 2018-07-31
Misc
- Feature/cli changes (#32) (656f091).
- Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (310d190).
- Merge branch 'master' into develop (eb7337c).
- Merged with master (68d6400).
- Merged with master (fa73d2f).
- Release <IP_ADDRESS> (e27032e).
<IP_ADDRESS> (compare) - 2018-07-27
Misc
- Add the cli to the distribution package (b403289).
- fix transitive dependencies installation for pip (#31) (95b5b4b).
<IP_ADDRESS> (compare) - 2018-07-27
Misc
- Feature/pypi package (#28) (e663baf).
- Merge branch 'master' into develop (ee06cb9).
- Release/<IP_ADDRESS> (#30) (c8420aa).
<IP_ADDRESS> (compare) - 2018-07-27
Misc
- Feature/epoch 0.18.0 (#26) (9762f91).
- fix readme (d6bce49).
- Merge pull request #25 from aeternity/bugfix/histories (bbe5d38).
- Release/<IP_ADDRESS> (#27) (ec75954).
- Update README.md (0cad501).
- Update README.md (7bb5e4c).
<IP_ADDRESS> (compare) - 2018-07-10
Misc
- Feature/contracts and 0.15.0 compatibility (#21) (338682f).
- Feature/epoch 0.14.0 (#20) (99de4e2).
- Feature/newcli (#22) (c4fc340).
- Release/<IP_ADDRESS> (#23) (e798b0b).
v0.13.0-0.1.0 (compare) - 2018-05-30
Misc
-
- Add basic configuration for jenkins ci (5dad431). Related issues/PRs: #14
- Add changelog (ada0fd5).
- added tests for CLI tool; encrypt the generated wallet with a password (957781a).
- CLI: improved password handling (optional --password parameter), more tests (d1b2843).
- Feature/openapi for epoch v0.13.0 (#17) (667d4c3).
- Feature/rlp for epoch v0.10 (#16) (30d3ded).
- fixed calling the aecli spend function (used wrong signature for spend (4bc5efb).
- Merge pull request #15 from aeternity/feature/jenkins-ci (98a79d8).
- Release/0.13.0 0.1.0 (#19) (b9a141a).
- Update README.md (cb4f834).
release/v0.8.0 (compare) - 2018-03-19
Misc
- Add Docker support mode (2f2e457).
- Add Fedora as supported OS using Docker (733e9ad).
- Add instructions on how to install using venv (2012311).
- added "aecli" executable that is a shortcut for
python -m aeternity
(a2ee670). - added assertion to enforce correct hash in
get_transaction_by_transaction_hash
(0bad8cc). - added DTO for aens_transfer_tx (ec61fce).
- added formatter methods to print the Transactions and blocks nicely (7cf4f2e).
- added function to cli:
aecli wallet info <wallet path>
to get the address of your wallet (a782032). - added more tests for the case of an invalid contract (784590d).
- added more transaction Types, fixed tests (4e3fde9).
- added msgpack to requirements.txt (e9b603b).
- added top-level requirements.txt (322c316).
- aecli: renamed
aens
command toname
(6766ff1). - After feedback from Tom (ba28216).
- allow inspecting single blocks and transactions using the aecli tool (ee21bd2).
- allow specifying salt when calling preclaim (421358a).
- allow using multiple connections (c613af3).
- always json encode the oracle response, cleanup (8b295d0).
- changed --no-input to --force switch, halfway implemented oracle CLI interface, refactoring (8ceb646).
- changed CLI parameter
--no-input
to--force
(ab9cf14). - Changed Config object: Allow setting host and port individually (e36dd0d).
- changed signature of
client.spend
so that it has the keypair as first argument like all other calls (6007ae6). - clean up of tests (9bd0a2d).
- cleanup, removed custom Exception (i think it's overengineered) (f7da781).
- Debug which URL is going to be queried (dfc6281).
- do not automatically register to the new_block event when initializing the EpochClient (1d8bb80).
- Fix amount (d1eb718).
- fixed AENS tests, some fixes to keep the interface of AEName stable (4e926c3).
- fixed all tests in test_api (95e78a5).
- fixed contract tests using aer-contract language (accc104).
- Fixed merge-conflicts, using new EpochClient http interface for spend Merge branch 'master' into develop (a75510f).
- fixed test_api.py when chain contains AENS transactions (e63a7d3).
- got examples to work, is able to call an API by url and return some json (8395c35).
- got first implementation of the oracle wrapper to work (including full lifecycle test) (b9620d7).
- got offline transaction signing to work (e5aa572).
- got offline transaction signing to work (cd0b331).
- Ignore local epoch clone (cb89584).
- implemented AENS name transfer using offline signed transactions (86ff7b5).
- implemented all API functions provided by the swagger interface (7ba4835).
- implemented base58 (f178c85).
- Implemented changes as discussed in https://github.com/aeternity/dev-tools/pull/2 (81dab0a).
- implemented CLI for creating wallets (6ccf3a4).
- implemented CLI interface for
balance
andheight
(586a6e3). - implemented CLI oracle query (ed8c0a8).
- implemented offline signing of AENS update transactions (bfeacae).
- implemented the interface to call contract functions (e7fc623).
- improved CLI, updated spend functionality to use offline signing instead of internal endpoint (4091e54).
- improved transaction test: make sure that the signed transaction appears in the chain (ebb4585).
- made changes as requested in review https://github.com/aeternity/aepp-sdk-python/pull/7 (393d0a7).
- made cli
balance
command better for piping into other programs (b6633ce). - Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (cc468ae).
- Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (bb1582a).
- Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (6c6ef1c).
- Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (deeb3ea).
- Merge branch 'develop' of github.com:aeternity/aepp-sdk-python into develop (afaf013).
- Merge branch 'master' into develop (f953888).
- Merge branch 'master' into master (be36c37).
- Merge branch 'master' into release/v0.8.0 (a643a56).
- Merge pull request #10 from andi-apeunit/master (eb396af).
- Merge pull request #11 from aeternity/develop (4330c08).
- Merge pull request #12 from aeternity/jsnewby-patch-1 (2bb7963).
- Merge pull request #2 from aeternity/develop (947c259).
- Merge pull request #4 from aeternity/develop (1c748c8).
- Merge pull request #5 from aeternity/tillkolter-patch-1 (ebc47cf).
- Merge pull request #6 from aeternity/newby-spend-tx (10835c0).
- Merge pull request #7 from aeternity/develop (0aefa39).
- Merge pull request #8 from aeternity/develop (d577011).
- Merge pull request #9 from aeternity/feature/config-refactor (db28788).
- Moved the project from aeternity/dev-tools to aeternity/aepp-sdk-python (55ed2bb).
- print help when no arguments are given (9da4b2b).
- Properly configure the root logger (01da450).
- README: updated cli usage (6de55be).
- Refactored Oracle to use a single state, moved initialization to constructor (35932ad).
- refactored OracleQuery to use constructor instead of class attrs, documentation (1224ad5).
- refactoring and made tests for AENS and contracts run through (eb707df).
- removed broken import (fe289d5).
- removed unused code (26c76d1).
- removed whitespace at line endings (b74661e).
- renamed
client.local_*
calls toclient.external_*
, use offline signing for AENS preclaim and claim (e81328d). - renamed
create_transaction
tocreate_spend_transaction
(ba35fa4). - renamed
get_current_height
toget_height
, letContract
object contain the code (3d4770b). - renamed
get_current_height
toget_height
, letContract
object contain the code (0c5d659). - renamed EpochClient.run to EpochClient.listen (9d2b2c4).
- Return tx_hash (15df14e).
- Return tx_hash not tx (c733609).
- Return tx_hash on spend transaction (55ba0c1).
- run tests for both EVM and RING (76ae1ee).
- Set tx_hash on signable transaction (1d22ec9).
- show error when using invalid oracle command (699e52e).
- skipping failing tests for now: those need to be fixed when offline signing the AENS transactions (e6418bc).
- some test cleanup (9fc2d5f).
- Spend function and example (642a682).
- trailing comma (9c1725d).
- transaction signing WIP (14111b7).
- transaction signing WIP (almost there...) (a40eda7).
- transaction signing WIP (almost there...) (19c42ab).
- update (92124f6).
- update (9fbfa28).
- Update epoch.py (cebc245).
- Update INSTALL.md (7a596c5).
- Update README.md (065ec64).
- Update README.md (d463778).
- Update README.md (a9062e3).
- Update README.md (7cf09a2).
- Update README.md (3c395bc).
- Update README.md (ace41ae).
- Update README.md (58815a4).
- Update README.md (d8a971f).
- updated contract interface to be compatible with the latest master using switchable ABI (a48e49b).
- updated Readme containing the planned spec for the API (oracle parts are only partly implemented) (3c6c5c8).
- updated test_api.py to expect the epoch to be in version 0.8.0 (c0975d4).
- updated the README for aecli tool (2ea6053).
- use AENSException instead if InvalidName Exception (7ebb9f4).
- Use single quotes, not double (288562d).
- use transaction signing for name revocation (4e86ecf).
- whoopsie (c55fbe5).


|
KeenMVC
0.1
A PHP MVC framework done right
|
Keen was born from my search for an MVC framework with all the good bits. What are the good bits you say? Here's my take (YMMV):
The last two were the key.
I don't know of anyone who was born a programmer. We all started somewhere. And yet, a very high percentage of the tools designed for programmers are not friendly to newbies. For example, I actually feel that Ruby would be somewhat easier than PHP to pick up. (There's even a Ruby framework called Pakyow with the "good bits".) Unfortunately, I haven't been able to find a server application in the Ruby world that's as easy to work with as XAMPP.
And then views. I wanted to be able to take an unmodified HTML file and plug it in. No templating languages. No inserting bits of code. A view is just a view. To me, a framework that lacks this is not really an MVC framework. Pakyow is the only framework I'm aware of that does this.
All that said, I felt like it would be easier for me to create a framework for PHP (where I know there's a need for such a thing), than to create a desktop server app for Ruby. Enter KeenMVC.
Much of the configuration for Keen is handled via .ini
files. There are a few (I think) very good reasons for this:
.ini
files for its configuration, so being familiar with the general syntax is very useful for PHP developers.In the case of the .ini
file templates include with Keen, they end with .ini.php
to prevent the data stored therein from being displayed on the web. You'll note from comments in these template files that to get this magic to work the lines at the top and bottom of the file should be left alone, and your configuration values inserted in the middle.
Finally, in the .htaccess
file include with KeenMVC, there is a section devoted to returning a 404 error should an .ini
or .ini.php
file be requested. That said, the ideal is to configure your web site so that the public
directory is the document root of your site. If configured in this way, your configuration files won't even be in a place where they're accessible to web traffic. Or even better, move your config files completely away from your web files, and configure your site accordingly.
When setting up a web site using KeenMVC for the first time, simply copy the directory as a whole to a place that makes sense on your server (for example, many Linux distributions keep web files at /var/www
.) While the entire directory need not be present on your site, the docs
and tests
directories need not be present for Keen to function.
Ideally, when installing KeenMVC for a site that you're building, the public
folder in the distribution should be made the webroot. If that's not possible — you have to install into a certain directory, for example — there is an .htaccess
file at the root level of the distribution that will help things work properly when using a properly configured Apache server installation.


Edward Tufte
A full PDF version of this book - readable but low resolution text.
"Assessments of change, dynamics and cause and effect are at the heart of thinking and explanation. To understand is to know what cause provokes what effect, by what means, at what rate. How then is such knowledge to be represented? This book describes design strategies - the proper arrangement in space and time of images, words and numbers - for presenting information about motion, process, mechanism, cause and effect. These strategies are found again and again in portrayals of explanations, quite independent of the particular substantive content or technology of display."
"When principles of design replicate principles of though, the act of arranging information becomes an act of insight." £
"Visual Explanations is about pictures of verbes, the representation of mechanism and motion, of process and dynamics, of causes and effects, of explanation and narrative. Since such displays are often used to reach conclusions and make decisions, there is a special concern with the integrity of the content and the design."
"maps resemble miniature pictorial representations of the physical world"
"Huygens presents a series of still images in order to depict motion. To resolve such discontinuous spatial representations of continuous temporal activity, viewers must interpolate between images, closing up the gaps."
"Muybridge shows 18 separate photographs to capture a few seconds of leapfrog."
"space replaces time as the sequencing dimension. The adjacency of images helps us to assess change and possibly rates of change within each image and between images in sequence - and we can do so at our own pace."
"Sequences of still images suffer the obvious...loss of the experience of the passage of time, the loss of the rates and rhythms of actual motion."
"Illustrations of postage-stamp size are indexed by a category or a label, sequenced in time like the frames of a movie, or gathered along a fresh dimension not contained in each small element. For a broad range of problems in presenting numbers and images, small multiples will serve quite well. Since many slices of information are displayed within the eyespan, alert viewers may be able to detect contrasts and correspondences at a glance - uninterrupted visual reasoning. And some multiples, like good graphics of all kinds, are worth more than a glance; careful viewing may reveal subtle differences among the elements."
"...too many computer displays, where a crampted window showing the user's work is framed by a bureaucratic debris of scroll bards, buttons, titles, icons and over-produced drawings
"ideally structures that organize information should be transparent, straightforward, obvious, natural, ordinary, conventional - with no need for hesitation or questioning on the part of the reader."


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus id vestibulum nulla. Maecenas ultricies at urna nec pellentesque. Integer pharetra orci in est viverra rutrum. Nunc ullamcorper tincidunt sapien at fringilla
A whole kitchen sink of goodies comes with Foundation. Check out the docs to see them all, along with details on making them your own.
Go to Foundation Docs


Users
refresh
user Id
Age
Password
calendar
View Users
Create User
Creating a user
View Users
Create User


| case expn of | ||||||||
| { label compileTimeExpn {, compileTimeExpn } : | ||||||||
| statementsAndDeclarations } | ||||||||
| [ label : | ||||||||
| statementsAndDeclarations ] | ||||||||
| end case |
The expression (expn) following the keyword case is evaluated and used to select one of the alternatives (sets of declarations and statements) for execution. The selected alternative is the one having a label value equaling the case expression. If none are equal and there is a final label with no expression, that alternative is selected.
case mark of
label 9, 10 : put "Excellent"
label 7, 8 : put "Good"
label 6 : put "Fair"
label : put "Poor"
end case
case name of
label "horse", "cow" : put "Farm animal"
label "tiger", "lion" : put "Jungle animal"
label "cat", "dog" : put "Pet"
label : put "Unknown animal"
end case
Note that there is no way to express a range of values (for example from 5 to 10) in a label. Each individual value must be expressed in the label.