I work at Softanbees, a data solution company in India. At softanbees, we are committed to develop world class data-driven software services and training facilities, managed hosting and internet portal management are few that we offer. Satisfied clients around the globe bear testimony to the quality of our work.
Contact
Passionate technology enthusiast. Worked as a technical officer at an internet service provider for a year. Interested in contributing to the body of knowledge of scientific research domains.
About Me2+ years of experience working with companies from Dhaka. I design & develop digital content to help businesses and improve people's lives.
Linkedin Download My ResumeI have started my data science journey with Softanbees since april 2020. Since then i have never regretted for the action i have taken so far. The training session really helped me to find myself into a new dimension of possibilities. And now that i am working with them, i have got opportunity to find some industrial insights in close proximity. That's why i am always greatful to Softanbees Technologies Pvt. Ltd. for enabling such skill development program.
Successfully subscribed
Error while subscribing.


A monic quadratic polynomial has the form The roots of this polynomial have the form If we suppose that and are in the , othen either both roots are real or they are complex conugates of one another, and the sum of the roots is
Now every polynomial has a so-called companion matrix associated with it. In this case the companion matrix of our quadratic is The reason why this is called the companion matrix is that It follows that the roots of are exactly the eigenvalues of
Now consider the differential equation Where . In that case


Concepts and ideas are expressed through a wide spectrum of disciplines, including: identities, products, installations, print and digital.
Past experiences includes as a designer at London based studio OK-RM and as an art director at Google Creative Lab.
Currently based in Stockholm working with various projects, including running the music label Study Records.
Åsögatan 135, 116 24 Stockholm
+46708230208
me@ludvigfranzen.se


@@include('./includes/helmet.html', {
"title": "GoPablo",
"description": "GoPablo is a static site generator with a modern development workflow, integrated web server, auto-reload, CSS preprocessors, and ES6 ready.",
"headerJS": "header-bundle.js",
"socials": {
"title": "GoPablo",
"thumbnail": "",
"url": "https://www.gopablo.co",
"author": "http://facebook.com/luangjokaj"
}
})
@@include('./includes/header.html')
@@include('./includes/single.html')
@@include('./includes/footer.html', {
"footerJS": "footer-bundle.js"
})


Lazy, initial false
Some awesome content here
Non lazy, initial false
Some awesome content here
Lazy, initial true
Some awesome content here
Non lazy, initial true
Some awesome content here


Music Player Daemon (MPD) is the background service for Music and Radio sources.
Music from USB drives and network attached storage (NAS) can be browsed through the Music source.
Looking for servers...
When adding or removing storage, the library is automatically updated. When content on a NAS is changed, the library may need to be updated manually.
Updating library...
Select a share from the server to add.
Content from '' will be removed from the Music source.
'' appears to be currently unavailable. Make sure that it is correctly set up and that the product and the server are on the same network.
Try connecting again or remove the location and set it up again.


It seems like KDE spread recents file almost everywhere... how to kill them all? This script's purpose is this, but of course it can fail. Just try it.
I am not responsible for any data loss due to right or wrong use or peruse or misuse of this script! Watch your step!
How does it work? It simply looks inside the kind of file KDE can store recent information in, and then strip the line(s) containing the recent information.
It does a backup you can of course remove. It looks inside $HOME/.kde/share/config for files like XXXrc and XXX.new ... then it checks inside kdeglobals too.


{% extends "layout.html" %} {% set active_page = "about" -%} {% block title %}About SlackStackBot{% endblock %} {% block content %}
SlackStackBot is really cool.


SOMME BATTLEFIELDS
Incorporating several World War One sites, these battlefields are the locations at which the infamous Battle of the Somme was fought from July to November 1916.
The Battle of the Somme was renowned for the exceptionally high number of casualties borne by the Allied forces.
FORT DOUAUMONT
Built following the Franco-Prussian wars, this fort acted as a shelter for locals during the Battle of Verdun.
However, in the confusion, it was soon captured and destroyed by the Germans.
Today, it remains one of the least changed of the World War 1 sites, with visitors able to see it as it was at the end of the war.
LOCHNAGAR CRATER
This is one of the more vivid of World War I sites, it being the vast crater left behind by one of the first mine explosions of the Battle of the Somme on 1 July 1916.
Set off by British forces the mine which created the Lochnagar Crater was one of the biggest ever detonated at that time
and Lochnagar itself is an astounding 100 metres in diameter and 30 metres deep.
ANZAC COVE
One of the most important World War 1 sites of the Gallipoli Campaign in Turkey, Anzac Cove was where Australian and New Zealander troops landed on 25 April 1915.
The Anzac Cove landings were part of the Gallipoli Campaign, an effort by the Commonwealth and by the French to remove Turkey from World War I.
MENIN GATE
This is one of the most significant World War 1 sites in Ypres and is a memorial to the British and Commonwealth troops who went missing in action in Belgium during this conflict.
Ypres was a vital strategic point during the war and the site of fierce fighting, including three main battles together known as the Battle of Ypres.
Menin Gate bears the names of 54,896 missing British and Commonwealth soldiers who died without graves.
DOUAUMONT OSSUARY
This vast memorial, museum and cemetery commemorates those soldiers who lost their lives in the fierce Battle of Verdun.
The Battle of Verdun was one of the fiercest during World War One, lasting from February 1916 to December 1916.
This site is home to the bones of 130,000 unknown soldiers, marking a fitting reminder to the savage consequences of this battle and the war as a whole.
ULSTER MEMORIAL TOWER
The Ulster Memorial Tower in Thiepval in France is a 70-foot high stone structure built as a memorial to the men of Ulster who fought and gave their lives during World War I.
The first memorial to be built on the Western Front, the Ulster Memorial Tower is a replica of Helen’s Tower, an important monument which is located in County Down in Northern Ireland.
GREY POINT FORT
Walter writes to Oberstein and convinces him to meet in the smoking
room of the Charing Cross Hotel where he promises additional plans
for the submarine in exchange for money. The plan works and Holmes
and Watson catch both criminals.


You can be able to aquire a plan with our library.You will chose the plan that is most
confortable with you.
Welcome as you start your journey with us
Click on plan head for form.
Benefits of this plan
Click on plan head for form.
Benefits of this plan
Click on plan head for form.
Benefits of this plan


Go and make interesting mistakes, make amazing mistakes, make glorious and fantastic mistakes. Break rules. Leave the world more interesting for your being here. - Neil Gaiman


Want to get in touch with me? You can chat with me at any time. Do subscribe my page to get more content.


MiStaMover config files can be created using a template system and a script called create_config.py (which can be found in the MiStaMover bin directory)
This utility asks the user questions and the repsonses are used to generate a config file.
The config files generated will be placed in the MiStaMover conf directory
create_config.py can be used in the following way
To create the global configuration file use:
bin/create_config.py -t <config_type>
where config_type is
global
To create a data stream configuration file use:
bin/create_config.py -t <config_type> <unique_name>
where config_type is one of
rsync_ssh
rsync_native
ftp
gridftp_myproxy
gridftp_certificate
arrival_monitor
To view the list of settings that must be defined for a specific configuration use:
bin/create_config.py -h <config_type> <unique_name>
where config_type is one of those defined above
To view this message use:
bin/create_config.py -h
Example usage:
Global configuration file:
$ bin/create_config.py -t global
Data stream configuration file:
$ bin/create_config.py -t rsync_ssh dataset_1
Arguments must start with '-t <config_type>' or '-h <config_type>'.


