1.DevOps Introduction
We can say from the very beginning software industry is divided into two parts ,Development and Operations.
-
Development focuses on creating and testing software’s.
-
Operations is focused on delivering those software’s to user in form of a website or as an installable software.
Once delivered we our job is
-
maintain the software,
-
we deliver new features to our users
-
make sure the software’s stay up and running and healthy
if we make quick changes (adding new features continuously) then stability becomes an issue. We are living in a world where there are frequent changes to our software’s and apps.
-
Developers aim to create latest features quickly and rapidly.
-
Operations aim is to keep systems stable.
-
Quick changes are the user demand.
-
User also needs stable software or Apps.
DevOps whole and sole objective is to Deliver latest and greatest features to the user with stability.
DevOps LifeCycle
DevOps Lifecycle includes Development and Operations teams working together. As Developers work on their agile iterations, Ops must work in setting up systems and automating the procedure of deployment.
agile model gives code repeatedly to deploy it on systems, that’s going to be continuous release of code and that must be continuously deployed to many servers in Dev, QA, Staging & Production environments.
If the code deployment process is not automated then ops team must manually do the deployment. Deployment may include below mentioned procedures.
-
Create servers if they don’t exist (On cloud or virtual env).
-
Install and setup prerequisites or dependencies on servers.
-
Build the software from raw source code (If not done by Developers).
-
Deploy software to servers.
-
Do config changes to OS and software.
-
Setup Monitoring.
-
Feedback & Report.
For this, all the process must be automated, we must automate first Build and Release process which includes.
-
Developers push the code in a centralised place.
-
Fetch the developers code.
-
Validate code.
-
Build & test code
-
Package it into distributable format(software/artifacts).
-
Release it.
The DevOps Lifecycle Looks Like This:
-
Check in code
-
Pull code changes for build
-
Run tests (continuous integration server to generate builds & arrange releases): Test individual models, run integration tests, and run user acceptance tests.
-
Store artefacts and build repository (repository for storing artefacts, results & releases)
-
Deploy and release (release automation product to deploy apps)
-
Configure environment
-
Update databases
-
Update apps
-
Push to users – who receive tested app updates frequently and without interruption
-
Application & Network Performance Monitoring (preventive safeguard)
-
Rinse and repeat
What Is Continuous Integration.
Developers will push their code several times in a day to a central repository, every time there is code change it should be pulled, built, tested and notify to the user. No deployment involved here
Refer in old devops notes
DevOps Tools
Version Control Systems:
Is used to store the source code, a central place to keep all the code and tracks its version.
For Example:
-
Git
-
SVN
-
TFS
-
Github
-
bitbucket
Build Tools:
Build process is where we take the raw source code, test it and build it into a software. This process is automated by build tools.
For Example:
-
Maven
-
ANT
-
MSBuild
-
Gradle
-
NANT
Continuous Integration Tools:
For Example:
-
Jenkins
-
Circle CI
-
Hudson
-
Bamboo
-
Teamcity
Configuration Management Tools:
Also known as automation tools, can be used to automate system related tasks like software installation, service setup, file push/pull etc. Also used to automate cloud and virtual infrastructure.
For Example:
-
Ansible
-
Chef
-
Puppet
-
Saltstack
Cloud Computing:
Well this is not any tool but a service accessed by users through internet. A service that provides us with compute resource to create virtual servers, virtual storage, networks etc. There are few providers in the market who gives us public cloud computing services.
For Example:
-
AWS
-
Azure
-
Google Cloud
-
Rackspace
Monitoring Tools:
Is used to monitor our infrastructure and application health. It sends us notifications and reports through email or other means.
For Example:
-
Nagios
-
Sensu
-
Icinga
-
Zenoss
-
Monit
Containers & Microservices:
Well to be very frank this cannot be described to you right now. Its described in detail in separate chapter. We need to have lot of Infra & Development knowledge to understand this category of tool.
For Example:
-
Docker
-
RKT
-
Kubernetes
-
Virtualization
In computing, virtualization refers to the act of creating a virtual version of something, including virtual computer hardware platforms, storage devices, and computer network resources.
Virtualization gained huge momentum because of Vmware as it has solved the problem of running multiple OS and apps on one physical computer.
isolated system
isolated system (plural isolated systems) (physics) A system that does not interact with its surroundings; that is, its total energy and mass stay constant
Applications runs on servers. We deploy one application per server because we want our applications to be isolated. For example, if we need web app, db app and few backend apps. We may end up having multiple physical system each running a single instance of that app.
The Virtual Machine
A virtual computer system is known as a -virtual machine” (VM): a tightly isolated software container with an operating system and application inside. Each self-contained VM is completely independent. Putting multiple VMs on a single computer enables several operating systems and applications to run on just one physical server, or -host”.
VMs have the following characteristics, which offer several benefits.
-
Partitioning
-
Run multiple operating systems on one physical machine
-
Divide system resources between virtual machines
-
Isolation
-
Provide fault and security isolation at the hardware level
-
Preserve performance with advanced resource controls
-
Encapsulation
-
Save the entire state of a virtual machine to files
-
Hardware Independence
-
Provision or migrate any virtual machine to any physical server
Hypervisors
As generally we install OS on the physical server and then install our apps on that. By setting up Hypervisor on the physical server we can create multiple VMs each with their own OS.
There are two types of hypervisors:
Type 1
hypervisors run directly on the system hardware. They are often referred to as a “native” or “bare metal” hypervisors.
They get installed on a physical computer like an OS. So instead of installing OS we install Hypervisor to achieve virtualization.
We can activate/deactivate this on Boot menu(F12)
Example:
-
Microsoft Hyper-V
-
VMware ESX/ESXi.
-
Xen Hypervisors
Type 2
Type 2 hypervisors run on a host operating system. In this kind, we install hypervisor on the OS like Linux or windows.
Example:
-
Vmware server/workstation/player
-
Oracle virtualbox.
Host Operating System (Host OS).
This is the operating system of the physical computer on which VirtualBox was installed. There are versions of VirtualBox for Windows, Mac OS X, Linux and Solaris hosts.
Guest Operating System (Guest OS).
This is the operating system that is running inside the virtual machine.
Installing virtualbox on windows.
Installing OS on the newly created VM.
2.Bash Scripting
Shell Commands list
#!/bin/bash
##############################################################################
# SHORTCUTS and HISTORY
##############################################################################
CTRL+A # move to beginning of line
CTRL+C # halts the current command
CTRL+L # clears screen and redisplay the line
history # shows command line history
!! # repeats the last command
!<n> # refers to command line 'n'
!<string> # refers to command starting with 'string'
exit # logs out of current session
##############################################################################
# BASH BASICS
##############################################################################
env # displays all environment variables
echo $SHELL # displays the shell you're using
/bin/bash
echo $BASH_VERSION # displays bash version
4.2.46(2)-release
bash # if you want to use bash (type exit to go back to your previously opened shell)
whereis bash # locates the binary, source and manual-page for a command
which bash # finds out which program is executed as 'bash' (default: /bin/bash, can change across environments)
clear # clears content on window (hide displayed lines)
##############################################################################
# FILE COMMANDS
##############################################################################
ls # lists files in current directory, ls <dir> print files in a specific directory
ls -l # lists your files in 'long format', which contains the exact size of the file, who owns the file and who has the right to look at it, and when it was last modified
ls -a # lists all files, including hidden files (name beginning with '.')
ln -s <filename> <link> # creates symbolic link to file
touch <filename> # creates or updates (edit) your file
cat <filename> # prints file raw content (will not be interpreted)
any_command > <filename> # '>' is used to perform redirections, it will set any_command's stdout to file instead of "real stdout" (generally /dev/stdout)
more <filename> # shows the first part of a file (move with space and type q to quit)
head <filename> # outputs the first lines of file (default: 10 lines)
tail <filename> # outputs the last lines of file (useful with -f option) (default: 10 lines)
vim <filename> # opens a file in VIM (VI iMproved) text editor, will create it if it doesn't exist
mv <filename1> <dest> # moves a file to destination, behavior will change based on 'dest' type (dir: file is placed into dir; file: file will replace dest (tip: useful for renaming))
cp <filename1> <dest> # copies a file
rm <filename> # removes a file
diff <filename1> <filename2> # compares files, and shows where they differ
wc <filename> # tells you how many lines, words and characters there are in a file. Use -lwc (lines, word, character) to ouput only 1 of those informations
chmod -options <filename> # lets you change the read, write, and execute permissions on your files (more infos: SUID, GUID)
gzip <filename> # compresses files using gzip algorithm
gunzip <filename> # uncompresses files compressed by gzip
gzcat <filename> # lets you look at gzipped file without actually having to gunzip it
lpr <filename> # prints the file
lpq # checks out the printer queue
lprm <jobnumber> # removes something from the printer queue
genscript # converts plain text files into postscript for printing and gives you some options for formatting
dvips <filename> # prints .dvi files (i.e. files produced by LaTeX)
grep <pattern> <filenames> # looks for the string in the files
grep -r <pattern> <dir> # search recursively for pattern in directory
##############################################################################
# DIRECTORY COMMANDS
##############################################################################
mkdir <dirname> # makes a new directory
cd # changes to home
cd <dirname> # changes directory
pwd # tells you where you currently are
##############################################################################
# SSH, SYSTEM INFO & NETWORK COMMANDS
##############################################################################
ssh user@host # connects to host as user
ssh -p <port> user@host # connects to host on specified port as user
ssh-copy-id user@host # adds your ssh key to host for user to enable a keyed or passwordless login
whoami # returns your username
passwd # lets you change your password
quota -v # shows what your disk quota is
date # shows the current date and time
cal # shows the month's calendar
uptime # shows current uptime
w # displays whois online
finger <user> # displays information about user
uname -a # shows kernel information
man <command> # shows the manual for specified command
df # shows disk usage
du <filename> # shows the disk usage of the files and directories in filename (du -s give only a total)
last <yourUsername> # lists your last logins
ps -u yourusername # lists your processes
kill <PID> # kills the processes with the ID you gave
killall <processname> # kill all processes with the name
top # displays your currently active processes
bg # lists stopped or background jobs ; resume a stopped job in the background
fg # brings the most recent job in the foreground
fg <job> # brings job to the foreground
ping <host> # pings host and outputs results
whois <domain> # gets whois information for domain
dig <domain> # gets DNS information for domain
dig -x <host> # reverses lookup host
wget <file> # downloads file
##############################################################################
# VARIABLES
##############################################################################
varname=value # defines a variable
varname=value command # defines a variable to be in the environment of a particular subprocess
echo $varname # checks a variable's value
echo $$ # prints process ID of the current shell
echo $! # prints process ID of the most recently invoked background job
echo $? # displays the exit status of the last command
export VARNAME=value # defines an environment variable (will be available in subprocesses)
array[0]=valA # how to define an array
array[1]=valB
array[2]=valC
array=([2]=valC [0]=valA [1]=valB) # another way
array=(valA valB valC) # and another
${array[i]} # displays array's value for this index. If no index is supplied, array element 0 is assumed
${#array[i]} # to find out the length of any element in the array
${#array[@]} # to find out how many values there are in the array
declare -a # the variables are treaded as arrays
declare -f # uses function names only
declare -F # displays function names without definitions
declare -i # the variables are treaded as integers
declare -r # makes the variables read-only
declare -x # marks the variables for export via the environment
${varname:-word} # if varname exists and isn't null, return its value; otherwise return word
${varname:=word} # if varname exists and isn't null, return its value; otherwise set it word and then return its value
${varname:?message} # if varname exists and isn't null, return its value; otherwise print varname, followed by message and abort the current command or script
${varname:+word} # if varname exists and isn't null, return word; otherwise return null
${varname:offset:length} # performs substring expansion. It returns the substring of $varname starting at offset and up to length characters
${variable#pattern} # if the pattern matches the beginning of the variable's value, delete the shortest part that matches and return the rest
${variable##pattern} # if the pattern matches the beginning of the variable's value, delete the longest part that matches and return the rest
${variable%pattern} # if the pattern matches the end of the variable's value, delete the shortest part that matches and return the rest
${variable%%pattern} # if the pattern matches the end of the variable's value, delete the longest part that matches and return the rest
${variable/pattern/string} # the longest match to pattern in variable is replaced by string. Only the first match is replaced
${variable//pattern/string} # the longest match to pattern in variable is replaced by string. All matches are replaced
${#varname} # returns the length of the value of the variable as a character string
*(patternlist) # matches zero or more occurrences of the given patterns
+(patternlist) # matches one or more occurrences of the given patterns
?(patternlist) # matches zero or one occurrence of the given patterns
@(patternlist) # matches exactly one of the given patterns
!(patternlist) # matches anything except one of the given patterns
$(UNIX command) # command substitution: runs the command and returns standard output
##############################################################################
# FUNCTIONS
##############################################################################
# The function refers to passed arguments by position (as if they were positional parameters), that is, $1, $2, and so forth.
# $@ is equal to "$1" "$2"... "$N", where N is the number of positional parameters. $# holds the number of positional parameters.
function functname() {
shell commands
}
unset -f functname # deletes a function definition
declare -f # displays all defined functions in your login session
##############################################################################
# FLOW CONTROLS
##############################################################################
statement1 && statement2 # and operator
statement1 || statement2 # or operator
-a # and operator inside a test conditional expression
-o # or operator inside a test conditional expression
# STRINGS
str1 == str2 # str1 matches str2
str1 != str2 # str1 does not match str2
str1 < str2 # str1 is less than str2 (alphabetically)
str1 > str2 # str1 is greater than str2 (alphabetically)
-n str1 # str1 is not null (has length greater than 0)
-z str1 # str1 is null (has length 0)
# FILES
-a file # file exists
-d file # file exists and is a directory
-e file # file exists; same -a
-f file # file exists and is a regular file (i.e., not a directory or other special type of file)
-r file # you have read permission
-s file # file exists and is not empty
-w file # your have write permission
-x file # you have execute permission on file, or directory search permission if it is a directory
-N file # file was modified since it was last read
-O file # you own file
-G file # file's group ID matches yours (or one of yours, if you are in multiple groups)
file1 -nt file2 # file1 is newer than file2
file1 -ot file2 # file1 is older than file2
# NUMBERS
-lt # less than
-le # less than or equal
-eq # equal
-ge # greater than or equal
-gt # greater than
-ne # not equal
if condition
then
statements
[elif condition
then statements...]
[else
statements]
fi
for x in {1..10}
do
statements
done
for name [in list]
do
statements that can use $name
done
for (( initialisation ; ending condition ; update ))
do
statements...
done
case expression in
pattern1 )
statements ;;
pattern2 )
statements ;;
esac
select name [in list]
do
statements that can use $name
done
while condition; do
statements
done
until condition; do
statements
done
##############################################################################
# COMMAND-LINE PROCESSING CYCLE
##############################################################################
# The default order for command lookup is functions, followed by built-ins, with scripts and executables last.
# There are three built-ins that you can use to override this order: `command`, `builtin` and `enable`.
command # removes alias and function lookup. Only built-ins and commands found in the search path are executed
builtin # looks up only built-in commands, ignoring functions and commands found in PATH
enable # enables and disables shell built-ins
eval # takes arguments and run them through the command-line processing steps all over again
##############################################################################
# INPUT/OUTPUT REDIRECTORS
##############################################################################
cmd1|cmd2 # pipe; takes standard output of cmd1 as standard input to cmd2
< file # takes standard input from file
> file # directs standard output to file
>> file # directs standard output to file; append to file if it already exists
>|file # forces standard output to file even if noclobber is set
n>|file # forces output to file from file descriptor n even if noclobber is set
<> file # uses file as both standard input and standard output
n<>file # uses file as both input and output for file descriptor n
n>file # directs file descriptor n to file
n<file # takes file descriptor n from file
n>>file # directs file description n to file; append to file if it already exists
n>& # duplicates standard output to file descriptor n
n<& # duplicates standard input from file descriptor n
n>&m # file descriptor n is made to be a copy of the output file descriptor
n<&m # file descriptor n is made to be a copy of the input file descriptor
&>file # directs standard output and standard error to file
<&- # closes the standard input
>&- # closes the standard output
n>&- # closes the ouput from file descriptor n
n<&- # closes the input from file descripor n
##############################################################################
# PROCESS HANDLING
##############################################################################
# To suspend a job, type CTRL+Z while it is running. You can also suspend a job with CTRL+Y.
# This is slightly different from CTRL+Z in that the process is only stopped when it attempts to read input from terminal.
# Of course, to interrupt a job, type CTRL+C.
myCommand & # runs job in the background and prompts back the shell
jobs # lists all jobs (use with -l to see associated PID)
fg # brings a background job into the foreground
fg %+ # brings most recently invoked background job
fg %- # brings second most recently invoked background job
fg %N # brings job number N
fg %string # brings job whose command begins with string
fg %?string # brings job whose command contains string
kill -l # returns a list of all signals on the system, by name and number
kill PID # terminates process with specified PID
kill -s SIGKILL 4500 # sends a signal to force or terminate the process
kill -15 913 # Ending PID 913 process with signal 15 (TERM)
ps # prints a line of information about the current running login shell and any processes running under it
ps -a # selects all processes with a tty except session leaders
trap cmd sig1 sig2 # executes a command when a signal is received by the script
trap "" sig1 sig2 # ignores that signals
trap - sig1 sig2 # resets the action taken when the signal is received to the default
disown <PID|JID> # removes the process from the list of jobs
wait # waits until all background jobs have finished
##############################################################################
# TIPS & TRICKS
##############################################################################
# set an alias
cd; nano .bash_profile
> alias gentlenode='ssh<EMAIL_ADDRESS>-p 3404' # add your alias in .bash_profile
# to quickly go to a specific directory
cd; nano .bashrc
> shopt -s cdable_vars
> export websites="/Users/mac/Documents/websites"
source .bashrc
cd $websites
##############################################################################
# DEBUGGING SHELL PROGRAMS
##############################################################################
bash -n scriptname # don't run commands; check for syntax errors only
set -o noexec # alternative (set option in script)
bash -v scriptname # echo commands before running them
set -o verbose # alternative (set option in script)
bash -x scriptname # echo commands after command-line processing
set -o xtrace # alternative (set option in script)
trap 'echo $varname' EXIT # useful when you want to print out the values of variables at the point that your script exits
function errtrap {
es=$?
echo "ERROR line $1: Command exited with status $es."
}
trap 'errtrap $LINENO' ERR # is run whenever a command in the surrounding script or function exits with non-zero status
function dbgtrap {
echo "badvar is $badvar"
}
trap dbgtrap DEBUG # causes the trap code to be executed before every statement in a function or script
# ...section of code in which the problem occurs...
trap - DEBUG # turn off the DEBUG trap
function returntrap {
echo "A return occurred"
}
trap returntrap RETURN # is executed each time a shell function or a script executed with the . or source commands finishes executing
Bash Script
Anything you can run normally on the command line can be put into a script and it will do exactly the same thing. Similarly, anything you can put into a script can also be run normally on the command line and it will do exactly the same thing.
vi test.sh
---------------------
#!/bin/bash
# A sample Bash script
echo Hello World!
#!/bin/bash
-
Tells type of interpreter to use while running script
-
#! is called as the SHEBANG character
-
if we change that to /usr/bin/python then it tells the script to use python interpreter.
# -
This is a comment. Anything after # is not executed.
Whenever you create a file in Linux system by default it will not have an execute permission, this is for security reasons. You make your script executable and then you can run it.
[satyacodes]# ./print.sh
bash: ./print.sh: Permission denied
[satyacodes]# chmod 755 print.sh
[satyacodes]# ./print.sh
hello
[satyacodes]#
Command Line Arguments
we use the variables $1 to represent the first command line argument, $2 to represent the second command line argument and so on.
Ask The User For Input
print.sh
------------------
echo "Enter your Name ?"
read name
echo "Hello, $name"
--------------------------
[satyacodes]# ./print.sh
Enter your Name ?
Satya
Hello, Satya
echo Enter your Name, Profession & Interests in same order seprated by a space?
read name profession interest
echo Your entered name is: $name
echo Your profession is: $profession
echo Your are interested in: $interest
-----------------------------------------
[satyacodes]# ./print.sh
Enter your Name, Profession,Interests in same order seprated by a space?
Satya SSE Movies
Your entered name is: Satya
Your profession is: SSE
Your are interested in: Movies
SSH - Running Command On Remote Servers/Nodes
https://www.hostinger.in/tutorials/ssh-tutorial-how-does-ssh-work
SSH is used to connect Remote Servers from Your System & do Operations. But how will you tell your system is Secure to Connect & perform Operations ?
SSH, or Secure Shell, is a remote administration protocol that allows users to control and modify their remote servers over the Internet.
It provides a mechanism for authenticating a remote user, transferring inputs from the client to the host, and relaying the output back to the client.
If you’re using Linux or Mac, then using SSH is very simple. If you use Windows, you will need to utilize an SSH client to open SSH connections. The most popular SSH client is PuTTY
The SSH command consists of 3 distinct parts
ssh {user}@{host}
When you hit enter, you will be prompted to enter the password for the requested account. If your password is correct, you will be greeted with a remote terminal window.
There are three different encryption technologies used by SSH:
-
Symmetrical encryption
-
Asymmetrical encryption
-
Hashing.


Our Locations :
United States
Seattle
Japan
Tokyo
United Arab Emirates
Dubai
France
Paris
Peru
Lima
Opening hours :
We are open from 6AM to 7PM feel free to visit us in these times
Contact information :
We have a very diverse types of fish
We cook the best chinook
We are a family frindely restaurant and sell mells for all ages
We cutters that make Cookies in fish shapes
We have frosted-cookie that you can heat and eat when ever you want to
We even have fish t-shirts thats how much we love fish


EBD - Easton Bible DIctionary
Ishbi-benob
ISHBI-BENOB
"ISHBI-BENOB "my seat at Nob, one of the Rephaim, whose spear was three hundred shekels in weight. He was slain by Abishai (
2 Samuel 21:16, 17
).
"ISHBI-BENOB "my seat at Nob, one of the Rephaim, whose spear was three hundred shekels in weight. He was slain by Abishai (2 Samuel 21:16, 17).


Modified biogeography-based optimisation (MBBO) ( wiki ) is an evolutionary algorithm (EA) that optimizes a function by stochastically and iteratively improving candidate solutions with regard to a given measure of quality, or fitness function. BBO belongs to the class of metaheuristics since it includes many variations, and since it does not make any assumptions about the problem and can therefore be applied to a wide class of problems.
BBO is typically used to optimize multidimensional real-valued functions, but it does not use the gradient of the function, which means that it does not require the function to be differentiable as required by classic optimization methods such as gradient descent and quasi-newton methods. BBO can therefore be used on discontinuous functions.
BBO optimizes a problem by maintaining a population of candidate solutions, and creating new candidate solutions by combining existing ones according to a simple formula. In this way the objective function is treated as a black box that merely provides a measure of quality given a candidate solution, and the function's gradient is not needed.
Like many EAs, BBO was motivated by a natural process; in particular, BBO was motivated by biogeography, which is the study of the distribution of biological species through time and space.[1] BBO was originally introduced by Dan Simon in 2008.[2]


Unit of Study
Dashboard
UoS
Outline
Teacher
Materials
Assignment
Discussions
×
New assignment
Name
Browse


Aircraft
Animals
Architecture
Exterior
Interior
Car
Character
Electronics
Food
Furniture
Household
Industrial
Plant
Science
Spase
Sport
Vehicle
Watercraft
Millitary
All category
Remembered?Enter
A link to password recovery will be sent to your e-mail
Enter with social
Lorem ipsum dolor sit amet consectetur adipisicing elit.
Start earning money with us easily with our prices


Business case approved for two-way, all-day GO train service to Kitchener
It was unanimously approved by Metrolinx at their board meeting on Friday
by KitchenerToday StaffAlthough the service is still years away, Kitchener is another step closer to two-way, all-day GO train service.
The initial business case for the extension received unanimous approval at Metrolinx's board meeting on Friday.
The hope is to have the service in place by 2025.
More to come


My place to blog about learning web development, dev tools, frameworks, hosting , CMS, and more
Free hosting for your custom static content . My short review discusses the uses and points you in the right direction to get started.It's all based on you GitHub user name with unlimited project sites too. BYO URL if you want...
Checkout my review of Mobirise, the static site generator that makes putting up small sites quick and painless.
Enki is my automatic reminder to keep learning. This great little app helps keep your head in the game when it comes to learning coding, across many different languages.
I put together a page to show the different types of content that can be embedded with HTML/CSS alone. Sliders, galleries, and more.
Share This Page!


Dev Bootcamp Phase 0
Week 4
December 22, 2015
Arrays and hashes, hashes and arrays --- the two concepts in ruby are important, yet (at least for me) could be confusing. Both arrays and hashes are:
- collections of data
- useful for storing and then retrieving data
- have many built-in features in ruby that make them easily manipulated
- have index numbers designating item location in the array or hash beginning with 0 and increasing by one for each item in the collection
- and have similar syntax ...
There is a lot of existing information on the interwebs that describes at length the differences between arrays and hashes. Here are some resources I found useful:
- Ruby Array documentation
- Ruby Hash documentation
- A great easy-to-follow article on the topic from Robert Quails
- Slide presentation on the topic from Niranjan Sarade
But for my post, I wanted to do something a little different. You see, for some time now, I've used a mental trick for thinking through arrays and hashes that I have yet to see used elsewhere. NOTE: I was *almost* a math major at university and so this approach is a little math-y.
I think of Arrays as plots on 2D graphs and Hashes as plosts on 3D graphs. Yesh -- I know this isn't perfect since in mathematical graphing, points on the various axis are quantified, while both arrays and hashes can contain all sorts of objects (not exclusive to numbers). BUT, for whatever reason, thinking of arrays and hashes this way helped the two concepts click for me.
FOR ARRAYS imagine a 2D x-y graph (we'll stick with quadrant I). The x-axis, notoriously marking the variable that is INDEPENDENT of the variables on the y-axis, represents the index. The index number (0, 1, 2, etc.) doesn't care what value or item it is attached to (0 doesn't care if array[0] is "dog" or 1 or {} or whatever). The index is independent of the value (just like x is independent of y). Visually now!
Note: the location of the item along the y-axis is irrelevant (I know of no y-axis that contains "dog", 1, and empty hash lol --- again this is not a perfect analogy)
FOR HASHES imagine a 3D graph. Still .... our x-axis is the independent variable and will always be numbers 0 through whatever (counting the items in the hash), BUT at each x marker (or index) there are a pair of values that exist. These pairs are keys and values. I think of the hieararchy of indices, keys, and values in a hash as going from most independent to least (in that order: indices, keys, values). Again, indices don't care at all what is ascribed to them --- they denote position and no key or value can change that. BUT keys are also independent of values. Usually keys even describe a value.
For example, you might make an address hash with keys name, street, city, state, and zip. Those keys are independent of the values you put inside them. In fact they should describe the values! Said another way, no matter what I put as the value for name ( e.g., { "name" => "balooga whale sandwich virtual reality monkey" }) it will still be described as a "name" whether it actually is one or not --- hence the key is independent. But what the value is (or what we understand it to be) will be impacted by the key we give it.
Again ... this is how I visually think of hashes (x-axis = index, y-axis = key, z-axis = value):
Okay --- I know this has the potential to confuse which is not my intention! But I know it helped me a lot to think of arrays and hashes in this graphical manner. Before I choose which to use in my code (array or hash), I always think to myself: now which graph would I put this information on? Because again, as the functionality and uses of both are so similar (but not exactly the same), it can be a huge disaster for your code if you realize deep down the rabbit hole that you should have used the other type of our array / hash pair.
This is simply my trick for safely diving into that rabbit hole --- everyone's will be different --- at the very least I hope my crazy imperfect analogy opened up for you a world where you feel empowered to come up with your own tricks!
Happy Hashing and Merry Arrays! ;)


|
|
def | __init__ (self, graph, node, uid) |
| |
|
def | keyPressEvent (self, event) |
| |
|
def | OnCurrentTabChanged (self, index) |
| |
|
def | onKillSelectedPins (self) |
| | slot for kill selected pins button
|
| |
|
def | closeEvent (self, event) |
| |
|
def | populate (self) |
| | populte editor ui from node data
|
| |
|
def | resetUiData (self) |
| | resets ui to defaults
|
| |
| def | resetNode (self) |
| | this method resets python node to its initial state More...
|
| |
| def | applyData (self) |
| | slot called when Save button is pressed More...
|
| |
|
def | gatherPinNames (self) |
| |
|
def | appendInput (self, pw) |
| | puts created widget inside input list widget
|
| |
|
def | appendOutput (self, pw) |
| | puts created widget inside output list widget
|
| |
|
def | addDefaultInput (self) |
| | add input pin slot
|
| |
|
def | addDefaultOutput (self) |
| | add output pin slot
|
| |
|
def | setFontSize (self, size) |
| | changes text editor font size
|
| |
Used to write code into pythonNode.
See Package description for details


dvihp - convert a TeX DVI file to Hewlett-Packard PCL
dvihp translates the given dvifile to Hewlett-Packard PCL using dvicopy(1) then $DVILJ (dvilj4 by default).
In the absence of other options, pipe the PCL to $SPOOL (lpr by default).
Options are recognized from dvips where possible:
print odd pages
print even pages
set debug bits to n (see documentation)
set resolution to n
run as filter
don't print pages after n
manual feed
print n pages
set/change paper offset to a,b mm.
output to s instead of spooling
don't print pages before n.
pass directly to lpr.
verbose operation.
set magnification to n.
write usage summary.
Other options are passed to the dvilj program.
Email bug reports to<EMAIL_ADDRESS>dvicopy(1), dvilj4(1).


2
1 This is what Yahweh says:
"For three sins of Moab,
even for four,
I will not turn away punishment,
because he burned the bones
of the king of Edom to lime.
2 I will send fire on Moab,
and it will devour the fortresses of Kerioth.

Their lies caused them to err,
the same way their fathers went.
5 I will send fire on Judah,
and it will devour the fortresses of Jerusalem."
6 This is what Yahweh says:
"For three sins of Israel,
even for four,
I will not turn away punishment,
because they sold the innocent for silver
and the needy for a pair of sandals.
7 They trample on the heads of the poor as people trample on dust on the ground;
they push the oppressed away.

Yet I destroyed his fruit above
and his roots below.
10 Also, I brought you up out of the land of Egypt
and led you forty years in the wilderness
to possess the land of the Amorites.
11 I raised up prophets from among your sons
and Nazirites from your young men.
Is it not so,
people of Israel?"
—this is the declaration of Yahweh.
12 "But you persuaded the Nazirites to drink wine
and commanded the prophets not to prophesy.
13 Look, I will crush you
as a cart that is full of grain can crush someone.
14 The swift person will find no escape;
the strong will not add to his own strength;
neither will the mighty save himself.
15 The archer will not stand;
the fast runner will not escape;
the horseman will not save himself.
16 Even the bravest warriors
will flee naked in that day"
—this is the declaration of Yahweh.


Change Class Dialog
The Change Class Dialog lets you change the class of an object. The class of an object determines the icon it uses (unless you have overridden it), the properties associated with it in the Properties View, and the views available to the object. Select the class you want to change the object to and hit OK.
See also: Changing the Class of an Object


Cats and dogs - Minimum viable product
February 2, 2016
I pushed a first commit with a running implementation of a 1-hidden layer MLP.
The model is not very interesting (and does not learn anything relevant), but what is interesting is the separation between a data augmentation process and a train process, enabled by Fuel.
Speaking of that, I have been struggling to get it work because of this issue : #273 which is quick-and-dirty fixed by setting copy=False
in fuel/server.py
. It fixes an error stating that numpy arrays are non aligned.


This is me
Olurombi Anuoluwapo
I love to develop responsive websites, thereby giving the users a good experience.
Discover MeProducing high quality responsive websites and exceptional user experience.
Get to know me Available for hireI love to develop responsive websites, thereby giving the users a good experience.
Discover MeGet to know me as a person. You can find out about my background, experience and more below.
My name is Olurombi Anuoluwapo Hannah. I'm a Front-end Web Developer and Designer in Lagos State, Nigeria with one-year of experience. I have lived in lots of different places and have worked in lots of different jobs. I'm excited to bring my life experience to the process of building fantastic looking and responsive websites.
I hail from Ogun State. My date of birth is January 28th, 2000. I am currently a 300-level student of Systems Engineering in University of Lagos. I love to listen to music and I love to engage myself in athletics. I am very friendly and I love to learn and acquire lots of knowledge.
I want to master the process of building websites and increase my knowledge, skills and abilities in :
HTML CSS JAVASCRIPT PYTHON C#
I would love to work for a web design firm helping clients create an impressive online experience. I would also love to build beautiful applications that will solve problems for the world.
I'm currently looking for projects from January 2019.
If you prefer email, get in touch with me via<EMAIL_ADDRESS>| Name | Phone | Country | Message | |
|---|---|---|---|---|
| Udojike Nmesoma |<EMAIL_ADDRESS>| 090 220 098 | Nigeria | Hi Hannah, I would love to make a Web App Design, how can we meet to talk. |
| Stephen Brownie |<EMAIL_ADDRESS>| 0256 342 548 | London,Uk. | Hello, Nice Designs...I would to make a simple To-Do List application. |
| Jon Bellion |<EMAIL_ADDRESS>| 0801 911 543 | New York City | Hey, I need a website for my record label, Send me an email asap. |
University of Lagos
0705 562 5874
Anytime
<EMAIL_ADDRESS>Send me your complaints!


Löve Frames - Skins
Return to Index
How Skins Work
A skin is basically a set of functions that dictate how each Löve Frames object is drawn.
Creating a Skin
Go to the Löve Frames skins directory and create a new folder.
Name the folder what you want the name of the skin to be.
The name of the folder must be exactly what the name of the skin will be.
Next create a file called skin.lua in the folder that you just created.
Open the skin.lua file that you just created with any text editor and copy and paste the following into the file:
After you are done creating all of your skin's drawing functions, you will need to end the skin.lua file with this piece of code:
local skin = {} skin.name = "INSERT SKIN NAME HERE" skin.author = "INSERT SKIN AUTHOR HERE" skin.version = "INSERT SKIN VERSION HERE"Replace the value of skin.name with the name of the folder that you created. The value of skin.name must always be the same as the folder of the skin. Replace the values of skin.author and skin.version with whatever values you desire. Now you can start creating drawing functions for whatever objects you want. Here is an example of what one of these functions would look like:
function DrawFrame(object) love.graphics.setColor(255, 255, 255, 255) love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight()) endEach object will pass itself to its drawing function as an argument. This allows important values of the object to be accessed such as x and y. If the skin that you have created does not have a drawing function for a certain object, that object will refer to the default skin drawing functions. For a full list of object drawing functions, please refer to the list further down on this page.
After you are done creating all of your skin's drawing functions, you will need to end the skin.lua file with this piece of code:
loveframes.skins.Register(skin)A skin can also create a table of images within it's folder for easier use withing drawing functions. If you create an images folder within a skin's folder, any images you put in that folder will be added to the skins images table. These images can be access like this:
function DrawFrame(object) love.graphics.setColor(255, 255, 255, 255) love.graphics.rectangle("fill", object:GetX(), object:GetY(), object:GetWidth(), object:GetHeight()) love.graphics.draw(skin.images["imagename.png"], 5, 5) endSo essentialy, any image within the skin's images folder can be accessed via skin.images["imagename.png"]. All you would need to do is replace "imagename" with the name of the image file and ".png" with the extension of the image file.
Using Skins
When an object is created its active skin is set to the current Löve Frames active skin.
The Löve Frames active skin can be changed from within init.lua.
All you need to do is change loveframes.config["ACTIVESKIN"] to the name of whatever skin you want to use.
If you want to change the active skin withou reloading your project you can do this:
loveframe.util.SetActiveSkin("SKINNAME")Doing this will change the active skin. If you only want to change the skin of one object you can do so like this:
local panel = loveframes.Create("panel") panel:SetSkin("SKINNAME")Doing this will change the object's skin to the skin specified. It will also change all of the object's children's skins recursively.
Drawing Functions
Below is a list of all skin drawing functions:
- DrawFrame(object)
- DrawButton(object)
- DrawCloseButton(object)
- DrawProgressBar(object)
- DrawScrollArea(object)
- DrawScrollBar(object)
- DrawScrollBody(object)
- DrawPanel(object)
- DrawList(object)
- DrawOverList(object)
- DrawTabPanel(object)
- DrawTabButton(object)
- DrawImage(object)
- DrawImageButton(object)
- DrawMultiChoice(object)
- DrawMultiChoiceList(object)
- DrawOverMultiChoiceList(object)
- DrawMultiChoiceRow(object)
- DrawToolTip(object)
- DrawText(object)
- DrawTextInput(object)
- DrawOverTextInput(object)
- DrawScrollButton(object)
- DrawSlider(object)
- DrawSliderButton(object
- DrawCheckBox(object)
- DrawCollapsibleCategory(object)
- DrawColumnList(object)
- DrawColumnListHeader(object)
- DrawColumnListArea(object)
- DrawOverColumnListArea(object)
- DrawColumnListRow(object)
- DrawLineNumbersPanel(object)
- DrawNumberBox(object)
- DrawGrid(object)
Third-Party Skins


Mine Sweeper
Place mines yourself🙈
Undo
❤❤❤
❔
❔
❔
Safe-click📍
Mines left:
🙂
Seconds :
0
chose your level:
Beginner
Medium
Expert
🏆 🥇The best scoor for this level is:


must-contain
is a web API that generates sentences of the form shown above, informing you
about ridiculous things that your password must contain.
The catch-all way of retrieving content is to perform HTTP calls to our web API directly. Note that this is not recommended if there’s a library available for your language. Libraries are encouraged to implement caching and other conveniencies.
API requests must be performed against the http://must-contain.herokuapp.com
hostname. No limits
are placed on requests per second, but we ask you to use the API with responsibility. Although no
limits are currently in place, we might add a few if we see abuse.
GET /random/{lang}/{num}
lang
: The ISO code of the languge in which you need the sentences generated.
We only support English right now, so use en
.num
: Number of sentences to retrieve. Currently unlimited, but please use with
responsibility. The amount of sentences that can be retrieved at any one request will never be
limited below 100, so if you want to be certain that your code always work, use that as a
maximum.Phrases are returned fully constructed and ready to use. A few parameters and an option to get a detailed version of the sentence might be added in the future.
The entire generator is inspired by the @must_contain Twitter account, which tweets periodically these kind of phrases. Those tweets are obviously hand-crafted, while we generate most of our sentences on the fly. And as a needed disclaimer, we are not associated in any way with the @must_contain Twitter account.
The web API, JavaScript client library and this website were started and developed by Daniel Escoz. You can see a list of projects in our GitHub Organization Page, and each one has a list of contributos.
All code on our GitHub Organization is licensed under the MIT license unless stated otherwise in the project.
The contents of this website and any sentence generated by our API are licensed under the Creative Commons Attribution Share-Alike 4.0 License. This means you can use it anywhere as long as you keep the license and you properly credit us (A link to this website is fine).


| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| ActionSet.js | 53.9% | 83/154 | 38.1% | 16/42 | 53.85% | 7/13 | 53.9% | 83/154 | |
| Dialog.js | 76.54% | 62/81 | 28% | 7/25 | 66.67% | 12/18 | 76.54% | 62/81 | |
| Element.js | 53.25% | 172/323 | 33.66% | 69/205 | 59.52% | 25/42 | 53.25% | 172/323 | |
| Error.js | 35.29% | 6/17 | 0% | 0/14 | 0% | 0/5 | 35.29% | 6/17 | |
| HtmlSnippet.js | 100% | 5/5 | 100% | 0/0 | 100% | 2/2 | 100% | 5/5 | |
| Layout.js | 80% | 8/10 | 50% | 1/2 | 50% | 1/2 | 80% | 8/10 | |
| Process.js | 86.36% | 38/44 | 74.07% | 20/27 | 87.5% | 7/8 | 86.36% | 38/44 | |
| Theme.js | 64% | 16/25 | 66.67% | 4/6 | 50% | 3/6 | 64% | 16/25 | |
| Tool.js | 33.33% | 22/66 | 0% | 0/20 | 0% | 0/9 | 33.33% | 22/66 | |
| ToolFactory.js | 10.26% | 4/39 | 0% | 0/34 | 0% | 0/3 | 10.26% | 4/39 | |
| ToolGroup.js | 17.5% | 21/120 | 0% | 0/63 | 0% | 0/15 | 17.5% | 21/120 | |
| ToolGroupFactory.js | 33.33% | 3/9 | 100% | 0/0 | 0% | 0/2 | 33.33% | 3/9 | |
| Toolbar.js | 19.19% | 19/99 | 0% | 0/40 | 0% | 0/16 | 19.19% | 19/99 | |
| Widget.js | 96.67% | 29/30 | 100% | 2/2 | 66.67% | 4/6 | 96.67% | 29/30 | |
| Window.js | 84.42% | 130/154 | 56.82% | 25/44 | 75% | 27/36 | 84.42% | 130/154 | |
| WindowInstance.js | 94.74% | 18/19 | 50% | 2/4 | 87.5% | 7/8 | 94.74% | 18/19 | |
| WindowManager.js | 73.28% | 181/247 | 55% | 66/120 | 68.29% | 28/41 | 73.28% | 181/247 | |
| core.js | 67.16% | 90/134 | 62.5% | 45/72 | 60.71% | 17/28 | 67.16% | 90/134 | |
| intro.js.txt | 100% | 0/0 | 100% | 0/0 | 100% | 1/1 | 100% | 0/0 | |
| mixin.js | 100% | 1/1 | 100% | 0/0 | 100% | 0/0 | 100% | 1/1 | |
| windows.js | 95.24% | 20/21 | 90.91% | 10/11 | 88.89% | 8/9 | 95.24% | 20/21 |


View the console to see logging.
The RTCPeerConnection
objects localPeerConnection
and remotePeerConnection
are in global scope, so you can inspect them in the console as well.
For more information about RTCPeerConnection, see Getting Started With WebRTC.
View source on GitHub


ftp_rawlist
(PHP 4, PHP 5, PHP 7)
ftp_rawlist — 返回指定目录下文件的详细列表
说明
array ftp_rawlist ( resource $ftp_stream , string $directory )
ftp_rawlist() 函数将执行 FTP LIST 命令，并把结果做为一个数组返回。
参数
ftp_stream
FTP 连接资源。
directory
目录路径。
recursive
如果此参数为 TRUE，实际执行的命令将会为 LIST -R。
返回值
返回一个数组，数组的每个元素为返回文本的每一行，输出结构不会被解析。使用函数
ftp_systype() 可以用来判断 FTP 服务器的类型，从而可以用来判断返回列表的类型。
范例
Example #1 ftp_rawlist() 例子
以上例程的输出类似于：
array(3) {
[0]=>
string(65) "drwxr-x--- 3 vincent vincent 4096 Jul 12 12:16 public_ftp"
[1]=>
string(66) "drwxr-x--- 15 vincent vincent 4096 Nov 3 21:31 public_html"
[2]=>
string(73) "lrwxrwxrwx 1 vincent vincent 11 Jul 12 12:16 www -> public_html"
}
更新日志
版本 说明
4.3.0 增加 recursive 参数。
参见
• ftp_nlist() - 返回给定目录的文件列表
User Contributed Notes 51 notes
===============================================================================
Here's a simple function that'll parse the data returned by ftp_rawlist() into
an associative array. I wrote it because some of the functions listed below are
way to long, complex or won't work with file names that contain spaces.
===============================================================================
In case anybody wants to get a detailed listing using the MLSD command over a
passive connection, the following function might be helpful as a starting point
for your own implementation:
Please note that this function ignores the setting of ftp_pasv(). Making the
function to work universally for both active and passive connections is left as
an exercise to the reader ;-)
===============================================================================
All parse_rawlist Functions here have one Problem.
when a file starts with a space character like " robots.txt ", it will be
ignored.
Rename, delete will fail...
===============================================================================
Previous example (by davidknoll at o2 dot co dot uk) works well if ftp_systype
() returned "UNIX", but sometimes I am experiencing "Windows_NT". Here is some
improvement:
) +(.+)",$current,$split);
if (is_array($split)) {
if ($split[3]<70) { $split[3]+=2000; } else { $split[3]+=1900; } //
4digit year fix
$parsed[$i]['isdir'] = ($split[7]=="
");
$parsed[$i]['size'] = $split[7];
$parsed[$i]['month'] = $split[1];
$parsed[$i]['day'] = $split[2];
$parsed[$i]['time/year'] = $split[3];
$parsed[$i]['name'] = $split[8];
$i++;
}
break;
case "UNIX":
default:
// etc.
break;
}
}
return $parsed;
}
?>
===============================================================================
Get a listing of all files including hidden files except '.' or '..' use:
This had me dancing in circles for some time!
===============================================================================
Regarding converting permissions from symbolic notation to octal, note that
Hazem dot Khaled at gmail dot com's chmodnum function produces INCORRECT
results. The resutls are base-10 numbers that only LOOK like they are octal
numbers. The function also ignores setuid, setgid and sticky bits, and will
produce incorrect numbers if such a file is encountered. Instead, this
brute-force code works. Maybe there is something more slick, but this isn't
too CPU-intensive (note that it assumes you've error-checked that you indeed
have a 10-character string!):
$permissions = 'drwxr-xr-x'; // or whatever
$mode = 0;
if ($permissions[1] == 'r') $mode += 0400;
if ($permissions[2] == 'w') $mode += 0200;
if ($permissions[3] == 'x') $mode += 0100;
else if ($permissions[3] == 's') $mode += 04100;
else if ($permissions[3] == 'S') $mode += 04000;
if ($permissions[4] == 'r') $mode += 040;
if ($permissions[5] == 'w') $mode += 020;
if ($permissions[6] == 'x') $mode += 010;
else if ($permissions[6] == 's') $mode += 02010;
else if ($permissions[6] == 'S') $mode += 02000;
if ($permissions[7] == 'r') $mode += 04;
if ($permissions[8] == 'w') $mode += 02;
if ($permissions[9] == 'x') $mode += 01;
else if ($permissions[9] == 't') $mode += 01001;
else if ($permissions[9] == 'T') $mode += 01000;
printf('Mode is %d decimal and %o octal', $mode, $mode);
===============================================================================
With this handy function based on functions presented here you get the file
list in alphabetical order with all directories on top:
$v) {
if ($v['chmod']{0} == "d") {
$dir[$k] = $v;
} elseif ($v['chmod']{0} == "-") {
$file[$k] = $v;
}
}
foreach ($dir as $dirname => $dirinfo) {
echo "[ $dirname ] " . $dirinfo['chmod'] . " | " . $dirinfo['owner'] . "
| " . $dirinfo['group'] . " | " . $dirinfo['month'] . " " . $dirinfo['day'] . "
" . $dirinfo['time'] . " ";
}
foreach ($file as $filename => $fileinfo) {
echo "$filename " . $fileinfo['chmod'] . " | " . $fileinfo['owner'] . " |
" . $fileinfo['group'] . " | " . $fileinfo['size'] . " Byte | " . $fileinfo[
'month'] . " " . $fileinfo['day'] . " " . $fileinfo['time'] . " ";
}
}
rawlist_dump();
?>
===============================================================================
There are a couple of php-related reasons given here for ftp_rawlist returning
an empty result. However be aware that ZoneAlarm (and possibly other) firewalls
can block responses without giving any visible clue so be sure to check that
first.
===============================================================================
ftp_rawlist kept returning empty file listing, it would work on some machines
but not others, it turned out to be ftp_pasv command was needed.
Very frustrating
===============================================================================
this is function to check for dirs
===============================================================================
To format the _recrusive_ result of this function I use this:
$file) {
if ($file['text'] == $path) {
$arraypointer = &$arraypointer[ $i ]['children'];
break;
}
}
}
} elseif(!empty($rawfile)) {
$info = preg_split("/[\s]+/", $rawfile, 9);
$arraypointer[] = array(
'text' => $info[8],
'isDir' => $info[0]{0} == 'd',
'size' => byteconvert($info[4]),
'chmod' => chmodnum($info[0]),
'date' => strtotime($info[6] . ' ' . $info[5] . ' ' . $info[7]),
'raw' => $info
// the 'children' attribut is automatically added if the folder
contains at least one file
);
}
}
// in $structure is all the data
print_r($structure);
// little helper functions
function byteconvert($bytes) {
$symbol = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
$exp = floor( log($bytes) / log(1024) );
return sprintf( '%.2f ' . $symbol[ $exp ], ($bytes / pow(1024, floor($exp
))) );
}
function chmodnum($chmod) {
$trans = array('-' => '0', 'r' => '4', 'w' => '2', 'x' => '1');
$chmod = substr(strtr($chmod, $trans), 1);
$array = str_split($chmod, 3);
return array_sum(str_split($array[0])) . array_sum(str_split($array[1])) .
array_sum(str_split($array[2]));
}
?>
===============================================================================
Why not using POSIX regex to do the job here ? A preg_replace returns the
information in an associative array with the following keys:
* that's a bonus: it will tell you if the item is either a file or a
directory
Code is shown below:
$list=@ftp_rawlist($con,$directory) ;
$items=array() ;
foreach($list as $_)
preg_replace(
'`^(.{10}+)(\s*)(\d{1})(\s*)(\d*|\w*)'.
'(\s*)(\d*|\w*)(\s*)(\d*)\s'.
'([a-zA-Z]{3}+)(\s*)([0-9]{1,2}+)'.
'(\s*)([0-9]{2}+):([0-9]{2}+)(\s*)(.*)$`Ue',
'$items[]=array(
"rights"=>"$1",
"number"=>"$3",
"owner"=>"$5", "group"=>"$7",
"file_size"=>"$9",
"mod_time"=>"$10 $12 $14:$15",
"file"=>"$17",
"type"=>print_r((preg_match("/^d/","$1"))?"dir":"file",1));',
$_) ; # :p
===============================================================================
Some FTP servers only allow you to get list of files under current working
directory. So if you always get result as empty array (array(0){ }), try
changing the cwd befor get the list:
===============================================================================
On my PC (XP and Apache installed) - ftp_rawlist (with Parameter true) does
only print a folder list - no subfolders, no files.
So i created this recursive function that writes all filenames (incl. paths) to
a array. I tested it on Mac, Linux and Windows - it works (as long as you don't
use folders with spaces...).
If you need more information: feel free to set more split[x]-Options and write
them to the $files-array.
ftp-login failed");
ftp_pasv($conn_id, true);
#*********************************************************************
# create filelist (recursiv)
#*********************************************************************
$files = array(); # must be defined here
$files = raw_list("$startdir");
#*********************************************************************
# print result
#*********************************************************************
$i = 0; $count = count($files);
while ($i < $count):
echo "$files[$i] ";
$i++;
endwhile;
ftp_close($conn_id);
#*********************************************************************
# rawlist in recursive form (without parameter true!!!)
#*********************************************************************
function raw_list($folder)
{
Global $conn_id;
Global $suffix;
Global $files;
$suffixes = explode(",", $suffix);
$list = ftp_rawlist($conn_id, $folder);
$anzlist = count($list);
$i = 0;
while ($i < $anzlist):
$split = preg_split("/[\s]+/", $list[$i], 9, PREG_SPLIT_NO_EMPTY);
$ItemName = $split[8];
$endung = strtolower(substr(strrchr($ItemName,"."),1));
$path = "$folder/$ItemName";
if (substr($list[$i],0,1) === "d" AND substr($ItemName,0,1) != "."):
# array_push($files, $path); # write directory in array if desired
raw_list($path);
elseif (substr($ItemName,0,2) != "._" AND in_array($endung,$suffixes)):
array_push($files, $path);
endif;
$i++;
endwhile;
return $files;
}
?>
Ueli, Zurich
===============================================================================
Please pay attention that ftp_rawlist() function returns empty result if there
is a folder with space. You must backslash it with addcslashes() function.
IMPORTANT: at the same time any other function like ftp_delete() or ftp_rmdir()
in opposite, will not be able to delete file/folder if folder name with space
will be backslashes http://proxy-list.org/
===============================================================================
The solution of fredvanetten at tinqle dot com is nice but needs further
evaluation as because of the preg_split and static listing of the variables
will produce different values: comparing a file of today or an older, from a
previous year:
Array
(
[time] => 2012
[day] => 11
[month] => Sep
[size] => 37262
[group] => group
[user] => owner
[number] => 1
[rights] => -rw-rw-rw-
)
Array
(
[time] => 14:01
[day] => 23
[month] => Apr
[size] => 37262
[group] => group
[user] => owner
[number] => 1
[rights] => -rw-rw-rw-
)
===============================================================================
This is a little cleaner:
function parse_rawlist( $array )
{
foreach($array as $curraw)
{
$struc = array();
$current = preg_split("/[\s]+/",$curraw,9);
$struc['perms'] = $current[0];
$struc['number'] = $current[1];
$struc['owner'] = $current[2];
$struc['group'] = $current[3];
$struc['size'] = $current[4];
$struc['month'] = $current[5];
$struc['day'] = $current[6];
$struc['time'] = $current[7];
$struc['year'] = $current[8];
$struc['raw'] = $curraw;
$structure[$struc['name']] = $struc;
}
return $structure;
}
===============================================================================
Your code is ok, just replace $i = 0 instead of 1
Thank you
===============================================================================
The following was inspired by a few others here, ofcourse ;-)
Works for filenames with spaces (leading, trailing, consecutive and what not),
formats the date a little taking year/time into account, leaves out items not
in the $filetypes array below, and returns a nice nested assoc array:
'file', 'd'=>'directory', 'l'=>'link');
$c = ftp_connect('localhost');
ftp_login($c, 'jackcrow', 'banshee');
$data = ftp_rawlist($c, '/users/jackcrow');
foreach($data as $line) {
if (substr(strtolower($line), 0, 5) == 'total') continue; # first line,
skip it
preg_match('/'. str_repeat('([^\s]+)\s+', 7) .'([^\s]+) (.*)/', $line,
$matches); # Here be Dragons
list($permissions, $children, $owner, $group, $size, $month, $day, $time,
$name) = array_slice($matches, 1);
# if it's not a file, directory or link, I don't really care to know about
it :-) comment out the next line if you do
if (! in_array($permissions[0], array_keys($filetypes))) continue;
$type = $filetypes[$permissions[0]];
$date = date('d/m/y H:i', (strpos($time, ':') ? mktime(substr($time, 0, 2),
substr($time, -2), 0, $month, $day) : mktime(0,0,0,$month, $day, $time) ) );
$files[$name] = array('type'=>$type, 'permissions'=>substr($permissions, 1
), 'children'=>$children, 'owner'=>$owner, 'group'=>$group, 'size'=>$size,
'date'=>$date);
}
print_r($files);
?>
(I'm using a pretty simple regex pattern (non-space-stuff, whitespace,
non-space-stuff etc), but amazingly /it still works!/ K.I.S.S.! The time part
in the pattern is done separately to make sure only 1 space is taken out before
the filename, which might start with spaces for all you know)
===============================================================================
I was having problems picking up the directories on a mac using cjacobsen at
pge dot cl's (11-Jan-05) solution. Slight ammendment to the regexp works for
me:
ereg("([-dl][rwxstST-]+).* ?([0-9 ]* )?([a-zA-Z0-9]+).* ([a-zA-Z0-9]+).* ([0-9]
*) ([a-zA-Z]+[0-9: ]*[0-9])[ ]+(([0-9]{2}:[0-9]{2})|[0-9]{4}) (.+)", $file,
$regs)
===============================================================================
One comment regaring the method tig3r uses to determine the listing type.
Windows servers can return a listing in unix format if the ftp server has been
told to use unix formatting. The only robust solution I have is to try both
ereg commands once and see which one successfully returns an array.
===============================================================================
Well, this works for me:
===============================================================================
this snip fixes the date problem with the listing and sorts out the variables:
$filedata['access_permissions']
$filedata['link_count']
$filedata['uid']
$filedata['gid']
$filedata['size']
$filedata['mod_date_month']
$filedata['mod_date_day']
$filedata['mod_time']
$filedata['name']
list($filedata['access_permissions'], $filedata['link_count'], $filedata
['uid'], $filedata['gid'], $filedata['size'], $filedata['mod_date_month'],
$filedata['mod_date_day'], $filedata['mod_time'], $filedata['name']) =
preg_split("/[\s,]+/", $value);
$filedata['type'] = $filedata['access_permissions']{0};
$filedata['access_permissions'] = substr($filedata['access_permissions'],1);
// now check the date to see if the last modifcation was this year or last.
if ( strrpos($filedata['mod_time'], ':') != 2 ) { $filedata['mod_date'] =
$filedata['mod_date_month'] ." " . $filedata['mod_date_day'] . " " . $filedata
['mod_time']; $filedata['mod_time'] = "00:00"; } else { $filedata['mod_date'] =
$filedata['mod_date_month'] ." " . $filedata['mod_date_day'] . " " . date("Y");
}
===============================================================================
I'm not a traditional programmer, so I often take a different approach then
most programmers. Here's how I get file information from an FTP file list. It's
very simple (which I like). Comments are welcome:
// make your FTP connection calls here, then ...
$contents = ftp_rawlist($ftp_id, ".");
echo '
';
foreach ($contents as $key => $value) {
$info = explode(" ", $value);
$clean = array();
foreach ($info as $key => $value) {
if (!empty($value)) { $clean[] = $value; }
} // end foreach loop 2
if ( ($clean[8] != ".") AND ($clean[8] != "..") AND ($clean[8] !=
"html") AND ($clean[8] != "logs") AND ($clean[8] != "protected") AND ($clean[8]
!= "sys") ) {
echo '
';
===============================================================================
When you try:
$path = "directory pathname with spaces";
$list = ftp_rawlist($conn_id,$path);
It doesn't work
but when you try:
$path = "directory pathname with spaces";
ftp_chdir($conn_id,$path);
$list = ftp_rawlist($conn_id,".");
It works
===============================================================================
Excelent expresion, but don't match SUID, SGUI and Sticky flags when 'x' is
disabled. Fix it with [rwxstST-].
===============================================================================
list all (including hidden files and dirs):
just as ftp command:
LIST al
"-aF " is equal to '-al', please refer to "ls --help"
===============================================================================
The previous regular expression(by Jonathan Almarez,ergye at yahoo dot com and
guru at virusas dot lt) is very good.But i found it does not take into account
for directories(number>9)
Change [0-9] to [0-9]*
The code below not only parses:
drwxrwxr-x 9 msik ia 4096 Nov 5 14:19 Group3
It also parses:
drwxrwxr-x 19 msik ia 4096 Nov 5 14:19 Group3
3
drwxrwxr-x 119 msik ia 4096 Nov 5 14:19 Group3
3
0 = file
1 = directory
2 = simlink
===============================================================================
To make the latest correction to the parsing code:
"ergye at yahoo dot com" dosen't take into account for files or directories
that are older than a year where instead of showing the time, it shows the
year.
The code below not only parses:
drwxrwxr-x 2<PHONE_NUMBER> Dec 3 12:12 CVAR
It also parses:
drwxrwxr-x 2<PHONE_NUMBER> Dec 3 2003 CVAR
0 = file
1 = directory
2 = simlink
===============================================================================
Note that there is no standard for the format, therefore don't be suprised when
parsing routines for this work perfectly on some servers, and fail horribly on
some.
===============================================================================
The previous regular expression is super, but does not take simlinks into
account. Change [-d] to [-dl] and instead of indicating directories we should
indicate the type of the items:
0 = file
1 = directory
2 = simlink
===============================================================================
Lets say only one of these scripts can accept filenames with spaces, but that
script doesn't return all info that we may need, so i have modified a little
bit one of my script and added some more regexp from here:
$buff = ftp_rawlist($cid,"/");
foreach ($buff as $file)
{
if(ereg("([-d][rwxst-]+).* ([0-9]) ([a-zA-Z0-9]+).* ([a-zA-Z0-9]+).*
([0-9]*) ([a-zA-Z]+[0-9: ]*[0-9]) ([0-9]{2}:[0-9]{2}) (.+)",$file,$regs))
{
if(substr($regs[1],0,1)=="d") $isdir=1; else $isdir=0;
$tmp_array['line']=$regs[0];
$tmp_array['isdir']=$isdir;
$tmp_array['rights']=$regs[1];
$tmp_array['number']=$regs[2];
$tmp_array['user']=$regs[3];
$tmp_array['group']=$regs[4];
$tmp_array['size']=$regs[5];
$tmp_array['date']=date("m-d",strtotime($regs[6]));
$tmp_array['time']=$regs[7];
$tmp_array['name']=$regs[8];
}
$dir_list[]=$tmp_array;
}
?>
The result is smth like that:
8 =>
array
'line' => '-rw-r--r-- 1 guru users 4 Sep 3 09:41 testas
testas testas.txt'
'isdir' => 0
'rights' => '-rw-r--r--'
'number' => '1'
'user' => 'guru'
'group' => 'users'
'size' => '4'
'date' => '09-03'
'time' => '09:41'
'name' => 'testas testas testas.txt'
9 =>
array
'line' => 'drwxr-xr-x 3 guru users 4096 Aug 20 08:54 upload'
'isdir' => 1
'rights' => 'drwxr-xr-x'
'number' => '3'
'user' => 'guru'
'group' => 'users'
'size' => '4096'
'date' => '08-20'
'time' => '08:54'
'name' => 'upload'
Home this will help someone
===============================================================================
NO, NO, NO.
The above examples are all wrong, the spaces given in array are not there "just
because", its just a tabbed structure. In php we don't have structures like in
c/cpp, but the following function will do the job.
===============================================================================
Hi all !
ther is a litlle mistake in the naivesong 's message .
Indeed , you stop to parse too early ...
I tried and fix it like this :
// getting the list
$list = ftp_rawlist ($ftp_stream, $ftp_directory);
$folders = array();
$files = array();
$links = array();
for ($i=0; $i= 1024)); $i++) {
$size = $size / 1024;
$ext = $sizes[$i];
}
return round($size, 2).' '.$ext;
}
?>
===============================================================================
I'm afraid I forgot the "parsenext" function in my previous note. Here it is:
===============================================================================
This script will properly handle FTP servers where the returned date/time
differs from the generic mm-dd-YYYY hh:mm:ss format:
")) !== FALSE)
{
$filelink = substr($list[$i], $k+4);
$list[$i] = substr($list[$i], 0, $k);
}
else
$filelink = "";
//----parse filename
$k = strrpos($list[$i], " ");
$filename = substr($list[$i], $k+1);
$list[$i] = substr($list[$i], 0, $k);
//----parse the rest of info
list ($permissions, $list[$i]) = parsenext ($list[$i]);
list ($number, $list[$i]) = parsenext ($list[$i]);
list ($owner, $list[$i]) = parsenext ($list[$i]);
list ($group, $list[$i]) = parsenext ($list[$i]);
list ($size, $time) = parsenext ($list[$i]);
//----ok, put all this into the related array
if ($filename != "." && $filename != "..")
{
$m = array();
$m["name"] = $filename;
$m["link"] = $filelink;
$m["size"] = $size;
$m["time"] = $time;
$m["owner"] = $owner;
$m["group"] = $group;
$m["permissions"] = $permissions;
if (substr($permissions, 0, 1) == "d")
$folders[count($folders)] = $m;
else if (substr($permissions, 0, 1) == "l")
$links[count($files)] = $m;
else
$files[count($files)] = $m;
}
}
sort ($folders);
sort ($files);
sort ($links);
?>
This script works fine on any raw list that complies with the following format:
permissions number owner group size time name [" -> " link_to]
where time may have whatever format the FTP server wants. ;-)
It also returns folders, files and links in separated sorted lists (got this
idea from the note of "postmaster at alishomepage dot com" in this help page).
===============================================================================
I fixed jmv AT jmvware DOT com's script:
8)
{
for($start=9;$start<$fixsize;$start++)
{
$name.=" " . $fix[$start];
}
}
?>
===============================================================================
If you write
The command will be "LIST -a", so the retuned list will also contain hidden
files like ".htaccess".
In this case all files and folders of the current directory are contained.
To list another folder, you must change to it with "ftp_chdir".
===============================================================================
hope this helps someone:
===============================================================================
Here we go for a 100% working code... :D
[code]
function cutspaces($str){
while(substr($str,0,1)==" "){$str=substr($str,1);}
return $str;}
[code]
$folders=array();
$files=array();
for($i=0;$i
so this will simply "get" all the information WITHOUT being in any case
interfered with some spaces, ... etc etc... It will even put files in a $files
array and folders in a $folders array, and sort them, so you will be able of
using all this later
and: the "folders" will NOT contain "." and ".." ;)
so you can use all this to make a beautiful FTP interface... later on you could
for example put permissions and etc etc in other arrays to use them in your
result... cute....
===============================================================================
Another "formula" for decoding the rawlist: the ide is that normaly a "ls"
contains info like below:


