MushCoder 0.08
Good news! Or bad news as you take it… As version 0.1 may be take a bit longer then even I expected so here is a mid way release.
It does not feature all the stuff I wanted to see for versionj 0.1 but a few improvements that make it far more usuable (hence why 0.08 and not 0.02)
Changes
- Formating / Unformating of mushcode
- improved highlighting
- completely rewritten engine
- improved compatibility to non Penn Mushes
- fixed saving of files
You can get the file
here
MushCoder 0.1 Preview
OKay there won’t be a new update for somet time as some BIG things are coming, werll a bit bigger … so they might take a few days. Which includes rewriting good aprts of the datamanagement and stuff like that.
A nicer userinterface is also planned, neat functionality and all that nifty stuff. So to make waiting easyer here are a few screenshots of the thing I’m working no – reworked gui.
Left is still the tree with the objects, in picture
4
and
5 you see how one can now easiely add new objects. Also I made some new pictures for the different types – well I got the idea from XCode cause I liked it, color and letter simple but easy to spot. You can see that in picture
8
Okay so that are a few things that are coming in 0.1 :) stay tuned!
MushCoder 0.01
Okay more good news! After another one and a half day of haaard work on this I added a few new features and removed a few bugs I found!
What is new?
- Parentheses matching:Yap works neat as long as you don’t do ugly things in your code like not escaped parentheses!
- Syntax Colors: Looks much better now!
- Icon: I got down to make two icons, one for the files another one for the app itself – I like them!
- removing objects: You can now remove objects again from your list of objects – might be handy ;P
- Object names: Names are displayed instead of DB’Refs
- somethig else: I forgot what it was but it’s usefull I’m certain about that!
What is coming up?
- support for big attributres (currently the code might get funny on attributes that can’t be send at once (not sure if that can ahppen at all but I am better carefull)
- ofline editing
- keychain support
- auto identing for code
- smart groups
- internal rewrites of stuff
Again use it at your own risk: download
MushCoder 0.0
&tOkay,
has been long enough but finally something new here. I’ve started a new project and got it to a state where it actually can be used. It leas a lot of the planned features and surely has still quite a few bugs but hey it’s far enough to allow everyone who want’s to to have a look at it.
What is it for?
Well I am coding at times in a language named MUSHCode, it’s used in text based online RPG’s called
MUSHs
. The language used there is a LISP deviate and without any kind of aid of even an editor can be a pain. So that is where MushCoder (and I hope I find a nicer name with time) comes it, it’s supposed to be a IDE for Mushcoding.
As a note, it’s an cocoa app so won’t run under OS’s different then OS X.
What does it do?
- Projects:
Currently it features a simple project layout, one can create projects (which are a collection from objects and a server to connect to. - Source Browsing:
You can brows the objects of a project for their attributes - Syntax Highlighitng : When editing a attribute MushCode gets syntax highlighted (might not be perfect)
- Attribute Classes: base on common prefixes attributes are sorted in classes and handled differently.
- Context sensitive unformating: This are two functions actually, for code unformating works just by removing all line breaks and tabs that are in the code you have edited (mushcode does not feature multiple lines in a attribute). For attributes that are meant to hold readable text (like descriptions) it replaces tabs and line breaks with the appropriate characters.
What is it missing?
- Code completion
- A icon
- a good name
- fool proof syntax highlighitng including bracket matching
- a more intuitive gui
- bug-fixes (I’m sure there are a lot still left)
Last words
Well feel free to download a
copy
. So keep in mind it’s still alpha at best, no guarantee whatsoever is given for your code, projects, computers, pets or lunch!
But if you find a bug, or have an idea about what to include feel free to mail me or drop a comment here. The mail addy is included in the about screen.
Watching multiple fields with Prototype
Quick & dirty visitor stats for rails
cat production.log | grep "^Processing" > out.tmp && ruby -e 'data = Hash.new;File.open("out.tmp").each{|l| data[ip = l.split(" ")[3]] = (data[ip] || 0) + 1}; puts data.length'
Now it is ugly, using files and all this but it worked which were the main idea behind it (quick and dirty), very dirty I must admit so. A few days later I talked with a friend over the topic and we came up with a lightly nicer way to do thigs:
cat production.log | grep "^Processing" | ruby -e 'ips = Hash.new(0); while gets; ips[$_[/\s.*?\s.*?\s(\S+)/,1]] += 1; end; ips.length'
While this already was a nice solution (and terrible ugly to read) it still worked and gave the number of hits just as the first line of code. The basic idea in both of this is to create a hash of IP’s that accessed the website and then return the length of the hash.
Nice, both of them so in the end there is a much simpler what without the use of ruby (as much as I love the language) so here what came out after a bit more pondering, it don’t uses ruby any more just console commands:
cat production.log | grep "^Processing" | awk '{print $4}' | sort -u | wc | awk '{print $1}'
A short in detail description of what happens. `cat production.log` gets the data of the content of the logfile itself the `|` pipes the output to the next command (like one would write to the STDIN).
The next step is to filter the log `grep “^Processing”` takes care of this it only leaves lines that start with the word Processing which would be (I masked the IP from that line):
Processing ArticlesController#permalink (for xxx.xxx.xxx.xxx at 2006-08-01 20:53:29) [GET]
The following command `awk ‘{print $4}’` gets the 4th word of the line, which in this case would be the IP of the whole request. Now we have a list of all IP’s that ever accessed the site.
As there are still multiple lines from the same IP in there we need to filter them. `sort -u` takes care of this it sorts the list and remove double entries, like twice then same IP.
Now all that is left is to count the lines in this file, `wc` is our friend here, it returns 3 values Ajax Scaffold live search
Typo & Coderay