Handlebars
Handlebars help you add character to your response. Instead of sending a static response or writing some code to generate a dynamic response, you can now simply use handlebars and let Camouflage do the work for you.
Custom Helpers
randomValue
Type: Custom Helper
Usage:
- {{randomValue}} - Simply using randomValue will generate a 16 character alphanumeric string. ex: 9ZeBvHW5viiYuWRa.
- {{randomValue type='ALPHANUMERIC'}} - You can specify a type as well. Your choices are: 'ALPHANUMERIC', 'ALPHABETIC', 'NUMERIC' and 'UUID'.
- {{randomValue type='NUMERIC' length=10}} - Don't want a 16 character output? Use length to specify the length.
- {{randomValue type='ALPHABETIC' uppercase=true}} - Finally, specify uppercase as true to get a, well, uppercase string.
now
Type: Custom Helper
Usage:
- {{now}} - Simply using now will give you date in format YYYY-MM-DD hh:mm:ss
- {{now format='MM/DD/YYYY'}} - Format not to your liking? Use any format you'd like as long as it is supported by momentjs.
- {{now format='epoch'}} - Time since epoch in milliseconds
- {{now format='unix'}} - Time since epoch in seconds
- {{now format='MM/DD/YYYY hh:mm:ss' offset='-10 days'}} - Use offset specify the delta for your desired date from current date.
Units for specifying offset are
| Key | Shorthand |
|---|---|
| years | y |
| quarters | q |
| months | M |
| weeks | w |
| days | d |
| hours | h |
| minutes | m |
| seconds | s |
| milliseconds | ms |
capture
Type: Custom Helper
Usage:
- {{capture from='query' key='firstName'}} - Pretty self-explanatory, but if say your endpoint looks like /hello-world?firstName=John&lastName=Wick. And your response is {"message": "Hello Wick, John"}, you can make the response dynamic by formatting your response as
{
"message": "{{capture from='query' key='lastName'}}, {{capture from='query' key='firstName'}}"
}
- {{capture from='path' regex='\/users\/get\/(.*)?'}} - For path, you'd need to specify a regex to capture a value.
- {{capture from='body' using='jsonpath' selector='$.lastName'}} - To capture values from request body, your options are either using='regex' or using='jsonpath'. Selector will change accordingly.
num_between
Type: Custom Helper
Usage:
- {{num_between lower=500 upper=600}}: Generate a number between two values. Example: you can add this value in your response header with a key Response-Delay, to simulate a latency in your API. Not providing lower/upper value or providing values where lower > upper would set delay to 0, i.e. won't have any effect. Check Response Delays page for a detailed example
Inbuilt Helpers
Note
A variety of helpers are made available by Handlebar.js itself and Camouflage team had nothing to do with those, and we don't take credit for it. Following example just showcases how the inbuilt helpers can be used with Camouflage, more details and examples can be found just about anywhere on the internet. As far as inbuilt helpers are concerned, you can use any of them as long as it makes sense to you.
Raw HTML Request:
POST /users HTTP/1.1
Content-Type: application/json
{
"firstName": "Robert",
"lastName": "Downey",
"nicknames": [
{
"nickname": "Bob"
},
{
"nickname": "Rob"
}
]
}
Expected Raw HTML Response:
HTTP/1.1 201 OK
X-Requested-By: user-service
Content-Type: application/json
{
"status": 201,
"message": "User created with ID: f45a3d2d-8dfb-4fc6-a0b2-c94882cd5b91",
"data": [
{
"nickname": "Bob"
},
{
"nickname": "Rob"
}
]
}
- To create this service in camouflage, create a directory users under your ${MOCKS_DIR}. i.e. ${MOCKS_DIR}/users
- Create a file POST.mock and add following content to the file
HTTP/1.1 201 OK
X-Requested-By: user-service
Content-Type: application/json
{
"status": 201,
"message": "User created with ID: {{randomValue type='UUID'}}",
"data": [
{{#each request_body.nicknames}}
{{#if @last}}
{
"nickname": "{{this.nickname}}"
}
{{else}}
{
"nickname": "{{this.nickname}}"
},
{{/if}}
{{/each}}
]
}
Explanation
- We replaced the static UUID
f45a3d2d-8dfb-4fc6-a0b2-c94882cd5b91
with{{randomValue type='UUID'}}
, so that this value updates on each request. - We wrapped our JSONObject inside data array with an each helper which iterates over nicknames array from request body.
- Finally we put an if condition to check if we are at the last element of the array, we shouldn't append a comma at the end of our JSONObject, in order to get a valid JSON. If we are at any other element in the array, we'll add a comma to JSONObject.
Available inbuilt helpers are if
, unless
, each
, with
, lookup
and log
. More details are available at Handlebars Documentation


| /// File Name: |
agares-xssrfi.txt |
Description:
|
Agares PhpAutoVideo versions 2.21 and below suffer from cross site scripting and remote file inclusion vulnerabilities.
| | Author: | H-T Team | | Homepage: | http://no-hack.fr/ | | File Size: | 1393 | | Last Modified: | Jan 18 20:12:04 2008 |
| MD5 Checksum: | 7d9ed7c10f240b49e7f01e53d2501ebf |
|


Contains functions to retrieve, organize, and visualize weather data from the NCEP/NCAR Reanalysis (http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.html) and NCEP/DOE Reanalysis II (http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis2.html) datasets. Data are queried via the Internet and may be obtained for a specified spatial and temporal extent or interpolated to a point in space and time. We also provide functions to visualize these weather data on a map. There are also functions to simulate flight trajectories according to specified behavior using either NCEP wind data or data specified by the user.
| Version: | 1.0.8 |
| Depends: | R (≥ 2.10), maps |
| Imports: | RColorBrewer, abind, fields, fossil, tgp, tcltk, graphics, sp |
| Published: | 2017-01-23 |
| Author: | Michael U. Kemp with contributions from E. Emiel van Loon, Judy Shamoun-Baranes, and Willem Bouten |
| Maintainer: | Michael U. Kemp <mukemp+RNCEP at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | http://www.esrl.noaa.gov/psd/data/gridded/reanalysis/ http://sites.google.com/site/michaelukemp/rncep |
| NeedsCompilation: | no |
| Citation: | RNCEP citation info |
| CRAN checks: | RNCEP results |
| Reference manual: | RNCEP.pdf |
| Package source: | RNCEP_1.0.8.tar.gz |
| Windows binaries: | r-devel: RNCEP_1.0.8.zip, r-release: RNCEP_1.0.8.zip, r-oldrel: RNCEP_1.0.8.zip |
| OS X binaries: | r-release: RNCEP_1.0.8.tgz, r-oldrel: RNCEP_1.0.8.tgz |
| Old sources: | RNCEP archive |
Please use the canonical form https://CRAN.R-project.org/package=RNCEP to link to this page.


---
layout: collage
excerpt: In this sample we compare three of the best sans-serifs Google fonts, against the gloriously quirky and deliciously rounded Omnes Pro from Darden Studios.
font-1-name: Noto Sans
font-1-hex-1: 373736
font-1-source: Google Fonts
font-2-name: Open Sans
font-2-hex-1: 373736
font-2-source: Google Fonts
font-3-name: Lato
font-3-hex-1: 373736
font-3-source: Google Fonts
font-4-name: Omnes Pro
font-4-hex-1: 373736
font-4-source: Typekit
---
{% include sample-logo.html %}
{% include sample-typography-2.html %}
{% include sample-logo.html %}
{% include sample-typography-1.html %}


Note: This documentation is preliminary and subject to change.
There are several sample applications provided with the SDK that demonstrate how to use the APIs. Each of these samples deals with a different type of dataset and produces a single collection that can be viewed in Worldwide Telescope.
This document provides instructions on how to run these samples to generate the image tile pyramid along with the WTML collection file that can be visualized in WWT.
To run the samples ensure your system meets the hardware requirements and the necessary software is installed, described in the Getting Started section.
You can perform this procedure using the user interface (UI) or a script.
When you install IIS, it is preconfigured to serve as a default Web site; however, you may want to change some of the settings. To change the basic settings for the Web site and to emulate the steps that are required to set up Apache for the first time by using the configuration file:
The Tile Service will serve up image and DEM tiles created using the Tile Pyramid SDK. By selecting one of the thumbnail images a tile pyramid can be viewed in Worldwide Telescope.
The Community Service displays a range of sign up files to different communities in the form of thumbnails and descriptions. If a thumbnail is selected the community will be joined and the payload file sent to the user. The account under which the Application Pool is running should have write permissions to the Community Directory to support the caching of payload Xml. The Community Service treats the following folder names as reserved: All Tours, Latest, Plates, DemPlates and Pyramid.
For more information on Community files, refer to the WorldWide Telescope Data Files Reference.
When using these samples with the sample data specified, or with any other sample data, if DEM (digital elevation model) data is not available then it can be obtained from Virtual Earth provided that the tiles created are in the same Mercator projection as Virtual Earth.
To do this edit the following entries in the WTML file to get DEM for the images:
ElevationModel="True" DemUrl="http://ecn.t{S}.tiles.virtualearth.net/tiles/d{Q}.elv?g=1&n=z"
BlueMarbleApp.exe /Input=C:\SDKInputData\world.topo.bathy.200401.3x5400x2700.jpg /Projection=Toast /InputBoundary=<Top Left Latitude, Top Left Longitude, Bottom Right Latitude, Bottom Right Longitude>
Where:
Input: Is the path to an Equirectangular image in PNG or JPEG format. You can find a collection of Equirectangular images at:
http://visibleearth.nasa.gov/view_set.php?categoryID=2363
Projection: Projection can be either Toast or Mercator. For more information please refer to: //worldwidetelescope.org/Docs/WorldWideTelescopeProjectionReference.html
InputBoundary: An optional parameter, defining the input boundary in decimal degrees.
OutputDir: Optional parameter, specifying the folder for output image pyramids and newly created wtml files. If no input is supplied, image tiles are stored in the %ProgramData%\Microsoft Research\WWT SDK\Output¯ folder.
BlueMarbleApp.exe /Input=C:\SDKInputData\MultiPart.xml /Projection=Mercator /InputBoundary=<Top Left Latitude, Top Left Longitude, Bottom Right Latitude, Bottom Right Longitude>
Where:
Input: Points to the xml file that contains the image locations and their bounding co-ordinates.
Projection: Projection can be either Toast or Mercator. For more information please refer to: //worldwidetelescope.org/Docs/WorldWideTelescopeProjectionReference.html
InputBoundary: Optional parameter, defining the input boundary in decimal degrees.
OutputDir: Optional parameter, specifying the folder for output image pyramids and newly created wtml files. If no input is supplied, image tiles are stored in the %ProgramData%\Microsoft Research\WWT SDK\Output¯ folder.
SpecificRegionDataSet.exe /Input=C:\SDKInputData\glaciermulti.xyz /Projection=Toast
Where:
Input: One XYZ data file for a specific region of the world where X is longitude, Y is latitude and Z is the value. Data should be in a regular mesh.
Projection: Projection can be either Toast or Mercator. For more information please refer to: //worldwidetelescope.org/Docs/WorldWideTelescopeProjectionReference.html
OutputDir: Optional parameter, specifying the folder for output image pyramids and newly created wtml files. If no input is supplied, image tiles are stored in the %ProgramData%\Microsoft Research\WWT SDK\Output¯ folder.
WorldDataSet.exe /Input=C:\SDKInputData\ETOPO1_Bed_g.int.xyz /Projection=Toast /ColorMap=colormap.png /ColorMapOrientation=Vertical
Where:
Input: One XYZ data file for entire world where X is longitude, Y is latitude and Z is the value.
Projection: Projection can be either Toast or Mercator. For more information please refer to: //worldwidetelescope.org/Docs/WorldWideTelescopeProjectionReference.html
ColorMap:
Path of a color map file used. A color map is used to assign colors to
various points based on their z value and the colors available in the color map
(from top to bottom in the case of a vertically oriented color map). A sample
file color map is included in the samples folder.
ColorMapOrientation: Two values allowed horizontal or vertical. This indicates the orientation of the color map specified in the previous parameter.
OutputDir: Optional parameter, specifying the folder for output image pyramids and newly created wtml files. If no input is supplied, image tiles are stored in the %ProgramData%\Microsoft Research\WWT SDK\Output¯ folder.
|
<?xml version="1.0" encoding="utf-8" ?> <Regions> <Row> <Region name="A1"> <ImagePath>C:\SDKInputData\A1.jpg</ImagePath> </Region> <Region name="B1"> <ImagePath>C:\SDKInputData\B1.jpg</ImagePath> </Region> <Region name="C1"> <ImagePath>C:\SDKInputData\C1.jpg</ImagePath> <Region name="D1"> </Region> <ImagePath>C:\SDKInputData\D1.jpg</ImagePath> </Region> </Row> <Row> <Region name="A2"> <ImagePath>C:\SDKInputData\A2.jpg</ImagePath> </Region> <Region name="B2"> <ImagePath>C:\SDKInputData\B2.jpg</ImagePath> </Region> <Region name="C2"> <ImagePath>C:\SDKInputData\C2.jpg</ImagePath> </Region> <Region name="D2"> <ImagePath>C:\SDKInputData\D2.jpg</ImagePath> </Region> </Row> </Regions> |


Long before ebase,
anything starts with an Excel Macro...
The very first ebase version, known as "VDM1" and build as client/server web application, is published.
New requirements lead to the creation of VDM2.
It's a partitial rewrite of VDM1.
It turns out that the VDM2 architecture does not fit the increasing demands anymore.
Which means the second rewrite, now from scratch.
Because in 2003 it's still unusual to run enterprise applications in the browser, it's worth to publish an article about it.
Migration to PHP5, Apache2 and MySQL4.
From now on, we call it "ebase"!
I am moving from the Engineering to the IT department.
ebase gets out of focus for a while.
Because HTML4 is still not satisfactory, the so called "Rich Internet Client (RIA)" era arise.
A movement away from the browser to RIAs and mobile apps starts.

It needs three iterations to reach the primary goals.
We decide to stick with Flash/Flex as long as possible.
Flex is still ahead of HTML5.
Beeing a committer and PMC member of the Apache Flex project we can participate in shaping the Future of Flex.
The current, fragmented, ebase system is outdated in any respect.
We start the effort on ebase4.
Still by using Apache Flex but with targeting the Desktop only using Adobe AIR.
In order to be prepared for the future, we join the Apache Royale team.
We hire Yishay Weis from Israel and
Piotr Zarzycki from Poland
in order to help us to shape the future of ebase.
We give "Apache Royale" a try in order to check-out if it fits our needs.
The shock: "As of June 2019, Adobe is transitioning ongoing platform support and feature development of AIR to HARMAN"
This marks the end of the Flex era for us.
We immedeately stop any effort regarding ebase4!
Unfortuntely, our "Apache Royale" test fails.
It turns out that Royale doesn't fit our needs.
But we have to make a decision...
My upcoming parental leave is a good opportunity to cool down and find a new direction ;-)
With Vue and ebase5 we are back to the browser and back to web development, which is great!
With ebase5 we break down the monolithic ebase structure.
This is an important step for the future of ebase.
We introduce the ebase API.
The ebase5 client is just the default client which consumes the ebase API.
Any other devices, machines and applications will be able to consume the ebase API.
Digitalization is not about uploading files to whatever document management system.
Digitalization is not about transforming Excel sheets into whatever software applications.
Digitalization is not about just having software applications for anything to get things done.
An application programming interface (API) is a way for software components to communicate.
APIs exist since we have software.
AI is already changing our everyday life.
We can expect that it will change every buisness and enterprise!
Today, it's challenging to not miss the train
With ebase5, we're back on the track.
The ebase5 client acts as a facade for the divisions
It breaks down complexitiy into divisions and perspectives
A perspective encapsulate related views and data


Problem solver and quick thinker bolstered with the knowledge of data structures and algorithms. Strong fundamentals like OOPS, test-driven development, and an awesome team player.
A budding full stack web developer looking for opportunities
I am a Software Developer with 2 years of experience in design and development of software applications working full-time at ION Group with hands-on experience in HTML, CSS, Bootstrap, JavaScript, TypeScript, Angular, Java along with the skills and ability to write clean and maintainable code.
A self motivated and hard worker seeking projects which provide a vast pool of opportunities to expand my knowledge. A reliable and results-driven individual who is able to learn quickly.
I am extremely astonished by the various aspects pertaining to web development and wish to excel in all the aspects. I enjoy losing myself completely in the world of command statements.
I graduated from Udacity's Full Stack Web Development Nanodegree program, Python specialization from Coursera.


WITNESS LIST Economic Development Committee April 17, 2001-10:30A HB 567 On: Broussard, Allen (Texas Workforce Commission--UI's Regulation Division) UI Trust Fund On: Hammond, Bill (Texas Association of Business) Levy, Rick (Tx AFL-CIO) Rath, Diane (Texas Workforce Commission) Riley, Steve (Texas Workforce Commission)


There are days when the spirit may be willing but I just can’t seem to buckle down and dive into the code.
On those days when I can’t find my A-game with two hands and a flashlight I often find it is beneficial to watch coding videos. It’s a passive activity that can still pro-actively add to my personal knowledge::base and help advance my skills.
Often these will be Railscasts or DevTips videos that actually help me learn skills for specific tasks I’m trying to achieve in an active project or coding challenge. Occasionally they’ll be inspirational TED videos or Vodcasts by developers ‘in the trenches’ that address shared experiences.
One Youtube channel I adore is funFunFUNction. mpjme is a riot and among other things his episode on the Phases in the life of a Developer helped me to stop being fixated on striving to achieve perfection of elegant code and let me stop worrying that I would be drummed out of the Rails community for writing If/Then statements longhand. (They’re freakin’ EASY TO READ, PEOPLE!)
I keep a handy list of videos I’d like to watch and topics I’d like to investigate for those days when the raw code isn’t speaking to me. I try to use my mental downtime to my advantage in the fine tradition of Sesame Street.
A little perspective and flexibility go a long way
While it IS important to keep working on your skills and adding to your knowledge that doesn’t have to mean an intense full-day-of-coding practice EVERY DAY. Coming up for air from time to time will act as a natural flow control valve to limit the input to manageable chunks.  Try to do it all at once and you may just suffer from information overload.
Spend a few hours hip-deep in code then go read or write a blog post. Read an article. Catch up on industry news. Watch a video. Take a walk. Pacing yourself will do wonders for retention. DON’T try to do it all at once. You can’t upload this knowledge a la the “I know Kung-Fu” scene from The Matrix (much as we may all WANT to do it that way!)
Working at this 6-10 hours a day, 7 days a week for weeks on end may be a great way to learn but it’s also a great way to blow a fuse.
So on those days when you just can’t bring your A-game, take a step back, find a distraction, watch an industry-specific vodcast or screencast. Better yet take SEVERAL steps, all the way out the front door. See that scary bright electromagnetic disturbance in the sky? That’s the sun.
Health and wellness will give you the strength to sit still and stare at a screen for 16 hours a day and WRITE MORE CODE! Mwa-Hahahahahahahahahahaha!
Um. Pardon me. I think I’ll step outside for a few minutes…
Much as I wish this were an Allen Watts-esque style discourse on the eternal yet ephemeral nature of time, my Post Title is more a sign of contrition… I have let my blog lapse for a month as I transitioned from a student to… well something approaching ‘Intern’ on the learning spectrum.
My last month in the Firehose Project was intense and fulfilling and draining all at the same time. I was rushing to finish a few solo projects and starting a group project and trying to cram as much learning and doing into my last precious days as I could.
Did I emerge from the program a Ruby on Rails Expert? Nope. But I DID emerge as a well-indoctrinated Ruby on Rails Novice with some solid skills and a hunger to build upon them. As with any new discipline, I now have a much better idea of the scope of what I do not know. And I add to my knowledge and skills daily.
I am currently working on a group project with a team of FHP students and a skilled Lead (Group Mentor) in the “Product Manager” role (though sometimes that may be closer to a kindergarten teacher role - he wrangles cats and bolsters egos and makes sure we clean up our Legos™… hmm come to think of it that’s probably about right for “Product Manager”)
Hard to describe the highs and lows of this venture. A friend asked me yesterday how I like it. And here is the gist (no github pun intended, but there it is!) of my response(s):
“It is good, frustrating, up-hill progress that has me working 10-12+ hours in a stretch without looking up.” “I love it so long as I don’t spend more than ~24 hours hard-core stuck.” “It stimulates my brain.” “Every little section I finish is a new reason to party.” “I get to see results of my work. It’s like editing sound, there is immediate gratification and satisfaction.” “I get to move Trello cards from Backlog to In Progress to Completed and get little stickers of accomplishment just like flippin’ kindergarten! I LOVE IT!” –me
This group project is kicking my arse, but in a GOOD way. It challenges me and keeps me on my toes and helps me learn and practice all sorts of useful skills that run the Gambit from working on a team to version-control to the nuts-and-bolts of writing code. I am utterly leveling up my TDD and Git skills. No question. And the satisfaction of watching our App grow from printed instructions to a functional piece of software is BRILLIANT!
I’m not saying there haven’t been challenging days, but each stumbling block is a learning-experience-in-disguise and each frustration is the potential for satisfaction. Now if only I could remember that whilst in the thick of it!
Heh... On that note: I happened to be watching Bill Burr last night (don't hold it against me, I didn't pick it!) and he said something about the process of learning home repairs and maintenance that I feel COMPLETELY applies to the process of learning to code... The pertinent sound-byte is in the first 10 seconds, watch the rest at your own risk. ;-)
Just the facts Ma’am…
I haven’t felt this happy/content/satisfied on a daily basis for a very long time. I am learning and growing my coding skills daily and having a blast. Choosing to Ride the Rails has started me in a truly rich and positive new direction for my life.
Today I feel much like I felt in my First Post “The Adventure Begins…” and I am eager to get to the next stop on the Ruby Express.
My coding mentor instructed me last week to “Dive Deep” while working on my current App. Essentially he wanted me to spend time understanding the whys and hows of all the commands, connections, methods, assets, interactions between components of the MVC, calls to the ORM… Anything I touched I was supposed to deepen my understanding of. I even took notes longhand « with a pen « in a paper notebook for some of these.
The following (non)exhaustive list of what I touched upon (and sometimes snorkeled in) during my Curricular Annotations this past week includes:
Yeah. The ones without links are still cooking. Suffice it to say I’ve been drinking from the Firehose this past week. And I have more homework/leads to research more of for the COMING week. No big surprise there, I’ve still got lots to learn and tons to review. I’m pushing myself to progress as far as I can prior to the start of my Group Project, now slated to kick off come Saturday… 5 days from now.
Caught somewhere between nervous and eager at this point. I should write some test classes to help me determine which way is UP once we get going. But would they be Functional or Unit tests? Functional tests on the GravitationalForcesController?
Something to contemplate.
~AMP
1. It TRULY pays to read community posts! - Thanks to community-active FHP alumnus Colin Rubbert for the link to that Dev Tips!
So I wrote a Stack Class in the process of working on a new coding challenge yesterday. The Stack was explained as an abstract data structure that is Last-In-First-Out. I needed to have a functional stack to complete my assignment and at some point I went off on a tangent to code a Number Stack.
This is somewhat my ode to the IP Stack, in that it encodes data and bit lengths to represent items on the Stack.
There is a functional limit to the integers that can be pushed to the stack of<PHONE_NUMBER>606846975.
That is “fffffffffffffff” in Hexadecimal.
I could increase the functional limit by changing the base I convert to to push the data onto the stack, but I didn’t need a gianormous limit and I’m used to working with Hex so I kept it simple.
I spent much of the weekend frustrated. The REASON I was frustrated was because I didn’t Check My Assumptions.
I was working on a coding challenge. My solution involved having two copies of a multi-dimensional Array. I would inspect the first copy (hereafter FC) and based on the results of the inspection make CHANGES to the second copy (SC). This wasn’t necessarily a difficult proposition. I had already solved this problem once and was working on a refactor to improve efficiency.
I started with a clone of my original code and I set about making modifications to eliminate a secondary method and fold it in to the initial iteration of the Array.
Every time I ran the refactored code I found that it was not only changing the SC of the Array, but also the FC. Note: Needed deep copy by way of Marshaling, ‘tis another story.1
The thing that was frustrating the begeebers out of me was that each time I reran my original solution IT WORKED! The FC was unchanged and the SC was properly modified HUZZAH!
…Except that that WASN’T actually the case.
I needed to Check My Assumptions.
I forgot that I had changed the order of the methods I called when I tested my refactored script. And while the original solution DID properly make changes to the SC, it WAS simultaneously changing the FC. Problem was I didn’t know that because I was only inspecting the FC BEFORE calling the method to apply the changes to the SC.
I hadn’t held my test methodology constant in the refactored script, so I was seeing a different set of results. Once I realized my error I changed the order I was calling the methods in my original solution script and found that IT TOO had changed the FC at the same time it was changing the SC.
Had I just Checked My Assumptions I might have saved myself days of frustration and headaches as I chanted over and over “But it worked in the original solution!”
Check Your Assumptions At The Door!
The moral to this story is this: Check Your Assumptions. Start with a fresh pair of eyes EACH AND EVERY TIME you look at the code. Reset your expectations.  Faulty assumptions are PEBKAC 100% of the time, so CYA.


On my part I just finally got a TXSCLCC! I was doing only beer for a while...
blackjok3r01-Apr-19 07:29 AM
It is a random process guys.. You need litteral days of data to know how your node is working. Some times youc an go weeks without a nota on one chain even though your overall stats are qutie good.
smk762 - dracocanis ominator01-Apr-19 07:59 AM
I'm gonna disagree its random until I start having problems notarising.
3
CrisF01-Apr-19 09:23 AM
Dead in the water here. Will leave it for a few more hours.
SHossain01-Apr-19 09:23 AM
the long gap in testnet is normal
restart your node and try again.
CrisF01-Apr-19 09:23 AM
I did 2 hours ago.
SHossain01-Apr-19 09:24 AM
after we added TXSCLCC chain, my node was only notarizing that. i rebooted my node and started everything again and it started working better
the network is running fine
CrisF01-Apr-19 09:24 AM
Ok, will give that a go.
That's why I've been worried, haha.
SHossain01-Apr-19 09:26 AM
the last taks was to mimic a little bit of mainnet. after each restart of iguana it may take few hours before getting any notarization. last year's testnet was the same. please guys do not panic.
2
and, make sure you are using a decent setup for this testnet. using a 2-core VPS with 4GB RAM may not be enough (i'm sure you guys all have a good setup )
CrisF01-Apr-19 09:28 AM
It's good, but not haha
3
1
PHBA206101-Apr-19 09:33 AM
my node ran out of kmd utxo when I was sleeping and has not notarized ever since, just did the split and now wait and hope
blackjok3r01-Apr-19 09:33 AM
I will use the smallest crappiest VPS I can get my hands on that works (edited)
SHossain01-Apr-19 09:34 AM
true it works on low-end setup
blackjok3r01-Apr-19 09:34 AM
not very well... but it works
its onyl testnet why waste $$$
as long as it works
SHossain01-Apr-19 09:36 AM
2-core with 8GB RAM is a good setup
PHBA206101-Apr-19 09:39 AM
If only I could learn that sooner. I used a VPS with the exact spec requirement for the mainnet
zatJUM01-Apr-19 09:40 AM
My VPS for testnet is too crappy, sorry
SHossain01-Apr-19 09:41 AM
@PHBA2061 i did the same last year. and, this year also. current testnet node is better than the min rec spec
smk762 - dracocanis ominator01-Apr-19 09:41 AM
I wanted to testdrive what I'd be using for mainnet, so mine's not bad.
2
zatJUM01-Apr-19 09:41 AM
I'll just try to find why iguana doesn't work with pizza and beer, but won't be able to run TXSCLCC
blackjok3r01-Apr-19 09:42 AM
just add 4GB swap
mine is fine with that... if iguana is using too much ram, use my build
smk762 - dracocanis ominator01-Apr-19 09:42 AM
took a while to get it verified, but so far I'm pretty happy with it
blackjok3r01-Apr-19 09:43 AM
looks like tis doing well
SHossain01-Apr-19 09:43 AM
Test driving your hw for mainnet is the best idea
you would already know if that works fine or not
blackjok3r01-Apr-19 09:43 AM
Agreed if you need to do that sure
SHossain01-Apr-19 09:44 AM
no need to panic when mainnet starts
blackjok3r01-Apr-19 09:44 AM
I did that last year(edited)
SHossain01-Apr-19 09:44 AM
we want ops to be ready when mainnet launches
2
smk762 - dracocanis ominator01-Apr-19 09:44 AM
yeah, means if I fail I cant blame hardware. And I like being hyper competitive in things that aren't real
1
PHBA206101-Apr-19 09:46 AM
exactly, same thoughts here
ComputerGenie 👴👴👴01-Apr-19 10:59 AM
Given the last 4 notarizations of TXSCLCC, I'm going to say that either alright's theory of "first come, first served" is busted or my node is
mrlynch01-Apr-19 11:12 AM
pro'lly your node
ComputerGenie 👴👴👴01-Apr-19 11:13 AM
lol
mrlynch01-Apr-19 11:14 AM
am thinking of giving @blackjok3r's iguana a go.. @smk762 - dracocanis ominator is pulling away from me faster than i like
would that work on mainnet as well?
blackjok3r01-Apr-19 11:15 AM
it works for everything that I can tell... LABS has a slightly modified verison for MoMoM stuff... but I think that needs to come to mainnet at teh hard fork.
mrlynch01-Apr-19 11:15 AM
will it be integrated at the hard fork?
the LABS iguana?
ComputerGenie 👴👴👴01-Apr-19 11:16 AM
likely depends if he breaks it again between now and then
1
CrisF01-Apr-19 11:16 AM
haha
Are you using regular iguana, @ComputerGenie 👴👴👴
(non-Labs?)
dukeleto01-Apr-19 11:17 AM
labs notary testnet, say what?
ComputerGenie 👴👴👴01-Apr-19 11:17 AM
yes, I'm currently using the repo alright put up for the test and some labs scripts
CrisF01-Apr-19 11:17 AM
Labs iguana on KMD testnet @dukeleto
dukeleto01-Apr-19 11:18 AM
i was being snarky
1
no massive iguana changes without insanely massive testing. Get it tattoo'ed to your eyelids
ComputerGenie 👴👴👴01-Apr-19 11:18 AM
I haven't had time to use all of LABS stuff the way I'd like, @dukeleto put up some silly pool bounty that I'm trying to grab(edited)
1
blackjok3r01-Apr-19 11:23 AM
Yes My iguana neds much testing... as Its propelled my node to clear no1 SH ... and show no suign of slowing down, I assume ppl will just move over to it... if it doesnt break things I will merge it to jls repo
smk762 - dracocanis ominator01-Apr-19 11:24 AM
I'm not using @blackjok3r 's iguana... yet
blackjok3r01-Apr-19 11:24 AM
pretty sure it has no bugs apart from a small ~8mb per hour memory leak that I couldnt seem to fix.
better than 100MB an hour that it was though
1
ComputerGenie 👴👴👴01-Apr-19 11:25 AM
yes, it is much better now
now if you can only make komodod not grow with chain size.....
1
1
mrlynch01-Apr-19 11:26 AM
@smk762 - dracocanis ominator you do have a full specced server tho don't you?
Contribute to MrMLynch/nnutils development by creating an account on GitHub.
stats, cleanwallettransactionskmdandac, utxosplitter for this testnet
add TXSCLCC to ~/komodo/src/assetchains.json
ComputerGenie 👴👴👴01-Apr-19 11:34 AM
cleanwallettransactionskmdandac
#!/bin/bash
cd ~
./listassetchains.py | while read coin; do
echo $coin
komodo-cli -ac_name=$coin cleanwallettransactions
done
komodo-cli cleanwallettransactions
mrlynch01-Apr-19 11:35 AM
it's not for big boys like you saw @Strob asking for scripts
ComputerGenie 👴👴👴01-Apr-19 11:36 AM
like me? listassetchains.py and all its calls are shit I stole from Labs
mrlynch01-Apr-19 11:37 AM
we don't steal... we reassign & reallocate
ComputerGenie 👴👴👴01-Apr-19 11:37 AM
ah, yes, that
mrlynch01-Apr-19 11:37 AM
i reassigned it from @lukechilds
ComputerGenie 👴👴👴01-Apr-19 11:38 AM
lol
I've got a whole folder of scripts that have bits from just about everyone
ChickenHawk's backend would take more text to credit than the chars the code has
just use my igguana and place ity on 1gbit connection... will go directly to number 1 in region
1
Whats funny is I can make it go waaay faster than that.... There turned out to be a single number in the source you change to increase counts massivly....
SHossain01-Apr-19 11:47 AM
@jorian are you using @blackjok3r 's iguana?
blackjok3r01-Apr-19 11:48 AM
yes he is
SHossain01-Apr-19 11:48 AM
makes sense why aliens are falling behind him
blackjok3r01-Apr-19 11:48 AM
patchkez and komodo pioneers too
SHossain01-Apr-19 11:48 AM
but, aliens are not far far behind with normal iguana though
blackjok3r01-Apr-19 11:48 AM
The trick is the loop that calls the dpow threads to start... teh more coins added the longe r and longer between each call... so I wrote a new loop wthat calls them faster... very simple
SHossain01-Apr-19 11:49 AM
imagine if aliens start using your iguana
blackjok3r01-Apr-19 11:49 AM
can just keep decreasing wait time until RPC of daemon on KMD crahses... that will be the limit(edited)
on jorians server ... we had to slow down the call on KMD by 50% but on my node that sent it directly to last palce
seems every server will be diffrent... really opens up some crazy possibilities this year...
Who can tune the iguana to preform the best without breaking the network


Full Stack developer 글쓰는게 서툴러요... 노력은 배신하지 않는다.
Follow me |
© 2016 creamyCode. This work is liscensed under CC BY-NC 4.0. Powered by jekyll and codinfox-lanyon


Guard [![Build Status](secure.travis-ci.org/guard/guard.png?branch=master)](http://travis-ci.org/guard/guard)
Guard is a command line tool to easily handle events on file system modifications.
If you have any questions please join us in our [Google group](groups.google.com/group/guard-dev) or on `guard` (irc.freenode.net).
Features
- [FSEvent](en.wikipedia.org/wiki/FSEvents) support on Mac OS X.
- [Inotify](en.wikipedia.org/wiki/Inotify) support on Linux.
- [Directory Change Notification](msdn.microsoft.com/en-us/library/aa365261\(VS.85\).aspx) support on Windows.
- Polling on the other operating systems.
- Automatic and super fast file modification detection when polling is not used. Even new and deleted files are detected.
- Support for visual system notifications.
- Tested against Ruby 1.8.7, 1.9.2, 1.9.3, REE and the latest versions of JRuby & Rubinius.
Screencast
Ryan Bates made an excellent [RailsCast about Guard](railscasts.com/episodes/264-guard) and you should definitely watch it for a nice introduction to Guard.
Installation
The simplest way to install Guard is to use [Bundler](gembundler.com/).
Add Guard to your `Gemfile`:
```ruby group :development do
gem 'guard'
end ```
and install it by running Bundler:
```bash $ bundle ```
Generate an empty `Guardfile` with:
```bash $ guard init ```
If you are using Windows and want colors in your terminal, you’ll have to add the [win32console](rubygems.org/gems/win32console) gem to your `Gemfile` and install it with Bundler:
```ruby group :development do
gem 'win32console'
end ```
**It’s important that you always run Guard through Bundler to avoid errors.** If you’re getting sick of typing `bundle exec` all the time, try the [Rubygems Bundler](github.com/mpapis/rubygems-bundler).
### System notifications
You can configure Guard to make use of the following system notification libraries, but it’s strongly recommended to use either Ruby GNTP, Libnotify or Notifu:
#### Ruby GNTP
- Runs on Mac OS X, Linux and Windows
- Supports [Growl](growl.info/) version >= 1.3, [Growl for Linux](mattn.github.com/growl-for-linux/), [Growl for Windows](www.growlforwindows.com/gfw/default.aspx) and [Snarl](sites.google.com/site/snarlapp/home)
The [ruby_gntp](rubygems.org/gems/ruby_gntp) gem sends system notifications over the network with the [Growl Notification Transport Protocol](www.growlforwindows.com/gfw/help/gntp.aspx) and supports local and remote notifications.
Guard supports multiple notification channels for customizing each notification type. For Growl on Mac OS X you need to have at least version 1.3 installed.
To use `ruby_gntp` you have to add it to your `Gemfile` and run bundler:
```ruby group :development do
gem 'ruby_gntp'
end ```
#### Libnotify
- Runs on Linux, FreeBSD, OpenBSD and Solaris
- Supports [Libnotify](developer.gnome.org/libnotify/)
The [libnotify](rubygems.org/gems/libnotify) gem supports the Gnome libnotify notification daemon, but it can be used on other window managers as well. You have to install the `libnotify-bin` package with your favorite package manager.
To use `libnotify` you have to add it to your `Gemfile` and run bundler:
```ruby group :development do
gem 'libnotify'
end ```
#### Notifu
- Runs on Windows
- Supports [Notifu](www.paralint.com/projects/notifu/)
The [rb-notifu](rubygems.org/gems/rb-notifu) gem supports Windows system tray notifications.
To use `rb-notifu` you have to add it to your `Gemfile` and run bundler:
```ruby group :development do
gem 'rb-notifu'
end ```
#### Growl
- Runs on Mac OS X
- Supports all [Growl](growl.info/) versions
The [growl](rubygems.org/gems/growl) gem is compatible with all versions of Growl and uses a command line tool [growlnotify](growl.info/extras.php#growlnotify) that must be separately downloaded and installed. The version of the command line tool must match your Growl version. The `growl` gem does *not* support multiple notification channels.
You have to download the installer for `growlnotify` from the [Growl download section](growl.info/downloads).
To use `growl` you have to add it to your `Gemfile` and run bundler:
```ruby group :development do
gem 'growl'
end ```
#### GrowlNotify
- Runs on Mac OS X
- Supports [Growl](growl.info/) version >= 1.3
- Doesn’t support JRuby and MacRuby.
- Doesn’t work when forking, e.g. with [Spork](github.com/sporkrb/spork).
The [growl_notify](rubygems.org/gems/growl_notify) gem uses AppleScript to send Growl notifications. The gem needs a native C extension to make use of AppleScript and does not run on JRuby and MacRuby.
Guard supports multiple notification channels for customizing each notification type and you need to have at least Growl version 1.3 installed.
To use `growl_notify` you have to add it to your `Gemfile` and run bundler:
```ruby group :development do
gem 'growl_notify'
end ```
Add more Guards
Guard is now ready to use and you should add some Guards for your specific use. Start exploring the many Guards available by browsing the [Guard organization](github.com/guard) on GitHub or by searching for `guard-` on [RubyGems](rubygems.org/search?utf8=%E2%9C%93&query=guard-).
When you have found a Guard of your interest, add it to your `Gemfile`:
```ruby group :development do
gem '<guard-name>'
end ```
See the init section of the Guard usage below to see how to install the supplied Guard template that you can install and to suit your needs.
Usage
Guard is run from the command line. Please open your terminal and go to your project work directory.
### Help
You can always get help on the available tasks with the `help` task:
```bash $ guard help ```
To request more detailed help on a specific task is simple: just appending the task name to the help task. For example, to get help for the `start` task, simply run:
```bash $ guard help start ```
### Init
You can generate an empty `Guardfile` by running the `init` task:
```bash $ guard init ```
In addition, the `init` task can be used to append a supplied Guard template from an installed Guard to your existing `Guardfile`:
```bash $ guard init
You can also define your own templates in `~/.guard/templates/` which can be appended in the same way to your existing `Guardfile`:
```bash $ guard init
### Start
Just launch Guard inside your Ruby or Rails project with:
```bash $ guard ```
Guard will look for a `Guardfile` in your current directory. If it does not find one, it will look in your `$HOME` directory for a `.Guardfile`.
#### `-c`/`—clear` option
The shell can be cleared after each change:
```bash $ guard —clear $ guard -c # shortcut ```
#### `-n`/`—notify` option
System notifications can be disabled:
```bash $ guard —notify false $ guard -n f # shortcut ```
Notifications can also be disabled globally by setting a `GUARD_NOTIFY` environment variable to `false`.
#### `-g`/`—group` option
Only certain Guard groups can be run:
```bash $ guard —group group_name another_group_name $ guard -g group_name another_group_name # shortcut ```
See the Guardfile DSL below for creating groups.
#### `-v`/`—verbose` option
Guard can be run in verbose mode:
```bash $ guard —verbose $ guard -v # shortcut ```
#### `-w`/`—watchdir` option
Guard can watch in any directory instead of the current directory:
```bash $ guard —watchdir ~/your/fancy/project $ guard -w ~/your/fancy/project # shortcut ```
#### `-G`/`—guardfile` option
Guard can use a `Guardfile` not located in the current directory:
```bash $ guard —guardfile ~/.your_global_guardfile $ guard -G ~/.your_global_guardfile # shortcut ```
#### `-A`/`—watch-all-modifications` option
Guard can optionally watch all file modifications like moves or deletions with:
```bash $ guard start -A $ guard start —watch-all-modifications ```
#### `-i`/`—no-interactions` option
Turn off completely any Guard terminal interactions with:
```bash $ guard start -i $ guard start —no-interactions ```
### `-I`/`—no-vendor` option
Ignore the use of vendored gems with:
```bash $ guard start -I $ guard start —no-vendor ```
### List
You can list the available Guards with the `list` task:
```bash $ guard list
Available guards:
coffeescript compass cucumber jammit ronn rspec * spork yard
See also github.com/guard/guard/wiki/List-of-available-Guards
- denotes ones already in your Guardfile
```
### Show
You can show the structure of the groups and their Guards with the `show` task:
```bash $ guard show
(global):
shell
Group backend:
bundler rspec: cli => "--color --format doc"
Group frontend:
coffeescript: output => "public/javascripts/compiled" livereload
```
This shows the internal structure of the evaluated `Guardfile` or `.Guardfile`, with the `.guard.rb` file. You can read more about these files in the shared configuration section below.
Interactions
You can interact with Guard and enter commands when Guard has nothing to do. Guard understands the following commands:
- `↩`: Run all Guards.
- `h`, `help`: Show a help of the available interactor commands.
- `r`, `reload`: Reload all Guards.
- `n`, `notification`: Toggle system notifications on and off.
- `p`, `pause`: Toggles the file modification listener. The prompt will
change to `p>` when paused.
This is useful when switching Git branches.
- `e`, `exit`: Stop all Guards and quit Guard.
Instead of running all Guards with the `↩` key, you can also run a single Guard by entering its name:
```bash > rspec ```
It’s also possible to run all Guards within a group by entering the group name:
```bash > frontend ```
The same applies to Guard reloading. You can reload a Guard with the following command:
```bash > ronn reload ```
This will reload only the Ronn Guard. You can also reload all Guards within a group:
```bash > backend reload ```
### Readline support
With Readline enabled, you’ll see a command prompt `>` when Guard is ready to accept a command. The command line supports history navigation with the `↑` and `↓` arrow keys, and command auto-completion with the `⇥` key.
Unfortunately Readline [does not work on MRI](bugs.ruby-lang.org/issues/5539) on Mac OS X by default. You can work around the issue by installing a pure Ruby implementation:
```ruby platforms :ruby do
gem 'rb-readline'
end ```
Guard will automatically enable Readline support if your environment supports it, but you can disable Readline with the `interactor` DSL method or turn off completely with the `—no-interactions` option.
Guardfile DSL
The Guardfile DSL is evaluated as plain Ruby, so you can use normal Ruby code in your `Guardfile`. Guard itself provides the following DSL methods that can be used for configuration:
### guard
The `guard` method allows you to add a Guard to your toolchain and configure it by passing the options after the name of the Guard:
```ruby guard :coffeescript, :input => ‘coffeescripts’, :output => ‘javascripts’ ```
You can define the same Guard more than once:
```ruby guard :coffeescript, :input => ‘coffeescripts’, :output => ‘javascripts’ guard :coffeescript, :input => ‘specs’, :output => ‘specs’ ```
### watch
The `watch` method allows you to define which files are watched by a Guard:
```ruby guard :bundler do
watch('Gemfile')
end ```
String watch patterns are matched with [String#==](www.ruby-doc.org/core-1.9.2/String.html#method-i-3D-3D). You can also pass a regular expression to the watch method:
```ruby guard :jessie do
watch(%r{^spec/.+(_spec|Spec)\.(js|coffee)})
end ```
This instructs the jessie Guard to watch for file changes in the `spec` folder, but only for file names that ends with `_spec` or `Spec` and have a file type of `js` or `coffee`.
You can easily test your watcher regular expressions with [Rubular](rubular.com/).
When you add a block to the watch expression, you can modify the file name that has been detected before sending it to the Guard for processing:
```ruby guard :rspec do
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
end ```
In this example the regular expression capture group `(.+)` is used to transform a file change in the `lib` folder to its test case in the `spec` folder. Regular expression watch patterns are matched with [Regexp#match](www.ruby-doc.org/core-1.9.2/Regexp.html#method-i-match).
You can also launch any arbitrary command in the supplied block:
```ruby guard :shell do
watch('.*') { `git status` }
end ```
### group
The `group` method allows you to group several Guards together. This comes in handy especially when you have a huge `Guardfile` and want to focus your development on a certain part.
```ruby group :specs do
guard :rspec do watch(%r{^spec/.+_spec\.rb$}) end
end
group :docs do
guard :ronn do watch(%r{^man/.+\.ronn?$}) end
end ```
Groups to be run can be specified with the Guard DSL option `—group` (or `-g`):
```bash $ guard -g specs ```
Guards that don’t belong to a group are considered global and are always run.
### notification
If you don’t specify any notification configuration in your `Guardfile`, Guard goes through the list of available notifiers and takes the first that is available. If you specify your preferred library, auto detection will not take place:
```ruby notification :growl ```
will select the `growl` gem for notifications. You can also set options for a notifier:
```ruby notification :growl, :sticky => true ```
Each notifier has a slightly different set of supported options:
```ruby notification :growl, :sticky => true, :host => ‘<IP_ADDRESS>’, :password => ‘secret’ notification :gntp, :sticky => true, :host => ‘<IP_ADDRESS>’, :password => ‘secret’ notification :growl_notify, :sticky => true, :priority => 0 notification :libnotify, :timeout => 5, :transient => true, :append => false notification :notifu, :time => 5, :nosound => true, :xp => true ```
It’s possible to use more than one notifier. This allows you to configure different notifiers for different OS if your project is developed cross-platform or if you like to have local and remote notifications.
Notifications can also be turned off in the `Guardfile`, in addition to setting the environment variable `GUARD_NOTIFY` or using the cli switch `-n`:
```ruby notification :off ```
### interactor
You can disable the interactor auto detection and for a specific implementation:
```ruby interactor :readline ```
will select Readline interactor. You can also force the simple interactor without Readline support with:
```ruby interactor :simple ```
If you do not need the keyboard interactions with Guard at all, you can turn them off:
```ruby interactor :off ```
### callback
The `callback` method allows you to execute arbitrary code before or after any of the `start`, `stop`, `reload`, `run_all` and `run_on_change` Guards’ method. You can even insert more hooks inside these methods.
```ruby guard :rspec do
watch(%r{^spec/.+_spec\.rb$}) callback(:start_begin) { `mate .` }
end ```
Please see the [hooks and callbacks](github.com/guard/guard/wiki/Hooks-and-callbacks) page in the Guard wiki for more details.
### ignore_paths
The `ignore_paths` method allows you to ignore top level directories altogether. This comes is handy when you have large amounts of non-source data in you project. By default `.bundle`, `.git`, `log`, `tmp`, and `vendor` are ignored. Currently it is only possible to ignore the immediate descendants of the watched directory.
```ruby ignore_paths ‘public’ ```
### Example
```ruby ignore_paths ‘foo’, ‘bar’
notification :growl_notify notification :gntp, :host => ‘<IP_ADDRESS>‘
group :backend do
guard :bundler do watch('Gemfile') end guard :rspec, :cli => '--color --format doc' do watch(%r{^spec/.+_spec\.rb$}) watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } watch(%r{^spec/models/.+\.rb$}) { ["spec/models", "spec/acceptance"] } watch(%r{^spec/.+\.rb$}) { `say hello` } watch('spec/spec_helper.rb') { "spec" } end
end
group :frontend do
guard :coffeescript, :output => 'public/javascripts/compiled' do watch(%r{^app/coffeescripts/.+\.coffee$}) end guard :livereload do watch(%r{^app/.+\.(erb|haml)$}) end
end ```
Shared configurations
You may optionally place a `.Guardfile` in your home directory to use it across multiple projects. It’s evaluated when you have no `Guardfile` in your current directory.
If a `.guard.rb` is found in your home directory, it will be appended to the `Guardfile` in your current directory. This can be used for tasks you want guard to handle but other users probably don’t.
For example, indexing your source tree with [Ctags](ctags.sourceforge.net):
```ruby guard :shell do
watch(%r{^(?:app|lib)/.+\.rb$}) { `ctags -R` }
end ```
Advanced Linux system configuration
It’s not uncommon to encounter a system limit on the number of files you can monitor. For example, Ubuntu Lucid’s (64bit) inotify limit is set to 8192.
You can get your current inotify file watch limit by executing:
```bash $ cat /proc/sys/fs/inotify/max_user_watches ```
And set a new limit temporary with:
```bash sudo sysctl fs.inotify.max_user_watches=524288 sudo sysctl -p ```
If you like to make your limit permanent, use:
```bash echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf sudo sysctl -p ```
You may also need to pay attention to the values of `max_queued_events` and `max_user_instances`.
Create a Guard
Creating a new Guard is very easy, just create a new gem by running `bundle gem guard-name`, where `name` is the name of your Guard. Please make your Guard start with `guard-`, so that it can easily be found on RubyGems.
```bash $ mkdir guard-name $ cd guard-name $ bundle gem guard-name ```
Now extend the project structure to have an initial Guard:
```bash .travis.yml # bonus point! CHANGELOG.md # bonus point! Gemfile guard-name.gemspec Guardfile lib/
guard/ guard-name/ templates/ Guardfile # needed for `guard init <guard-name>` version.rb guard-name.rb
test/ # or spec/ README.md ```
Your Guard main class `Guard::GuardName` in `lib/guard/guard-name.rb` must inherit from [Guard::Guard](rubydoc.info/github/guard/guard/master/Guard/Guard) and should overwrite at least the `run_on_change` task methods.
Here is an example scaffold for `lib/guard/guard-name.rb`:
```ruby require ‘guard’ require ‘guard/guard‘
module Guard
class GuardName < Guard # Initialize a Guard. # @param [Array<Guard::Watcher>] watchers the Guard file watchers # @param [Hash] options the custom Guard options def initialize(watchers = [], options = {}) super end # Call once when Guard starts. Please override initialize method to init stuff. # @raise [:task_has_failed] when start has failed def start end # Called when `stop|quit|exit|s|q|e + enter` is pressed (when Guard quits). # @raise [:task_has_failed] when stop has failed def stop end # Called when `reload|r|z + enter` is pressed. # This method should be mainly used for "reload" (really!) actions like reloading passenger/spork/bundler/... # @raise [:task_has_failed] when reload has failed def reload end # Called when just `enter` is pressed # This method should be principally used for long action like running all specs/tests/... # @raise [:task_has_failed] when run_all has failed def run_all end # Called on file(s) modifications that the Guard watches. # @param [Array<String>] paths the changes files or paths # @raise [:task_has_failed] when run_on_change has failed def run_on_change(paths) end # Called on file(s) deletions that the Guard watches. # @param [Array<String>] paths the deleted files or paths # @raise [:task_has_failed] when run_on_change has failed def run_on_deletion(paths) end end
end ```
Please take a look at the source code of some of the [existing Guards](github.com/guard) for more concrete example and inspiration.
Alternatively, a new Guard can be added inline to a `Guardfile` with this basic structure:
```ruby require ‘guard/guard‘
module ::Guard
class InlineGuard < ::Guard::Guard def run_all end def run_on_change(paths) end end
end ```
[@avdi](github.com/avdi) has a very cool inline Guard example in his blog post [A Guardfile for Redis](avdi.org/devblog/2011/06/15/a-guardfile-for-redis).
Programmatic use of Guard
The Guardfile DSL can also be used in a programmatic fashion by calling [Guard::Dsl.evaluate_guardfile](rubydoc.info/github/guard/guard/master/Guard/Dsl#evaluate_guardfile-class_method).
Available options are as follow:
- `:guardfile` - The path to a valid `Guardfile`.
- `:guardfile_contents` - A string representing the content of a valid `Guardfile`.
Remember, without any options given, Guard will look for a `Guardfile` in your current directory and if it does not find one, it will look for it in your `$HOME` directory.
Evaluate a `Guardfile`:
```ruby require ‘guard’
Guard.setup Guard::Dsl.evaluate_guardfile(:guardfile => ‘/path/to/Guardfile’) Guard.start ```
Evaluate a string as `Guardfile`:
```ruby require ‘guard’
guardfile = <<-EOF
guard 'rspec' do watch(%r{^spec/.+_spec\.rb$}) end
EOF
Guard::Dsl.evaluate_guardfile(:guardfile_contents => guardfile) Guard.start ```
Issues
You can report issues and feature requests to [GitHub Issues](github.com/guard/guard/issues). Try to figure out where the issue belongs to: Is it an issue with Guard itself or with a Guard implementation you’re using? Please don’t ask question in the issue tracker, instead join us in our [Google group](groups.google.com/group/guard-dev) or on `guard` (irc.freenode.net).
When you file an issue, please try to follow to these simple rules if applicable:
- Make sure you run Guard with `bundle exec` first.
- Add verbose information to the issue by running Guard with the `—verbose` option.
- Add your `Guardfile` and `Gemfile` to the issue.
- Make sure that the issue is reproducible with your description.
Development [![Dependency Status](gemnasium.com/guard/guard.png?branch=master)](https://gemnasium.com/guard/guard)
- Documentation hosted at [RubyDoc](rubydoc.info/github/guard/guard/master/frames).
- Source hosted at [GitHub](github.com/guard/guard).
Pull requests are very welcome! Please try to follow these simple rules if applicable:
- Please create a topic branch for every separate change you make.
- Make sure your patches are well tested. All specs run with `rake
spec:portability` must pass.
- On OS X you need to compile once rb-fsevent executable with `rake build_mac_exec`.
- Update the [Yard](yardoc.org/) documentation.
- Update the README.
- Update the CHANGELOG for noteworthy changes.
- Please **do not change** the version number.
For questions please join us in our [Google group](groups.google.com/group/guard-dev) or on `guard` (irc.freenode.net).
Core Team
- [Michael Kessler](github.com/netzpirat) ([@netzpirat](twitter.com/netzpirat))
- [Rémy Coutable](github.com/rymai) ([@rymai](twitter.com/rymai))
- [Thibaud Guillaume-Gentil](github.com/thibaudgg) ([@thibaudgg](twitter.com/thibaudgg))
Author
[Thibaud Guillaume-Gentil](github.com/thibaudgg) ([@thibaudgg](twitter.com/thibaudgg))
Contributors
[github.com/guard/guard/contributors](https://github.com/guard/guard/contributors)


Hi. If you're viewing this then you either don't have JavaScript enabled or you're using such an old browser that it's not compatible with a lot of my website.
While I understand the importance of backwards compatibility and having a website that works without JavaScript, I use GitHub pages for my hosting. While GitHub is great, with better uptime than GoDaddy, great support, and an easy-to-use CLI, it only supports static HTML pages. This means that all my dynamic content really has to be done via JavaScript.
So, in order to have, say, my photo gallery work, I need JavaScript. All lazy loading and such is JavaScript. I try my best to make the website fast and as compatible as possible, but unfortunately a lot is out of my control.
HomeThanks,
{{site.author.name}}


(Static) Results
Which Elements Are Focusable, Which Are Tabbable?
How Are Elements Scrolled Into View On Focus?
What's the default focus style look like?
Tests
focusable elements - compatibility table
(
test
)
focus events - compatibility table
(
test
)
focus scrolling - compatibility table


Port Lincoln is a major fishing port situated on the southeast coast of the Eyre Peninsular, on the shores of Boston Bay. It is a popular tourist and yachting destination.
Position 34°43′56″S, 135°51′31″E.
For clearance, proceed to the marina on the southeast side of town centre and call Customs.
Last updated January 2014.
Both entrances to Boston Bay are well-buoyed and lit as are the many aquaculture sites.
As it is the home of a large fishing fleet most services are available here.
There is a good anchorage in front of the Yacht Club between, the main wharf and the Town jetty. It is possible to moor to the town jetty for a short stay, which makes it convenient for provisioning.
The Lincoln Cove marina is situated south of the town in Porter Bay. The recreational boaters' part of the marina is to port immediately inside the entrance. Further in are the commercial and fishing fleet berths, as well as berths for visitors' boat over 18m.
There is good cruising around this area.
Last updated September 2014.


-
C1-C3
Function: No movement or sensation below the neck; Ventilator-dependent
ADL: Dependent
Elimination: Dependent
Mobility: sip-n-puff controlled power wheelchair -
C4
Function: Movement and sensation of head and neck, some partial function of the diaphragm
ADL: Dependent
Elimination: Dependent
Mobility: head or chin-operated power wheelchair -
C5
Function: Controls head,neck and shoulders, flexes elbows
ADL: With assistance
Elimination: Dependent
Mobility: power wheelchair usually with goal-post joystick controller -
C6
Function: Uses shoulder, extends wrist
ADL: Independent or with assistance
Elimination: possible to self-cath men (and women with abdominal stoma) and eliminate with device.
Mobility: wheelchair, self transfer -
C7-C8
Function: Extends elbow, flexes wrist, some use of fingers
ADL: Independent
Elimination: Independent
Mobility: manual wheelchair -
T1-T5
Function: Has full hand and finger control, full use of thoracic muscles
ADL: Independent
Elimination: Independent
Mobility: manual wheelchair -
T6-T10
Function: Controls abdominal muscles, has good balance
ADL: Independent
Elimination: Independent
Mobility: manual wheelchair -
T11-L5
Function: Flexes and abducts the hips, flexes and extends the knees
ADL: Independent
Elimination: Independent
Mobility: Ambulates with leg braces, short braces, or canes -
S1-S5
Function: Full control of legs, progressive bowel, bladder and sexual function
ADL: Independent
Elimination: Independent
Mobility: Ambulates with leg braces, short braces, or canes
Neurological Level of Impairment


Variable selection techniques are essential tools for model selection and estimation in high-dimensional statistical models. Through this publicly available package, we provide a unified environment to carry out variable selection using iterative sure independence screening (SIS) and all of its variants in generalized linear models and the Cox proportional hazards model.
| Version: | 0.8-6 |
| Depends: | R (≥ 3.2.4) |
| Imports: | glmnet, ncvreg, survival |
| Published: | 2018-02-13 |
| Author: | Jianqing Fan, Yang Feng, Diego Franco Saldana, Richard Samworth, Yichao Wu |
| Maintainer: | Yang Feng <yang.feng at columbia.edu> |
| License: | GPL-2 |
| NeedsCompilation: | no |
| Citation: | SIS citation info |
| In views: | MachineLearning |
| CRAN checks: | SIS results |
| Reference manual: | SIS.pdf |
| Package source: | SIS_0.8-6.tar.gz |
| Windows binaries: | r-devel: SIS_0.8-6.zip, r-release: SIS_0.8-6.zip, r-oldrel: SIS_0.8-6.zip |
| OS X binaries: | r-release: SIS_0.8-6.tgz, r-oldrel: SIS_0.8-6.tgz |
| Old sources: | SIS archive |
| Reverse suggests: | subsemble, SuperLearner |
Please use the canonical form https://CRAN.R-project.org/package=SIS to link to this page.


Tim Burton’s 1989 Batmobile Becomes Official LEGO Set
by Luke Y. ThompsonWe get spoiled with an abundance of superhero movie riches these days, but in 1989, Batman got all the hype for a good six months. It was a big deal: as far as non-comics fans knew, Adam West was the definitive Batman, and even less campy takes on the character in cartoon and toy form springboarded off his portrayal. So when that first trailer hit and this all-black, actual frightening-looking 1989 Batmobile showed up, it was a huge deal. Goodbye, orange-trim convertible. Hello, bat-wing fins and pop-up machine guns. The message was clear: if you were afraid Michael Keaton would make Batman a comedy, don’t be. He’s gonna get nuts.
Batman himself turns 80 this year, and Tim Burton’s Batman turns 30. It’s the perfect time for LEGO to honor the ground-breaking incarnation that showed what superhero epics could become on the big screen. Equally perfect: LEGO Jack Nicholson! Toys of Nicholson as the Joker remain in scarce supply due to the actor’s exorbitant licensing fees, but a stylized LEGO minifig doesn’t count as an actor likeness. Vicki Vale toys, as far as I know, are non-existent; this might include the first one.
The Batmobile isn’t just a spot-on likeness. It also comes with pop-up guns, and a cockpit that slides forward to open. Relative to the minifigs it’s much larger than the movie version, but that’s a forgivable choice when done to include all the key details. The final model measures nearly two feet long; the set costs $249.99. Expect it to hit stores starting Nov. 29th.
Check out the full gallery below. It’s not going to kill you, but you will want to tell all your friends about it. It’s Batman!


Jessica's Dev Bootcamp Blog
May 24, 2014
Blog Title
Text asdfasdfasdfasdf asdfaasdfssssdfasdfasdfidsa;f;jasdfklsd jf;asldfjklsdfjds;aklfjsa dl;jdskf saldfkjksa ldfjas;lfjksa;dfjdskl;fjs dkl;fjdsakl;fjsdal;fjsdf
May 24, 2014
Text asdfasdfasdfasdf asdfaasdfssssdfasdfasdfidsa;f;jasdfklsd jf;asldfjklsdfjds;aklfjsa dl;jdskf saldfkjksa ldfjas;lfjksa;dfjdskl;fjs dkl;fjdsakl;fjsdal;fjsdf


Yelena Nezhikhovskaya, 63, has been charged with third-degree murder, false reporting and drug delivery resulting in death, according to WPVI-TV.
In December 2018, police were called to a home in Philadelphia, and 32-year-old Yulia Nezhikhovskaya was declared dead at the scene, Fox 29 reported, citing police.
The body was taken to the medical examiner’s office for further investigation.
The ME did not immediately respond to Fox News’ request for information on the cause of death. However, WPVI-TV reported it was found to be drug intoxication and a homicide. The outlet said that according to sources, Yelena gave her daughter a lethal dose of medication and alcohol.


The Walking Dead's Khary Payton shares throwback to time on Hannah Montana
The Walking Dead star Khary Payton has gone and served us all with a throwback to the time he was on Hannah Montana.
That’s right, the 47-year-old who has stolen our hearts with his portrayal of the character King Ezekiel also featured in the kids’ TV programme.
And we can’t lie, it’s a lot to process.
Taking to Instagram, the actor shared the snap of himself on set while posing alongside Miley Cyrus.
In the caption, he wrote: ‘I was young & needed the money… for a haircut! 😂😂😂 #HannahMontana.’
Fans were quick to comment, and couldn’t believe what they had just laid their eyes on.
‘Omg I never knew you were in Hannah Montana,’ one wrote while another added: ‘Oh daaaaang ! Before the king’s dreads grew all the way in.’
Advertisement Advertisement
Someone else said: ‘Wait….WHAAAAAAAAT my mind is officially blown.’
But it seems the star has had a serious glow up, as his new do in The Walking Dead is complete goals – however, he might be in need of a new job soon, as it appears his time as the king is almost up.
That’s right, the much-loved character recently revealed he was battling thyroid cancer, as she showed his buddy Siddiq (Avi Nash) a large lump forming on his neck.
‘I know what it is,’ he told the Hilltop doctor: ‘Growing up, my grandfather went through it and my father. The pain, coughing, swelling – I watched them fight it and win.’
He added: ‘Did you know thyroid cancer has a 98 per cent survival rate? Different times. Times of sorcery and witchcraft. Chemo, iodine radiation therapy, thyroidectomies.’
Since then, Siddiq has been brutally killed off by the Whisperers – meaning Ezekiel’s illness remains a secret.
But will he end up telling his ex-wife Carol?
We will have to wait and see as the mid-season finale airs Sunday on AMC in the US and follows a day later here in the UK.
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


Your session data has been set.
Click HERE to go to the view page to see your variables
Click HERE to return to the form to enter new/change the stored values
Click HERE to destroy the currently set values


Api Documentation for the library
Generated from the triple-slash \\\
comments found in the source code.
DoxFx appears to have a shortcoming when documenting C# 9/0 code; none of the record
types are automatically documented, even when they have triple-slash \\\
comments, as of 2021-05-29
Docfx,json can be configured to support multiple frameworks, and and when so configured, metadata generation works for TargetFramework of net5.0, netstandard2.1, and net47. It generates three sets of metadata, each in its own subdirectory below obj/ApiDocumentation
. The Microsoft documentation has a Version
dropdown, that allows for selection between the appropriate TargetFramework. My guess is that Docfx's group
and/or merge
feature would be the means to accomplish this, but the DocFx documentation is inadequate / unclear.
Until Multiple Versions / TargetFrameworks can be solved, the documentation will be built against just the net5.0 targetFramework


(Current id: {{ issueData.Assignee.Id }})
(Current id: {{ issueData.Priority.Id }})
{{ issueData.Labels | joinBy: ', ' : 'Name' }}
{{ comment.Text }}
No comments yet!


The lterp function performs bi-linear intepolation between two grids. It is a built-in function as of version 2.0 -- in earlier versions it was implemented as a user defined function. The syntax is:
lterp(source,dest)
The data values in the source
expression are interpolated to the grid in the dest
expression. The data values in the dest
expression are ignored. The returned result is on the same grid as dest
.
Works only with gridded data. The source
and dest
expressions must have the same varying dimensions, which may be X, Y, or T. Interpolation is not performed in the Z or E dimension.
The source
and dest
expressions may vary in 1 or 2 dimensions.
If the domain of
source
is larger than the domain of dest
, the returned result will have an expanded grid to cover the requested domain.
For interpolation in the time dimension, you may interpolate (A) between monthly and yearly time axes, or (B) between minute, hourly, and daily time axes.
* This script interpolates a 1-D timeseries of hourly station data to a 3hourly grid
open hourly_station_data.ctl
open 3hourly_grid_data.ctl
set x 1
set y 1
set time 00z1jan 00z1feb
d lterp(s2g1d(var.1(stid=kbwi)),var.2(lon=-77,lat=39))
* This script interpolates 2-D lat/lon grids
'open obs.ctl'
'open model.ctl'
* define the destination grid
'set dfile 1'
'q file'
line5 = sublin(result,5)
ix = subwrd(line5,3)
iy = subwrd(line5,6)
'set x 1 'ix
'set y 1 'iy
'set t 1'
'define grid = obs'
* define the source grid
'set dfile 2'
'q file'
line5 = sublin(result,5)
ix = subwrd(line5,3)
iy = subwrd(line5,6)
'set x 1 'ix
'set y 1 'iy
'set t 1'
'define data = model'
* interpolate model data to obs grid
'd lterp(data,grid)'


SwiftyWeb
Swift library for CGI
- [x] Global variables and functions
- [x] No need to recompile for each edit (but supported)
- [x] Automatic library integration, no Package Manager
- [x] Show compiler errors in browser
- [ ] MySQL
SwiftyWeb includes a Swift helper for CGI.
You can use it like this:
// GET
"h1".htm() {
print("GET Parameters")
}
"ul".htm() {
for (key, value) in GET {
"li".htm() {
print(key+":"+value)
}
}
}
// POST
"h1".htm() {
print("POST Parameters")
}
"ul".htm() {
for (key, value) in POST {
"li".htm() {
print(key+":"+value)
}
}
}
Usage
Init a project, install via the package manager, compile and move?
NO.
With SwiftyWeb, you can simply write your code and open the browser.
Linux and Mac
Install typing this in a shell:
curl https://raw.githubusercontent.com/ColdGrub1384/SwiftyWeb/master/install 2>/dev/null | sudo bash
Slow method
Now, you can write Swift CGIs putting this in the top or your file:
#!/usr/bin/swiftw
// Your code here
(Don't forget to chmod +x your file)
You can also include other files:
#!/usr/bin/swiftw AnotherFile.swift
// Your code here
Fast method
Loading CGIs with ‘#!/usr/bin/swiftw’ is very slow, you can compile files manually typing:
swiftw -o PATH_TO_NEW_EXECUTABLE FILES TO COMPILE
A file will be created and you can put it in your CGI’s folder.
Mac
In Mac, you can also build the framework opening SwiftyWeb.xcodeproj
and include framework in your command line project. Don’t forgot to print "Content-Type: text/html\nContent:\n"
!


Black Unemployment Drops to Lowest Level Ever | Breitbart
The unemployment rate for African Americans fell to 5.4 percent in October, the lowest level on record.
by John CarneyThis is the third consecutive month of record-low unemployment. September’s 5.5 percent matched the record set in August.
The unemployment rate for black men hit a record low of 5.1 percent, down three-tenths from the month prior. That was lower than the previous record low of 5.2 set in December 1973.
The unemployment rate for black women was 4.8 percent, up two-tenths from September.


{% load static %}
{% for image in movie.movieshot_set.all %} {% endfor %}
{{ movie.description|safe }}
{{ review.text }}
© 2021 Django_Movie_Project. All rights reserved | Design by Стефан Мазев.


File Juggler
One of the programs on macOS that I felt was missing on Windows was an alternative for Hazel. I spent ages looking around for an alternative, and the best I could find for a while was DropIt! The only issue with this is that DropIt is a bit more of a manual process in comparison to Hazel, as you have to drag and drop files into the program for them to be sorted1. It worked, but not as well as Hazel fitted in.
However, I recently came across File Juggler and it’s the Hazel replacement for Windows I’ve been after.
Program and Settings
File Juggler acts in the background to monitor folders you set to look at the files you want.
When you open the program, you’re greeted with the rules list, which shows all the rules you have set up.
There’s also the log view, so you can see the activity that’s been carried out since File Juggler was started. This is useful to ensure that items are happening as they should. It has a search function, so if you’re monitoring a lot of files or folders, you can search the log files for a specific instance if you need to. It’s a nice touch, but not something I’ve needed to date.
However, creating a new rule is the main screen that you’d be using - this is where the rules are created.
The rule is created with three items:
- Monitor Locations - The folders that can be monitored (multiple folders can be checked by one rule, which I found more helpful than Hazel, where rules are on a per folder basis)
- If Statements - The statements that need to be matched for the action to occur2
- Action - What action is to be undertaken if the If statement is correct.
This can be seen in a screenshot below of my mobile phone statement filing rule. It works by:
- Monitoring the Downloads or Hazel folder in my Onedrive3;
- It checks the file extension for all pdf files, and then checks the contents of the PDF to see if it states “Bill for mobile(s)” which is a set phrase that occurs within my statements; and
- It then renames the file before moving it to my mobile phone bills folder.
When a file matching this is scanned by File Juggler, it performs the rule on the file and it gets whisked away and filed - keeping my downloads folder tidy and meaning the amount of manual work I have to do is reduced.
A number of variables can be used for the renaming of files and finding files, which means that you can narrow items down quite a lot if needed. For PDF files, I stick with the file contents item, as it can search inside the document and make sure that I’m filing the correct item in the correct location.
Once the rule is saved, tick the box on the rule screen to enable it and then sit back and wait for File Juggler to do it’s work. It’ll happyily sit in the background monitoring the folders you’ve setup.
Differences to Hazel
There are some differences to Hazel, which is to be expected, as File Juggler is written by a different author.
The number of actions that can be completed by File Juggler are perhaps smaller than the list of actions that can be completed in Hazel, but as the run command can be used, this can be teamed up with other programs and command line actions if needed (for example, Hazel can upload files to SFTP servers, but File Juggler would have to rely on a third party script to do so).
This isn’t a major downside, as most of my automation is to file the information I download to the right place.
However, on the plus side, it has some nice features that I don’t believe Hazel does (or if it does, I didn’t see how to use these at the time). One of the ones that I really like is the extract date from the PDF file. The custom date variable allows the program to scan through the PDF file (where the PDF has been OCR’d and that information is available) and find the date in the location you state, and then allow you to take that information and change it.
For example, my mobile bill displays the date in the format of day, full month and full year (1 January 2020) - the following rule below will find the first date in the PDF files and will convert that to yyyy-mm-dd (2020-01-01) ready for the renaming of the file. To me, that saves some time, and allows me to file the PDF’s more accurately, as with Hazel, I was using the file created date - which isn’t always the same as the date in the file itself, due to file timestamps and downloading the file from the internet/Dropbox.
Conclusions
File Juggler costs for £38 and I paid for it before the 30 day trial was up - once I’d got a few rules up and working, it was clear that the money would be well spent and that it’s basically the equivalent of Hazel - certainly for my use case, it works well and I’ve been able to replace my Hazel workflows with it nicely.
I’d certainly recommend giving the free trial a go and seeing if it’s suitable for you.


Posted on June 25, 2017
A matrix-calculus approach to deriving the sensitivity of cross-entropy cost to the weighted input to a softmax output layer. We use row vectors and row gradients, since typical neural network formulations let columns correspond to features, and rows correspond to examples. This means that the input to our softmax layer is a row vector with a column for each class.
Softmax is a vector-to-vector transformation that turns a row vector
into a normalized row vector
The transformation is easiest to describe element-wise. The th output is a function of the entire input , and is given by
Softmax is nice because it turns into a probability distribution.
Softmax is invariant to additively scaling by a constant .
In other words, softmax only cares about the relative differences in the elements of . That means we can protect softmax from overflow by subtracting the maximum element of from every element of . This will also protect against underflow because the denominator will contain a sum of non-negative terms, one of which is .
def softmax(x): """Return the softmax of a vector x. :type x: ndarray :param x: vector input :returns: ndarray of same length as x """ x = x - np.max(x) row_sum = np.sum(np.exp(x)) return np.array([np.exp(x_i) / row_sum for x_i in x])
Since softmax is a vector-to-vector transformation, its derivative is a Jacobian matrix. The Jacobian has a row for each output element , and a column for each input element .
The entries of the Jacobian take two forms, one for the main diagonal entry, and one for every off-diagonal entry. We’ll show how to compute these entries for an arbitrary row of the Jacobian.
First compute the diagonal entry of row . That is, compute the derivative of the ‘th output, , with respect to its ‘th input, . All we need is the division rule from calculus.
Now compute every off-diagonal entry of row . That is, compute the derivative of the ‘th output, , with respect to its ‘th input, , where . Again we use the division rule, but in this case the derivative of the numerator, with respect to is zero, because means the numerator is constant with respect to .
This is nice! The derivative of softmax is always phrased in terms of softmax.
From now on, to keep things clear, we won’t write dependence on . Instead we’ll write as and as , understanding that and are each a function of the entire vector .
The form of the off-diagonals tells us that the Jacobian of softmax is a symmetric matrix. This is nice because symmetric matrices have great numeric and analytic properties. We expand it below. Each row is a gradient of one output element with respect to each of its input elements .
Notice that we can express this matrix as
where the second term is the outer product, because we defined as a row vector.
def jacobian_softmax(s): """Return the Jacobian matrix of softmax vector s. :type s: ndarray :param s: vector input :returns: ndarray of shape (len(s), len(s)) """ return np.diag(s) - np.outer(s, s)
Cross-entropy measures the difference between two probability distributions. We saw that is a distribution. The correct class is also a distribution if we encode it as a one-hot vector:
where the appears at the index of the correct class of this single example.
The cross-entropy between our predicted distribution over classes, , and the true distribution over classes, , is a scalar measure of their difference, which is perfect for a cost function. It’ll drive our softmax distribution toward the one-hot distribution. We can write this cost function as
which is the dot product since we’re using row vectors. This formula comes from information theory. It measures the information gained about our softmax distribution when we sample from our one-hot distribution.
def cross_entropy(y, s): """Return the cross-entropy of vectors y and s. :type y: ndarray :param y: one-hot vector encoding correct class :type s: ndarray :param s: softmax vector :returns: scalar cost """ # Naively computes log(s_i) even when y_i = 0 # return -y.dot(np.log(s)) # Efficient, but assumes y is one-hot return -np.log(s[np.where(y)])
Since our is given and fixed, cross-entropy is a vector-to-scalar function of only our softmax distribution. That means it will have a gradient with respect to our softmax distribution. This vector-to-scalar cost function is actually made up of two steps: (1) a vector-to-vector element-wise and (2) a vector-to-scalar dot product. The vector-to-vector logarithm will have a Jacobian, but since it’s applied element-wise, the Jacobian will be diagonal, holding each elementwise derivative. The gradient of a dot product, being a linear operation, is just the vector .
where we used equation (69) of the matrix cookbook for the derivative of the dot product.
def gradient_cross_entropy(y, s): """Return the gradient of cross-entropy of vectors y and s. :type y: ndarray :param y: one-hot vector encoding correct class :type s: ndarray :param s: softmax vector :returns: ndarray of size len(s) """ return -y / s
By the chain rule, the sensitivity of cost to the input to the softmax layer, , is given by a gradient-Jacobian product, each of which we’ve already computed:
The first term is the gradient of cross-entropy to softmax activation. The second term is the Jacobian of softmax activation to softmax input. Remember that we’re using row gradients - so this is a row vector times a matrix, resulting in a row vector. Expanding and simplifying, we get
The last line follows from the fact that was one-hot and applied to a matrix whose rows are identically our softmax distribution. But actually, any whose elements sum to would satisfy the same property. To be more specific, the equation above would hold not just for one-hot , but for any specifying a distribution over classes.
def error_softmax_input(y, s): """Return the sensitivity of cross-entropy cost to input of softmax. :type y: ndarray :param y: one-hot vector encoding correct class :type s: ndarray :param s: softmax vector :returns: ndarray of size len(s) """ return s - y
Our work thus far considered a single example. Hence , our input to the softmax layer, was a row vector. Alternatively, if we feed forward a batch of examples, then contains a row vector for each example in the minibatch.
Softmax is still a vector-to-vector transformation, but it’s applied independently to each row of .
def batch_softmax(x): """Return matrix of row-wise softmax of x. :type x: ndarray :param x: row per example and column per feature :returns: ndarray of x.shape after row-wise softmax """ # Stabilize by subtracting row max from each row row_maxes = np.max(x, axis=1) row_maxes = row_maxes[:, np.newaxis] # for broadcasting x = x - row_maxes return np.array([softmax(row) for row in x])
Because rows are independently mapped, the Jacobian of row of with respect to row of is a zero matrix.
and the Jacobian of row of with respect to row of is our familiar matrix from before
That means our grand Jacobian of with respect to is a diagonal matrix of matrices, most of which are zero matrices:
def jacobian_batch_softmax(s): """Return array of row-wise Jacobians of s. :type s: ndarray :param s: matrix whose rows are softmaxed :returns: ndarray of shape (s.shape[0], s.shape[0], s.shape[1], s.shape[1]) """ # Array of nonzero Jacobians lying along tensor diagonal return np.array([jacobian_softmax(row) for row in s])
Let each row of be a one-hot label for an example:
Then we compute the mean cross-entropy by averaging the cross-entropy of every matching pair of rows of and . That is, we average over examples, the cross-entropy of each example:
The above simplification works because each row of is . So each column of is . So the matrix product dots rows of with columns of , which is exactly what we want for cross-entropy. Now, we only care about entries where the row index equals the column index. That’s because cross-entropy sums the dot products of matching rows of and . We can sum over matching dot products by using a trace.
Note: this formulation is computationally wasteful. We shouldn’t implement batch cross-entropy this way in a computer. We’re only using it for its analytic simplicity to work out the backpropogating error. However, the end analytic result is actually computationally efficient.
def mean_cross_entropy(y, s): """Return the mean row-wise cross-entropy of y and s. :type y: ndarray :param y: matrix whose rows are one-hot vectors encoding the correct class of each example. :type s: ndarray :param s: matrix whose every row is a softmax distribution over class predictions for a given example. :returns: scalar, mean row-wise cross-entropy cost """ return np.mean([cross_entropy(y_row, s_row) for y_row, s_row in zip(y, s)])
Since mean cross-entropy maps a matrix to a scalar, its Jacobian with respect to will be a matrix.
Since is an element-wise operation mapping a matrix to a matrix, its Jacobian is a matrix of element-wise derivatives which we chain rule by a Hadamard product, rather than by a dot product.
This procedure is always true for any element-wise operations. We can see this by concatenating the rows of .
such that is a row vector of length . Then is an element-wise vector-to-vector transformation again. So it has an diagonal Jacobian matrix.
If we flatten in the same way
then we get
and so
Now since and are each of length , we can reshape this formulation back into matrices, understanding that in both cases the division is element-wise:
and we have our result.
def jacobian_mean_cross_entropy(y, s): """Return the Jacobian matrix for mean cross-entropy. :type y: ndarray :param y: matrix whose rows are one-hot vectors encoding the correct class of each example. :type s: ndarray :param s: matrix whose every row is a softmax distribution over class predictions for a given example. :returns: ndarray of shape y.shape holding gradients as rows """ return -(1 / y.shape[0]) * (y / s)
We apply the chain rule just as before. The only difference is that our gradient-Jacobian product is now a matrix-tensor product. Multiplying a matrix against a tensor is difficult. One approach is to flatten everything, do a vector-matrix product as before, and then reshape everything, but this is not elegant or intuitive. Instead, we dot rows of , each a gradient of a row-wise cross-entropy, against diagonal elements of , each a Jacobian matrix of a row-wise softmax.
We are able to do this because of the fact that is diagonal, which breaks the matrix-tensor product into an element-wise dot product of gradients and Jacobians. We owe this entirely to the fact that softmax is a row-to-row transformation, such that its Jacobian tensor is diagonal.
Where the third step followed by the fact that is diagonal. So the sensitivity of cost to the weighted input to our softmax layer is just the difference of our softmax matrix and our matrix of one-hot labels, where every element is divided by the number of examples in the batch.
def batch_error_softmax_input(y, s): """Return the sensitivity of cross-entropy cost to input of softmax. :type y: ndarray :param y: matrix whose rows are one-hot vectors encoding the correct class of each example. :type s: ndarray :param s: matrix whose every row is a softmax distribution over class predictions for a given example. :returns: ndarray of shape y.shape """ return (1 / y.shape[0]) * (S - Y)


--- redirect_from: /our_values.html show_hero: true ---
The old political parties are broken, and we need new choices for the 21st century. We are a new political party that's all about working towards a better future for everyone, built on openness, collaboration and the power of the Internet to connect us all.
We're built around listening to you, and anyone can read and contribute to our open-source manifesto online. We're building a movement for a new type of democracy. If that sounds like something you can believe in, join the party today!
Not a UK voter? Want to join without donating? Want more details? Click here.


home
blog
portfolio
Minecraft Librarian
A python program that returns in game item id's. Scans information from official Minecraft Wiki
Notable Features
Receives information from the Minecraft Wiki
Cache's the info scraped from the wiki
Searches using all words or any words
Order of search words does not affect results