{{message}}
{% endfor %}1) Record Your video For 8-10 seconds
1) Once Record Press The Submit Buttion
1) For Desktop Users Record your Video By pressing Start Button and look into the camera.
2) Once Record Press The download Button to donload the video then drag and drop into the Video Upload Option
3) Finally Press The submit Button


A partial in Joda-Time is a partial date and time representation. All implementations represent local dates and times, and do not reference a time zone. As such, they only partially represent a date or time in the datetime continuum.
The main implementations changed in version 1.3. This was to address implementation issues with the original design. The previous classes - TimeofDay and YearMonthDay - are now effectively deprecated. The new implementations are LocalDate, LocalTime and LocalDateTime.
It is not possible to directly interoperate between a partial and an instant. A partial does not fully specify a single point in the datetime continuum, but instead may match multiple points. For example, a LocalTime occurs one per day on the datetime continuum.
A partial can be converted to a full instant by specifying the missing values. At a minimum the time zone must be specified. It may be necessary to specify other missing fields. For example, to convert a LocalDate to a DateTime requires filling in the time fields and the time zone.
In terms of datetime maths, you could write:
partial + missing fields + time zone = instant
Two classes represent a date in Joda-Time - DateMidnight and LocalDate. These have different meanings. DateMidnight is a fully specified instant, with a time zone. It is defined as the milliseond instant at exactly mignight (00:00) at the start of a day. LocalDate defines a day using the year, monthOfYear and dayOfMonth fields and no time zone. It can be thought of as a local date that covers the whole of the day from 00:00 to 23:59.
Within Joda-Time a partial is represented by the ReadablePartial interface. There are six implementations of the interface provided:
The code can be used in various ways:
// setup objects LocalDate date = new LocalDate(2004, 12, 25); LocalTime time = new LocalTime(12, 20); int year = date.getYear(); // returns 2004 int hour = time.getHour(); // returns 12 String monthStr = date.month().getAsText(); // returns 'December'
LocalDate date = new LocalDate(2004, 12, 25); LocalTime time = new LocalTime(12, 20); // merge, resulting in 2004-25-12T12:20 (default time zone) DateTime dt = date.toDateTime(time); // extract the date fields from someDT DateTime someDT = ... LocalDate date = new LocalDate(someDT);
Note that the interface ReadablePartial should not be used like the collections API. The interface only contains the core subset of the operations. Instead, you should refer directly to the implementation classes in your APIs.


