User:Crutchy: Difference between revisions

From SoylentNews
Jump to navigation Jump to search
No edit summary
No edit summary
 
(56 intermediate revisions by 2 users not shown)
Line 1: Line 1:
I'm from Australia.
I'm just a regular pleb from Australia. I'm not a member of the Soylent staff.


PHP/SQL/HTML/CSS and Delphi (Object Pascal) are my preferred languages.<br>
PHP/SQL/HTML/CSS and Delphi (Object Pascal) are my preferred languages.<br>
I'm pedantic about code etiquette (indents, spaces, etc).<br>


New to Perl but interested in learning. I have a basic perl virtual host set up on my dev machine. Also got the slashdev virtual machine going, which makes the prospect of being able to contribute something that might be considered useful to the project a bit more likely.<br>
Look out for me on Soylent IRC (#Soylent and #)<br>


Look out for me on #Soylent IRC.<br>
http://soylentnews.org/~crutchy/
 
Crutchy's perl journal: http://soylentnews.org/~crutchy/journal/72
 
Code doc project: http://soylentnews.org/~crutchy/journal/82
 
slashdev journal: http://soylentnews.org/~crutchy/journal/114
 
Watch pages:<br>
[[Style]]<br>
[[CssWork|CSS Work]]<br>
 
==Unit testing==
An area that I've been getting into a bit more with some of my other (mainly php) work. It's supposed to be that you write the tests first, but since slashcode is already written it's a bit hard to do that, but some kind of automated regression testing framework probably wouldn't hurt.
 
==Code style==
Perl programming style guide:<br>
http://perldoc.perl.org/perlstyle.html
 
Just to start the ball rolling ("borrowed" from perl.org):
* closing curly bracket of a multi-line BLOCK should line up with the keyword that started the construct
* 4-column indent (slashcode uses tab indents, but in gedit you can set tab width or raplace tabs - tab may be better anyway?)
* Opening curly on same line as keyword, if possible, otherwise line up
* Space before the opening curly of a multi-line BLOCK
* One-line BLOCK may be put on one line, including curlies
* No space before the semicolon
* Semicolon omitted in "short" one-line BLOCK
* Space around most operators
* Space around a "complex" subscript (inside brackets)
* Blank lines between chunks that do different things
* Uncuddled elses
* No space between function name and its opening parenthesis
* Space after each comma
* Long lines broken after an operator (except and and or )
* Space after last parenthesis matching on current line
* Line up corresponding items vertically
* Omit redundant punctuation as long as clarity doesn't suffer
If anyone has any others or wants to change any, feel free to do so. Maybe add a reason/background in change summary just so others know where you're coming from.
 
We should maybe make a wiki page for coding style and develop it so that all our code is readable and consistent regardless of author.<br>
Also looking for one for other languages used for Soylent: CSS, HTML, JS, SQL
 
Goes without saying, but HTML and CSS should be W3C compliant.
 
==Slashcode==
IHMO there are way too many folders nested in the slashcode source tree. There may be good reasons but I generally prefer a flat filesystem (as much as possible anyway) for code accessibility. Also helps to reduce likelihood of duplicate filenames. In the slashdev virtual machine I noticed that the apache public directory has links to a lot of the key files in a single directory, which makes things a lot easier.
 
What do other devs think of prefixing function names with source filename?<br>
For example, main() function in article.pl becomes article__main()<br>
Not suggesting that it all be changed to suit this convention right away, but might be handy for new functions to make it easier to figure out where things are declared.
 
gedit identifies a syntax error in shtml.pl getFileText function (line 74). Looks like a rogue "s" after the "!-" operator.
 
===slashcode files of interest===
https://github.com/SoylentNews/slashcode/blob/master/themes/slashcode/htdocs/article.pl
 
https://github.com/SoylentNews/slashcode/blob/master/themes/slashcode/htdocs/comments.pl
 
==IRC logging bot==
 
had a go at scripting a little irc bot for soylent. not very pretty or fancy but seems to work ok.
 
requires sic (http://tools.suckless.org/sic)
if you're using debian:
 
<pre>sudo apt-get install sic</pre>
 
log filename, channel name etc are hardcoded in script (quick and dirty).
 
any bugs etc let me know.
 
<pre>
#!/bin/bash
 
log="test.log"
pipe="log-pipe"
 
trap "rm -f $pipe" EXIT
 
if [[ -f $log ]]; then
rm $log
fi
 
if [[ ! -p $pipe ]]; then
mkfifo $pipe
fi
 
substr="End of /MOTD command"
joined=""
sic -h "irc.sylnt.us" -n "log-bot" <> $pipe | while read line; do
if [[ -n "$line" ]]; then
echo $line >> $log
fi
    if [[ -z "$joined" ]] && [[ -z "${line##*$substr*}" ]]; then
joined="1"
echo "joining #test"
echo ":j #test" > $pipe
fi
done
 
exit 0
</pre>

Latest revision as of 09:34, 20 February 2015

I'm just a regular pleb from Australia. I'm not a member of the Soylent staff.

PHP/SQL/HTML/CSS and Delphi (Object Pascal) are my preferred languages.

Look out for me on Soylent IRC (#Soylent and #)

http://soylentnews.org/~crutchy/