Posts tagged code
Warning: Creating default object from empty value in /sites/vhosts/coderchris.com/public_html/wp-includes/comment-template.php on line 808
Posted using ShareThis
Firstly, as you can see this is my first post made as a direct result of using the ShareThis bookmarklet, which is pretty neat as it actually worked
Secondly and more importantly, I wanted to flag this up on my blog as it's something that quite often gets missed in PHP which is actually a very powerful tool.
As the author of the post above mentions, array_map() can be a useful function when sanitizing user data, but it has so many more uses too when dealing with the transformation of a data-set.
Basically a call such as $new_data = array_map('process_data', $old_data); will allow you to transform each element in the $old_data array to a new element in the $new_data array via the function called process_data.
What's more you can manipulate multiple data-sets in this way too by specifying multiple arrays, so long as process_data() can take in the arguments.
For example lets say we have process_data($item1, $item2, $item3) which manipulates $item1, $item2, $item3 to produce a single result.
If we need to perform this calculation on a bulk set of data we can do
$new_data = array_map('process_data', $array_of_item1, $array_of_item2, $array_of_item3);
I still see people performing these transformations, calculations, whatever, using for, foreach and while loops which can be prone to failure under certain conditions, and are probably less efficient code than simply making this call.
So why don't more people use it?Â I don't know, but maybe this post will help raise awareness!
refactormycode.com is a fledgling website setup as a project by French CanadianÂ Ruby Developer Marc-AndrÃ© Cournoyer and basically it's like a coding forum without the usual forum junk, style and obfuscation of content (forums for me are always a pain to use because of the tiers of information you have to go through).
It's a great looking website covering all the current major programming languages (at least when thinking of the web) and the idea behind it, though simple, seems to work really well.
Basically, you have some code that works, but you want to make it better, more efficient, or just tidier. So, you post your code sample and other people suggest changes. It's kind of like yahoo answers for developers or the comments foot of the PHP manual.
The code to be refactored, so far in the PHP section at least, has been of a reasonable standard i.e. that of at least intermediate developers, which is great as these services can tend to get flooded by newbies who don't know their $i++ from their ++$i :p and rapidly lose interest for me.
So far there are only a few PHP samples on there to comment on but I think, as the site begins to grow, there will be a wealth of well developed and critiqued code that serves as good examples or directly useable functionality.
So far I can't really fault it, other than making the "Best" link clearer by calling it "Best Refactorors"Â or something similar, and providing some closed, or accepted answer(s) type functionality to stop a thread getting out of hand (it could be that this exists already but I just haven't seen it yet). Maybe even an option to download each refactoring as a plain text file could be useful.
So, to round up, as you can probably tell, I love this site and you can see my standing in the community in the foot of this page! Keep up the great work Marc and I hope your site develops in the way it deserves and gets the recognition it should!
Recently I have been doing a LOT of research into various wordpress themes and plugins and as you may expect the code varies from the excellent to the dire, but in most cases each achieves what it is supposed to.
That said however I have been seeing an increasing number of dodgy/spammy plugins which would probably cause more harm than good to the blogs of people who blindly install them.
These plugins or themes generally suggest they are doing one thing, but are actually doing another, such as building networks of spam links or sending valuable infomration to third parties... not good!
Though I could name and shame these dodgy items here I don't really wish to suffer the wrath of the scum of the internet, so all I'll offer is a plain and simple warning:
BE CAREFUL ABOUT THE PLUGINS YOU INSTALL AND THE THEMES YOU USE
Check them out, make sure they're fit for purpose, if you don't have enough knowledge yourself to understand what the plugin is doing ask someone who does.
Let's face it, at the worst you could expose yourself to having all important server details sent to a third-party and at the least you may end up with a blog covered in spam content getting you blocked by the major search engines.
A very simple example of a check anyone can perform is to look through the plugin/theme code and look for url's or email addresses that are not anything to do with you or the plugin/theme.
This simple check alone can help protect you against unwanted and potentially harmful disguised code.
When I write plugins for wordpress I like to do it on a test blog in a live environment.
Maybe not the best idea, but it's how I like to do it, and it also flags up any weird and wonderful restrictions to the development of the plugin as a result of my hosting company's security policy.
For a while now I've worked with just the plain old plugin editor that comes with wordpress, but this is cumbersome to say the least and as such I went looking for a syntax highlighting editor which I could (if necessary) convert into a plugin to (ironically enough) improve the plugin editor.
Turns out that there's quite a few good syntax highlighting online code editors available (list at the end of this post) and at least one neat one (CodePress)Â has been converted to a wordpress plugin for theme editing and plugin editing.
This is a really great start, but there's a couple of things I'd really like to see to progress this work - If I have the time I'll do it myself, otherwise someone else reading this post may like to take it up!
Basically the current Codepress for wordpress plugin is missing (in my opinion) a few additional functions to create backups of the plugin or theme files you're working on, to an extent a rudimentary versioning system could and should be implemented within the editor.
There should be an option to package up the plugin you're editing and release it to the community/tie updates into the automatic plugin updater of 2.5
The current CodePress release is great but what would make it even greater would be code hinting when editing.
This would work (in my mind) by noticing the opening of ( and then checking what preceded it back to the last space or operator (*, ., /, etc.), then looking up this string from a function definition array and displaying a tooltip near where you are editing in the text area to remind you of the syntax - possibly with an autocomplete if you press enter.
I think the main problem with this is knowing where you are in the text area to display the div with the tool tip text in it in the right place. I know you can monitor where you are in a text area in terms of columns and rows, so surely if you know the location of the start of the text area and the size of the character in the text area and the co-ordinates of the cursor in the text area via row/column values you should be able to determine the optimal position for the <div>?
I think it would be really great to see that kind of functionality in any of the online code editors listed below on it's own let alone any other stuff such as versioning that I've already mentioned.
So there it is!
I probably will end up doing some work on the codepress plugin myself from a versioning point of view, but if any one else out there can figure out a way of doing the code hinting in JS that'd be fantastic!
Existing On line Code Editors:
Autosuggest example (could be used to provide the tool tip if the positioning is worked out): http://gadgetopia.com/post/3773