Pressing connect will create a STOMP wrappered SockJS connection to '/hello_stomp' on the server
The STOMP client will subscribe to the topics /topic/greetings and /topic/goodbyes
The STOMP client will send messages to /app/hello and /app/bye


This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 768686.


Fortunately no one was injured as the passengers managed to disembark quickly, however some goods were burnt.
By a stroke of luck, members of the Zimbabwe Defence Forces who were passing by managed to stop and help with offloading goods from the trailer to avoid further damage.
The City Bus which was on its way from Gaborone, Botswana and is said to have started burning after the driver stopped to check a mechanical fault when tyre burst.
One of the passengers, Ms Gloria Mwale, a cross border trader from Kwekwe narrated the incident to the Herald
Another passenger, Mr Admire Chebundo from Harare, said the bus developed mechanical problems when it was leaving Bulawayo.
City Bus operations manager Ms Juliet Bokosha confirmed the incident and said investigations are still underway as to what caused the fire.
Images by ZBC
CHECK OUT THE LATEST NEWS
JUST IN: Fuel Shoots Up Again As ZERA Announces New Prices
Zimra RELEASES List Of CARS IMPORTED Under UNCLEAR circumstances: Check for YOURS
PHOTOS:The Day Jonathan Moyo Fled Zimbabwe During November 2017 Coup
UK based Zim nurse suffers mental breakdown, threatens to axe wife and police officers
To View and Apply for the latest Jobs and Vacancies in Zimbabwe, Please Visit our Sister website iHarare Jobs


Guidance
Types of apprenticeships that you can apply for in the gas industry sector.
Apprenticeships are the ideal way into this industry because of their technical content and all the safety requirements of the job.
The gas industry intermediate level and advanced level apprenticeships cover a range of job roles in the industry. They enable you to train to work in the installation, service and repair of domestic gas appliances.
These appliances could include boilers, cookers, central heating systems and fires. Gas installation and service technicians are trained to connect appliances to gas supplies and ensure that everything’s safe, and deal with leaks according to strict safety requirements.
You’ll assist a gas engineer and learn how to install and maintain gas appliances, working towards registration on the Gas Safe Register - a requirement for anyone performing work on gas appliances. The apprenticeship also covers other aspects of the job, such as systems design, customer service, tools and materials.
On the advanced level apprenticeship you’ll learn to work on more complex systems. Advanced level apprentices will have the option to follow the emergency services path, learning to respond to an emergency, assess the situation and make the necessary repairs.
The intermediate level apprenticeship also provides opportunities to work on the national transmission system that transports gas across the country from “beach to burner”. You could learn the skills and knowledge required to lay and maintain gas mains and service pipes.
There are 2 types of apprenticeships.
You can train in roles like:
You can train in roles like:
You can become an apprentice in England if you’re:
Published: 12 April 2012


Spice World (PG) 1/2* (out of ****)
OK, I admit it--I find camp amusement with the Spice Girls. Yes, the same Spice Girls of the gimmicky individual "identities," they of the annoyingly infectious bubblegum pop hooks and cheesy unifying mantra of "Girl Power." But not even their guilty pleasure appeal isn't enough to carry their big screen debut, a junky mess which would be more aptly named Shite World than Spice World.
The film begins amusingly enough, with a cheeky 007-esque title sequence in which the British quintet--"Scary" (Melanie Brown), "Baby" (Emma Bunton), "Sporty" (Melanie Chisolm), "Ginger" (Geri Halliwell), and "Posh" (Victoria Adams)--are introduced one by one (to, much to my surprise, excited and only slightly mocking cheers from the press audience) as they croon the silky ballad "Too Much" (a tune that would sound right at home in an actual James Bond film). A few minutes and an Elton John cameo later comes an introductory tour of the numerous plotlines that run through the film: (1) the Spicy ones go on a European publicity tour leading up to their first live concert at London's Royal Albert Hall; (2) a film producer (George Wendt) and a screenwriter (Mark McKinney) pitch various film ideas to the Girls' manager, Clifford (Richard E. Grant); (3) a documentary film crew follows the Girls; (4) a pregnant "mate" (Naoki Mori) of the group rapidly approaches her due date; and (5) a tabloid publisher (Barry Humphries) attempts to destroy the group with the help of a sneaky shutterbug (Richard O'Brien). Capped off by a live rendition of the Girls' bouncy hit "Say You'll Be There," a wealth of laughs and merriment is sure to follow, right?
Wrong. It's all downhill from there as Spice World collapses into a series of misfired comedy sketches. I must give the Girls credit for their refreshing willingness to make fun of themselves, but writer Kim Fuller and director Bob Spiers can barely come up with a funny joke between them, much less a organized framework for all the "wacky" goings-on. Spice World jumps from vignette to vignette, subplot to subplot with no direction and little sense, at one minute having the Girls meet with aliens (no joke) and at another having them stage a daring rescue of two young fans who fall into the water during a boat ride. While a decent joke slips through the cracks here and there--during a "dance bootcamp" scene, the Girls sing the lyric "We know how we got this far/Strength and courage and a Wonderbra"--much of the material is not even funny on the chuckle level. Some gags are just plain pointless, such as Roger Moore's recurring role as the mysterious Chief, who dispenses cryptic, metaphor-heavy advice to Clifford. The only reason why I can think anyone would find that funny is the fact that Moore once played James Bond. Ha ha.
As weak as the script is, I think there's one insurmountable problem with even attempting to make a Spice Girls movie, and that is the Girls themselves. The point is not that they can't act (and, for the record, they really _can't_) but that their individual personas, which works as a gimmick over the span of a four-minute music video, are too thin to survive outside of the truncated, video bite MTV world. Posh (who garnered the most enthusiastic cheers during the introductions) comes off best by default because her persona (rich bitch) most easily translates into character in a film. Baby's persona (young innocent), to a lesser extent, also works, but the remaining Girls' identities are a little harder to flesh out. There really isn't much to do with Sporty besides having her exercise every so often (which is _exactly_ what Fuller and Spiers do), and, after all, what exactly entails being "Ginger" or "Scary"? Apparently, just their wardrobes.
Spice World manages to pick up some steam in the late going following a flashback performance of the Spices' signature hit, "Wannabe." The song is as grating as ever, but the energy of the number gives the proceedings a much-needed shot in the arm, setting the stage for a wave of self-referential humor stemmed from the screenwriters' film ideas (the film almost mirrors Robert Altman's The Player in the way the film snails into itself). This section of the film, involving all manner of derring-do involving a speeding bus, is perhaps its most effective, but it also points up how all the other storylines (the publisher, the documentary crew) lack a satisfactory payoff.
Spice World is harmless entertainment suitable for the entire family, and it will please the Spice faithful. But this sloppy enterprise surely won't win them any new fans, which is what the group sorely needs to bolster its rapidly waning Girl Power in the States. Once the hype disappears, Spice World will likely serve as the the Spices' final hurrah in America.
Michael Dequina<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS><EMAIL_ADDRESS>|<EMAIL_ADDRESS><EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>Visit Mr. Brown's Movie Site at http://members.tripod.com/~MrBrown/ Personal Page: http://members.tripod.com/~MrBrown/home.html Michael Jordan Beyond the Court: http://www.geocities.com/Colosseum/Field/2302/ A Michael Jordan Fan's Heartbreak: http://members.tripod.com/~mj23/mj.html
"I've failed over and over and over again in my life... and that is why I succeed." --Michael Jordan
"If you chase something, then sometimes you never get it. If you put forth the work and all the attitude, next thing you know it's bestowed upon you." --Michael Jordan
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Default
Details
#foreach( $machine in $machines )
$machine
#end
System
Cpu usage
Available memory (MByte)
Bytes in per second
Bytes out per second
Messages in per second
Messages out per second
Commands resent per second
Peer count


You are viewing an historical archive of past issues. Please report new issues to the appropriate project issue tracker on GitHub.
Issues
| # | Summary | Product | Status | Kind | When |
|---|---|---|---|---|---|
| 1518 |
Reasonable lags on specific search letters |
Command-T | closed | bug | Created , updated |
| 1517 |
add MaxHeight option to allow the user to limit the command-t window expansion (patch included) |
Command-T | closed | feature request | |
| 1516 |
Match against filename only |
Command-T | closed | feature request | Created , updated |
| 1515 |
"list" setting not restored correctly |
Command-T | closed | bug | |
| 1514 |
Error in CommandTAcceptSelection when opening file. |
Command-T | closed | bug | |
| 1513 |
Error in CommandTShow function when opening CommandT for first time. |
Command-T | closed | bug | Created , updated |
| 1512 |
uninitialized constant CommandT::Match |
Command-T | closed | bug | Created , updated |
| 1511 |
Open file in split window |
Command-T | closed | feature request | |
| 1510 |
Automate compilation testing on multiple versions of Ruby |
Command-T | closed | feature request | |
| 1509 |
"require" needs absolute path on Windows |
Command-T | closed | bug |


Supreme Court of India came into existence on 26th January, 1950 and is located on Tilak Marg, New Delhi. The Supreme Court of India functioned from the Parliament House till it moved to the present building. It has a 27.6 metre high dome and a spacious colonnaded verandah. For a peek inside, you'll have to obtain a visitor's pass from the front office.
On the 28th of January, 1950, two days after India became a Sovereign Democratic Republic, the Supreme Court came into being. The inauguration took place in the Chamber of Princes in the Parliament building which also housed India's Parliament, consisting of the Council of States and the House of the People. It was here, in this Chamber of Princes, that the Federal Court of India had sat for 12 years between 1937 and 1950. This was to be the home of the Supreme Court for years that were to follow until the Supreme Court acquired its own present premises.
The inaugural proceedings were simple but impressive. They began at 9.45 a.m. when the Judges of the Federal Court - Chief Justice Harilal J.Kania and Justices Saiyid Fazl Ali, M. Patanjali Sastri, Mehr Chand Mahajan, Bijan Kumar Mukherjea and S.R.Das - took their seats. In attendance were the Chief Justices of the High Courts of Allahabad, Bombay, Madras, Orissa, Assam, Nagpur, Punjab, Saurashtra, Patiala and the East Punjab States Union, Mysore, Hyderabad, Madhya Bharat and Travancore-Cochin. Along with the Attorney General for India, M.C. Setalvad were present the Advocate Generals of Bombay, Madras, Uttar Pradesh, Bihar, East Punjab, Orissa, Mysore, Hyderabad and Madhya Bharat. Present too, were Prime Minister, other Ministers, Ambassadors and diplomatic representatives of foreign States, a large number of Senior and other Advocates of the Court and other distinguished visitors.
Taking care to ensure that the Rules of the Supreme Court were published and the names of all the Advocates and agents of the Federal Court were brought on the rolls of the Supreme Court, the inaugural proceedings were over and put under part of the record of the Supreme Court.
After its inauguration on January 28, 1950, the Supreme Court commenced its sittings in a part of the Parliament House. The Court moved into the present building in 1958. The building is shaped to project the image of scales of justice. The Central Wing of the building is the Centre Beam of the Scales. In 1979, two New Wings - the East Wing and the West Wing - were added to the complex. In all there are 15 Court Rooms in the various wings of the building. The Chief Justice's Court is the largest of the Courts located in the Centre of the Central Wing
The original Constitution of 1950 envisaged a Supreme Court with a Chief Justice and 7 puisne Judges - leaving it to Parliament to increase this number. In the early years, all the Judges of the Supreme Court sat together to hear the cases presented before them. As the work of the Court increased and arrears of cases began to cumulate, Parliament increased the number of Judges from 8 in 1950 to 11 in 1956, 14 in 1960, 18 in 1978 and 26 in 1986. As the number of the Judges has increased, they sit in smaller Benches of two and three - coming together in larger Benches of 5 and more only when required to do so or to settle a difference of opinion or controversy.
The Supreme Court of India comprises the Chief Justice and 30 other Judges appointed by the President of India. Supreme Court Judges retire upon attaining the age of 65 years. In order to be appointed as a Judge of the Supreme Court, a person must be a citizen of India and must have been, for atleast five years, a Judge of a High Court or of two or more such Courts in succession, or an Advocate of a High Court or of two or more such Courts in succession for at least 10 years or he must be, in the opinion of the President, a distinguished jurist. Provisions exist for the appointment of a Judge of a High Court as an Ad-hoc Judge of the Supreme Court and for retired Judges of the Supreme Court or High Courts to sit and act as Judges of that Court.
The Constitution seeks to ensure the independence of Supreme Court Judges in various ways. A Judge of the Supreme Court cannot be removed from office except by an order of the President passed after an address in each House of Parliament supported by a majority of the total membership of that House and by a majority of not less than two-thirds of members present and voting, and presented to the President in the same Session for such removal on the ground of proved misbehaviour or incapacity. A person who has been a Judge of the Supreme Court is debarred from practising in any court of law or before any other authority in India.
The proceedings of the Supreme Court are conducted in English only. Supreme Court Rules, 1966 are framed under Article 145 of the Constitution to regulate the practice and procedure of the Supreme Court.


| Top |
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkBin ╰── GtkButton ╰── GtkFontButton
GtkFontButton implements AtkImplementorIface, GtkBuildable, GtkActionable, GtkActivatable and GtkFontChooser.
The GtkFontButton is a button which displays the currently selected font an allows to open a font chooser dialog to change the font. It is suitable widget for selecting a font in a preference dialog.
GtkWidget *
gtk_font_button_new (void
);
Creates a new font picker widget.
Since: 2.4
GtkWidget *
gtk_font_button_new_with_font (const gchar *fontname
);
Creates a new font picker widget.
Since: 2.4
gboolean gtk_font_button_set_font_name (GtkFontButton *font_button
,const gchar *fontname
);
Sets or updates the currently-displayed font in font picker dialog.
Since: 2.4
const gchar *
gtk_font_button_get_font_name (GtkFontButton *font_button
);
Retrieves the name of the currently selected font. This name includes
style and size information as well. If you want to render something
with the font, use this string with pango_font_description_from_string()
.
If you’re interested in peeking certain values (family name,
style, size, weight) just query these properties from the
PangoFontDescription object.
Since: 2.4
void gtk_font_button_set_show_style (GtkFontButton *font_button
,gboolean show_style
);
If show_style
is TRUE
, the font style will be displayed along with name of the selected font.
Since: 2.4
gboolean
gtk_font_button_get_show_style (GtkFontButton *font_button
);
Returns whether the name of the font style will be shown in the label.
Since: 2.4
void gtk_font_button_set_show_size (GtkFontButton *font_button
,gboolean show_size
);
If show_size
is TRUE
, the font size will be displayed along with the name of the selected font.
Since: 2.4
gboolean
gtk_font_button_get_show_size (GtkFontButton *font_button
);
Returns whether the font size will be shown in the label.
Since: 2.4
void gtk_font_button_set_use_font (GtkFontButton *font_button
,gboolean use_font
);
If use_font
is TRUE
, the font name will be written using the selected font.
Since: 2.4
gboolean
gtk_font_button_get_use_font (GtkFontButton *font_button
);
Returns whether the selected font is used in the label.
Since: 2.4
void gtk_font_button_set_use_size (GtkFontButton *font_button
,gboolean use_size
);
If use_size
is TRUE
, the font name will be written using the selected size.
Since: 2.4
gboolean
gtk_font_button_get_use_size (GtkFontButton *font_button
);
Returns whether the selected size is used in the label.
Since: 2.4
void gtk_font_button_set_title (GtkFontButton *font_button
,const gchar *title
);
Sets the title for the font chooser dialog.
Since: 2.4
const gchar *
gtk_font_button_get_title (GtkFontButton *font_button
);
Retrieves the title of the font chooser dialog.
Since: 2.4
“font-name”
property“font-name” gchar *
The name of the currently selected font.
Flags: Read / Write
Default value: "Sans 12"
Since: 2.4
“show-size”
property“show-size” gboolean
If this property is set to TRUE
, the selected font size will be shown
in the label. For a more WYSIWYG way to show the selected size, see the
::use-size property.
Flags: Read / Write
Default value: TRUE
Since: 2.4
“show-style”
property“show-style” gboolean
If this property is set to TRUE
, the name of the selected font style
will be shown in the label. For a more WYSIWYG way to show the selected
style, see the ::use-font property.
Flags: Read / Write
Default value: TRUE
Since: 2.4
“title”
property“title” gchar *
The title of the font chooser dialog.
Flags: Read / Write
Default value: "Pick a Font"
Since: 2.4
“use-font”
property“use-font” gboolean
If this property is set to TRUE
, the label will be drawn
in the selected font.
Flags: Read / Write
Default value: FALSE
Since: 2.4
“font-set”
signalvoid user_function (GtkFontButton *widget, gpointer user_data)
The ::font-set signal is emitted when the user selects a font.
When handling this signal, use gtk_font_button_get_font_name()
to find out which font was just selected.
Note that this signal is only emitted when the user changes the font. If you need to react to programmatic font changes as well, use the notify::font-name signal.
widget |
the object which received the signal. |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run First
Since: 2.4


See the source in GitHub
Parse and compile PO files in a Firefox browser (Firefox is needed to decode non UTF-8 charsets)
Select a translation file: and Parse PO or Parse MO
All parsed files are recompiled both as PO and MO and added here as download links:


Presently, only days after the festive sale finished, Amazon has declared that it is facilitating another new deal on its foundation in India.
About the offer: 10% Instant Discount on ICICI Credit and Debit Cards + Bonus Offer ( T&C Apply )
The sale will feature new product launches, cashback offers, discounts & deals across a wide range of categories.
During the sale, Amazon will offer deals on a variety of selection across different catalogues like smartphones, laptops, cameras, large appliances & TVs, home & kitchen products, fashion, beauty, consumables such as grocery and consumer electronic products.
Deals on Amazon Fashion (Up To 90% off)
Deals on latest and best smartphones of 2019 – Up To 40% off
Deals on TVs and Appliances – Up To 60% off
Deals on Echo, Fire TV and Kindle – Up To 70% off


Nirmalya Labs Pvt. Ltd.
Sai Saraswati Complex, Chandrashekharpur, Bhubaneswar
Process Management by CPM
Choose File
No file selected
Submit
Please select an Excel File which contains data of the various processes