Archive
If you've got a website that's heavy on your web server, you might want to run
some processes like generating thumbnails or enriching data in the background.
This way it can not interfere with the user interface. Linux has a great
program for this called cron. It allows tasks to be automatically run in the
background at regular intervals. You could also use it to automatically create
backups, synchronize files, schedule updates, and much more. Welcome to
the wonderful world of crontab.
Warning. This article is meant for Ubuntu Feisty only and is therefore deprecated! Compiz-fusion comes standard in more recent Ubuntu versions, so don't use this article anymore! I would have taken this article offline if it wasn't for the fact that there are still some Feisty users out there who find this useful. If you're in the midst of upgrading from Feisty to Gutsy, read howto upgrade to Ubuntu Gutsy without breaking compiz-fusion!
Not everyone knows about PHP's capabilities of making SSH connections and executing remote commands, but it can be very useful. I've been using it a lot in PHP CLI applications that I run from cronjobs, but initially it was a pain to get it to work. The PHP manual on Secure Shell2 Functions is not very practicle or thorough for that matter, so I would like to share my knowledge in this how to, to make it a little less time consuming setting this up.
Everyone knows PHP can be used to create websites. But it can also be used
to create desktop applications and commandline tools. And now with a class
called System_Daemon, you can even create daemons using nothing but PHP.
And did I mention it was easy?
Since 2005 there has been an immense increase in brute force SSH attacks and though Linux is pretty secure by default, it does not stop evil programs from indefinitely trying to login with different passwords. Without proper protection your server is a sitting duck waiting for a bot to guess the right combination and hit the jackpot. But with just 2 commands we can stop that.
Synchronizing files from one server to another is quite awesome. You can use it for backups, for keeping web servers in sync, and much more. It's fast and it doesn't take up as much bandwidth as normal copying would. And the best thing is, it can be done with only 1 command. Welcome to the wonderful world of rsync.
A good way for sites or articles to get known is submitting to social bookmarking sites, so submitting should be as easy as possible for your visitors. But gathering information on the best social bookmarking sites, their icons, submission URLs, and ranking is quite a pain. And so I did it for you. I'll also give you a PHP example of how to integrate social bookmarking sites in your website.
It's no secret I like Ubuntu the best. But what strikes me as odd, is that it does not come standard with a good tool to change the display settings. Sure, you can change the Screen Resolution, but what about cloning to another device, extending the desktop to a second screen, changing the driver, or adjusting the refresh rates to enable more resolutions? There currently is no graphical way to do this in GNOME, so for this you had to manually change the X config file, or run a third party tool like nvidia-settings. But now I found a great GTK tool that can do it for you.
CDs and DVDs don't have the eternal life, so you might want to back them up as ISO images. All the files and properties of the original disc, stored in a single file. You can also create ISO images and store them on your network for easy distribution of software installations. Here's how to create and mount ISO images on Linux.
In PHP, sessions can keep track of authenticated in users. They are an essential building block in today's websites with big communities and a lot of user activity. Without sessions, everyone would be an anonymous visitor.
In system terms, PHP sessions are little files, stored on the server's disk. But on high traffic sites, the disk I/O involved, and not being able to share sessions between multiple webservers make this default system far from ideal. This is how to enhance PHP session management in terms of performance and shareability.
I recently faced a programming challenge that almost broke my brain. I needed to create a function that could explode any single-dimensional array into a full blown tree structure, based on the delimiters found in it's keys. Tricky part was size of the tree could be infinite. I called the function: explodeTree. And maybe it's best to first look at an example.
I often hear about people who want to upgrade their version of Ubuntu with tools like apt-get, but if you run a desktop version of Ubuntu, there is a much better tool called update-manager. There are a lot of ways to upgrade Ubuntu. But this one is the best.
Recently two of my articles reached the Digg frontpage at the same day. My web server isn't state of the art and it had to handle gigantic amounts of traffic. But still it served pages to visitors swiftly thanks to a lot of optimizations. This is how you can prevent heavy traffic from killing your server.
In Ubuntu Feisty I've been using compiz-fusion from Treviño’s Ubuntu Repository in combination with a nVidia driver provided by Envy like in this how-to. Running those cutting edge Feisty versions allowed me to have all the nice features that were being developed and lose some bugs that persisted in stable versions, like black windows & strange borders.
But two months ago I upgraded to Gutsy and you will be happy to know that Ubuntu Gutsy has got every awesome feature & bugfix in it's own standard software. So there's no ...
Licensing
Since the project is really kicking off and we're almost at 100 ported functions, I thought it was probably time to think about licensing. So I did a little bit of research, and I think the MIT license might be what we're looking for.
Everyone knows that RAM is so much faster than a hard disk. To illustrate, while a current SATA disk has peak transfer rates of 375 MB/s, current RAM can do a mind blowing 12,500 MB/s! Normally only the system itself makes use of this ultra fast storage, but we can also access this space directly. And that opens a great window of opportunity.
IDs are often numbers. Unfortunately there are only 10 digits to work with,
so if you have a lot of records, IDs tend to get very lengthy. For
computers that's OK. But human beings like their IDs as short as possible.
So how can we make IDs shorter? Well, we could borrow characters from
the alphabet as have them pose as additional numbers....
Alphabet to the rescue!
This is a Javascript version of the PHP function: strpos.
If you are in IT professionally (coding or sysadmin) you will be staring at monospaced fonts for many many hours a day. So it's probably justified to spend 2 minutes picking a very good one. It can make your work (typing ; ) just a little bit more pleasing.
The core of our new project runs on Node.js. With Node you can write
very fast JavaScript programs serverside. It's pretty easy to install Node,
code your program, and run it. But how do you make it run nicely in the
background like a true server?
Readable URLs are nice. A well made website will have a logical layout, with
intelligent folder and file names, and as few technical details as possible.
In the most well designed sites, readers can guess at filenames with a high
level of success. Clean URLs are great because they.
This is a Javascript version of the PHP function: md5.
Sometimes MySQL needs to work hard. I've been working on an import script that fires a lot of INSERTs. Normally our database server handles 1,000 inserts / sec. That wasn't enough. So I went looking for methods to improve the speed of MySQL inserts and was finally able to increase this number to 28,000 inserts per second. Checkout my late night benchmarking adventures.
I recently bought a NAS so my data is safe & available, with the benefit of being low
power / noise / heat.
I've considered Netgear, QNAP, but decided to go for a Synology
as it was affordable, still had a big community, decent reviews & Time Machine support.
Recently I've seen a lot of screencasts in the Planet Ubuntu RSS feed. A screencast is an embeded flash video of your desktop, often used in tutorials instead of screenshots. I wondered if I could make these online flash videos myself; turns out, it's pretty easy! So in this article I will cover how to install the video capturing tool, how to use it, how to convert the video to a flash video (flv) file, and finally how to embed a flash player in your site just like YouTube. Create your own screencasts in 5 easy steps!
Every time a request hits your server, PHP has to do a lot of processing, all of your code has to be compiled & executed for every single visit. Even though the outcome of all this processing is often identical for both visitor 21600 and 21601. So why not save the flat HTML generated for visitor 21600, and serve that to 21601 as well? This will relieve resources of your web server and database server because less PHP often means less queries.
Let's say you want your local restricted users to be able to restart specific services. On linux you'd probably type visudo. In Windows I found, you have to dig a little deeper into the system and really do your research. I needed several sites, programs and articles. So I thought it might be useful to others if I'd bundle all the required information in one place. Here it is.
This is a Javascript version of the PHP function: urlencode.
The stable version of the newest Ubuntu version Gutsy Gibbon will be released in October 2007. I could not wait that long however. And since the third alpha of Ubuntu 7.10 was recently released, I figured let's give it a shot. Testing alpha releases (especially from Ubuntu ) is like looking into the crystal ball of technology. This is how I upgraded and got compiz working again.
Sometimes when digging real deep into Windows like I recently had to, you need to have the Windows SID (Security Identifier) of a local user. I wasn't able to find any standard way of obtaining this info, so I wrote this little VBScript. Might help some people, might not. Putting this online anyway ;)
This is a Javascript version of the PHP function: htmlentities.
If you're running Squid to cache your website, you can use an htaccess file to control what kind of files should be cached, and for how long.
I had some difficulties playing Flash videos lately. Problems ranged from
lagging sound, to ugliness, to idling black screens, to strange gray Play
buttons that didn't do anything. The following solved my Flash issues on
Ubuntu.
It's always a good idea to backup important data. Your files and settings can easily be archived. But how can you backup & restore all applications that you've installed over the last couple of years? Here's an easy trick that works for both desktops & servers, and that can also be used to synchronize installed packages in a web cluster, making all the servers run the same software.
Let's say your site is becoming a big success and as a result it's becoming slower and slower. There are several things you do without buying additional hardware.
The Synology ships with a Download Station but it's not remotely as
advanced as SABnzbd. What I mostly miss is automatic
par & unpacking of it's downloads. Here's how to fix that.
Making sure your system is up to date is a key attribute to it's security. Furthermore Ubuntu releases updates pretty often and you probably don't want to miss out on added stability and features. You could run updated manually, but why not schedule the updates in the background to make sure you are always running the latest stable versions, without ever having to worry about it.
This is a Javascript version of the PHP function: in_array.
Don't know Redis? Think Memcache, with support for
for lists, and disk-based storage.
You can use Redis as a database, queue, cache server or all of those combined.
Let's see how you can use this power in your PHP apps.
Writing code requires two important things: creativity & discipline. The creativity to create the unknown, unexplored, exciting parts of software. And the discipline to create the dull & all-too-well-known parts of software / documentation.
You may come up with new ways (or use frameworks) to reduce repetitive work. Effectively beating discipline with creativity. But boring stuff will still always be there in some form. And on days when creativity is low, you may need to tap into that jar of discipline so you can still be productive, by doing things you never feel like.
But every now & then, there is a day when both ...
This is a Javascript version of the PHP function: intval.
PHP 5.3 is a big leap forward for PHP and brings of a lot of neat features.
However, big leaps can also mean big changes and potentially big breakage when
it comes to backwards compatibiltiy.
Or: How to convert multipage TIFF to PDF in PHP.
Let's say you have a fax with multiple pages that has been stored as a TIFF and you want to convert it to PDF using PHP for digital document flow. In this article I will show you a tiff2pdf function for PHP, because it cannot be done directly with ImageMagick.
This is a Javascript version of the PHP function: serialize.
I tried to do some Image Magick with PHP recently on an Ubuntu Feisty machine, and even though I had the required package: 'php5-imagick' installed, and I updated my php.ini with imagick.so, I kept getting the error Class 'Imagick' not found. This is how I eventually fixed it.
This is a Javascript version of the PHP function: isset.
With SSH you can securely login to any Linux server and execute commands
remotely. You can even use SSH to transfer and synchronize files from one
server to another. Automating these tasks can make your life easier, but
normally SSH prevents that because it requires you to login every time. Well,
not anymore, in this article I will show you how to connect to SSH without a
password.
Thanks to a lot of extra effort by Michael White (http://crestidg.com) there now is a namespaced version of PHP.JS available for your coding pleasure.
This is a Javascript version of the PHP function: strstr.
This is a Javascript version of the PHP function: str_replace.
Deleting a file or reformatting a disk does not destroy your sensitive data. The data can easily be undeleted. That's a good thing if you accidentally throw something away, but what if your trying to destroy financial data, bank account passwords, or classified company information. What if you want to clean your computer before selling it for instance?
This is a Javascript version of the PHP function: strlen.
If you store application data in memcache, you may want to invalidate it once you deploy a new version to avoid corruption or weird results. There are several ways to do this but I recently tried one using nothing but BASH, and I like it.
Ever wanted to change the crontab of a server, but got an editor on screen that you're totally unfamiliar with? There are a lot of causes for this annoyance, but one is that somebody recently installed or used midnight commander (mc) which for whatever reason seams to overrule your session's default editor.
I used to use Dean Edwards Javascript Packer a lot to compress my Javascript sources. Libraries of 100kB could easily shrink to 30kB and that saves load times & bandwidth. A good writeup by Julien Lecompte made me realize that there were better ways.
This is a Javascript version of the PHP function: urldecode.
This is a Javascript version of the PHP function: include.
This is a Javascript version of the PHP function: addslashes.
This is a Javascript version of the PHP function: strrpos.
This is a Javascript version of the PHP function: abs.
Good testing will result in better code. If you have to wait endlessly for on SVN commits, uploads or compile steps, you will simply produce less inventive code. This has to do with: patience, creativity flow, will, and of course time. Constantly being interrupted breaks concentration. If there's one thing I've really learned, it's invest in a good testing environment. Rapid review of code results will pay off (I promise).
So it's OK to spend some time on learning a good IDE, and another trick to improve the speed & quality of development, is to virtualize your production platform ...
If you want to set up Ruby on Rails on Ubuntu Lucid from scratch, there are
quite
some
articles
online to choose from. I found most of them involve compiling,
only highlight 1 aspect, or are a bit outdated.
On top of that, getting it right can be hard as there are a number of
issues related to
Ruby and Debian/Ubuntu.
This is an attempt to put all the sweet info in 1 place.
This is a Javascript version of the PHP function: explode.
This is a Javascript version of the PHP function: is_array.
This is a Javascript version of the PHP function: number_format.
I still got sites running Apache, but all new projects are launched with
Nginx. I don't need many of the features that Apache offers, and the speed
gain of Nginx is just tremendous. Once you've experienced it, I doubt you'll
want to go back.
This is a Javascript version of the PHP function: mktime.
This is a Javascript version of the PHP function: nl2br.
Running compiz-fusion for some time, one thing started to annoy me. Snapping windows. The first thing I obviously looked for was the Snapping Windows Plugin. But that was already disabled.
I'm blogging the setting that controls this behavior because it took me some time to find it, I think other people may find it contra productive as well.
I recently had to install a couple of squid servers to act as reverse proxies for a webcluster. You can teach the squid server to stand in between in the end users and the webservers, and to store all the static content ( .jpg .flv .css .htm for example ) in the RAM. This saves a lot of I/O and bandwidth on the webservers, and it can really speeds up a site. And the end of the road the webservers' load dropped with 92%. But before all this worked, I had to run through a massive config file and since the squid config file is their manual at the same time, it's about 5000 lines long. So I had to find out a way to filter only the important settings from the config file.
Recently I had to migrate all MySQL databases from one server to another. This was a one time only operation, so setting up replication wasn't an option. And restoring a backup on the new server involved more downtime than strictly necessary. I figured the most ideal way would be to dump the active MySQL directly into the new MySQL instance. And that's what I did.
This is a Javascript version of the PHP function: strtolower.
This is a Javascript version of the PHP function: rand.
This is a Javascript version of the PHP function: utf8_encode.
This is a Javascript version of the PHP function: base64_decode.
This is a Javascript version of the PHP function: is_numeric.
If you're like me and you're interested in the stats of your website or blog, you might also want to know how many Diggs all of your articles have received. But that can become quite a pain when you have more and more articles, pages or blog posts. So why not let PHP retrieve the Digg count of your articles so you can use it in graphs or other statistic tools?
At our company we have a lot of uses for a solid API. We can use it to
distribute config files, have servers report in, let customers edit DNS
records using their own interface, etc.
This is a Javascript version of the PHP function: htmlspecialchars.
Hello good people. Our little project is going strong and thanks to Felix Geisendörfer there are a couple of new developments that I want to share with you. I'll limit this article to SVN though.
Some time ago I was in the situation where I was looking at 200 MyISAM tables
screaming to get converted to InnoDB for performance reasons.
You probably know that MyISAM is better at fulltext searches and such,
but what I needed was this database stop locking entire tables when I was
just doing row-level interactions. Here's how I did in one go.
This is a Javascript version of the PHP function: wordwrap.
With all the abstraction layers between code & database, and now with my recent CakePHP adventures: The need for writing SQL statements deminishes. But over the years I've developed my own way of formatting them. And before I'll have to wave queries goodbye forever ;) I just want to put it out there.
This is a Javascript version of the PHP function: echo.
A couple of years ago when everyone still had giant CRT monitors, resolutions of 1600x1200 were pretty common. Nowadays however 19" TFT monitors often cannot scale higher than 1280x1024. So how can we still fit more on one screen? DPI can help!
This is a Javascript version of the PHP function: file_get_contents.
This is a Javascript version of the PHP function: empty.
This is a Javascript version of the PHP function: print_r.
This is a Javascript version of the PHP function: date.
This is a Javascript version of the PHP function: basename.
At transloadit we use
HAProxy "The Reliable, High Performance TCP/HTTP Load Balancer"
so that we can offer different services on 1 port.
For instance, depending on the hostname, a requests to port 80 can be routed to either
nodejs (in case of api.transloadit.com), or
nginx (in case of www.transloadit.com).
HAProxy has been good to us and setting it up was a breeze. But getting HAProxy to log on
Ubuntu Lucid was harder than I thought.
All of the tutorials I found either didn't cover logging, or had deprecated information on it.
Google suddenly stopped being my friend.
This is a Javascript version of the PHP function: implode.
Hi. Have you met KvzHTML? It's a standalone PHP Class for generating HTML. It's been hiding deep inside the caverns of my secret GitHub repo: kvzlib - a collection of code snippets too small or unfinished to deserve their own repository. But I find working with this class so pleasant, I thought I'd share the fun.
When you're debugging a tough problem you sometimes need to analyze the
HTTP traffic flowing between your machine and a webserver or proxy.
Sometimes you can use firebug or chrome inspector for that. But here's a
lowlevel alternative that I'm pretty excited about. Meet Tshark.
This is a Javascript version of the PHP function: trim.
This is a Javascript version of the PHP function: base64_decode.
I ran accross php value, php flag, php admin value and php admin flag in a couple of .htaccess files, and I've used them sometimes as well by just pasting an example, but I've never really understood why there was such a great diversity. Couldn't php_setting X Y just handle it, and if not, what do the admin, value and flag attributes mean?
This is a Javascript version of the PHP function: html_entity_decode.
This is a Javascript version of the PHP function: stripslashes.
This is a Javascript version of the PHP function: substr.
"Simplicity is prerequisite for reliability." - Edsger W. Dijkstra.
As our experience grows, we learn from past mistakes and discover what's truely important in reliable systems.
When designing systems, simplicity is an often heard mantra, but it isn't getting applied nearly as much as spoken off. I'm guilty of this too. I think it's mainly because engineers love to, well, engineer : ) and will naturally try to outsmart problems by throwing more tech at it.
This is a Javascript version of the PHP function: utf8_decode.
This is a Javascript version of the PHP function: ucfirst.
This is a Javascript version of the PHP function: strripos.
This is a Javascript version of the PHP function: strcmp.
Last friday, PHP announced the end of life of version 4 of their popuplair scripting language.
Working with trees
When working with tree data structures you often need to craft them in different ways. PHP offers a lot of functions to change the shape of arrays, but often they only go 1 level deep. Trees can count an almost infinite number of levels. Hence we need recursive replacements for our beloved array & string functions.
This is a Javascript version of the PHP function: ord.
This is a Javascript version of the PHP function: strip_tags.
This is a Javascript version of the PHP function: strtoupper.
This is a Javascript version of the PHP function: sprintf.
Following Alan Pope and Christer Edwards, I too felt the need to log everything I that I setup right after an Ubuntu Desktop install. It ranges from customizing the user interface to setting up a programmers IDE. It's mainly for future reference by myself, but may bring you on a couple of ideas as well.
Recently I needed ogg123 on an Ubuntu server to convert some media. Naturally, I wanted to use aptitude to install it, but I didn't know what package it was in. Now, you can always google of course, but you can also use system commands to find the package you need.
This is a Javascript version of the PHP function: count.
This is a Javascript version of the PHP function: unserialize.
This is a Javascript version of the PHP function: printf.
I scourged the web today looking for the very best (and free) tips on increasing a site's PageRank, and I figure it basically comes down to these simple tips.
Working with trees
When working with tree data structures you often need to craft them in different ways. PHP offers a lot of functions to change the shape of arrays, but often they only go 1 level deep. Trees can count an almost infinite number of levels. Hence we need recursive replacements for our beloved array functions.
One error that has bugged my Eclipse PDT for a long time, was org.eclipse.emf.ecore.util.EcoreEMap $DelegateEObjectContainmentEList. A vague error, not much to go on, not many hits on google either. Turned out it had to do with the version of my Java Runtime Environment I was using.
This is a Javascript version of the PHP function: setcookie.
This is a Javascript version of the PHP function: sizeof.
This is a Javascript version of the PHP function: require.
This is a Javascript version of the PHP function: chr.
You want your website to be as safe as possible. So you'll typically want Open Basedir and Safe Mode to be on. When you're in a shared hosting environment, you'll find that any server administrator with a good sense of security will also have these restrictions in place. However security pretty much always limits functionality and this case is no different. Because what if you are caged in a restricted environment, and you would still like to use shared libraries like the ones provided by PEAR?
I've been programming a lot with Quanta which is a leightweight kdevelop based IDE. It did the trick for quite some time, but recent developments in my coding life like SVN brought me on a Quest for my new ultimate PHP IDE.
This is a Javascript version of the PHP function: get_html_translation_table.
Looking back at a great CakeFest in Berlin, I learned a lot about CakePHP and met many nice and inspiring people. Here are some conference notes I took that where particularly useful or new to me.
This is a Javascript version of the PHP function: ucwords.
If you want to do command-line MySQL administration like restoring databases
or dumping statistics, you need the root account and it's password. Or do you?
In another article I've told you about how I would like to see one rule removed from the PEAR Coding Standards. This rule would allow developers a bit more flexibility, while staying true to the convention.
This is a Javascript version of the PHP function: stristr.
According to Mark Shuttleworth, founder of the Linux distribution Ubuntu, Dell is pleased with the demand for Ubuntu computers. The company has been distributing computers with Ubuntu since May this year and is planning to expand the Linux offerings.
This is a Javascript version of the PHP function: sha1.
As a Vim newbie, I'd like my Vim plugins & configuration
to stay in sync between machines at home, office, my servers & a laptop.
If found that a (free)
Dropbox
account works like a charm.
This is a Javascript version of the PHP function: array_push.
Recently I've been experimenting with Virtual machines for my development environment. The goal was to create a Virtual Machine that resembles our main production server, and have that Virtual Machine mount my workspace project directory as it's DocumenRoot. This way, my code could be served & tested after every save in my IDE. So no more building / committing delays. And all I could mess up was a Virtual Machine.
I didn't know what software to start with and just tried the bunch. Here's my ever so subjective comparison 'chart' on Virtual Machine software.
Hi folks. As you may or may not know, I have a love/hate relationship with my IDE: Eclipse PDT. For times and times we get along well. But once every while it gets messed up, and it's a pain to straighten it out again. Or at least, it was.
So I've been learning CakePHP the last few days. Bit by bit I've been trying to port a lecagy admininistration app to Cake. 'Secretly' linking menuitems to finished Cake parts as we go. And I must say: I'm pretty excited. I did run into a disturbing conclusion though. I estimated the legacy app will have over 300 Models & Controllers once finished. That could easily add up to (300 x 4 =) 1200 views. And here I am, creating a maintenance hell while trying to solve one!
This is a Javascript version of the PHP function: array_search.
This is a Javascript version of the PHP function: defined.
If you've written a PEAR package, it's probably a good idea to submit some end user documentation. Here's how to do it.
This is a Javascript version of the PHP function: is_int.
When migrating projects over to GitHub, I found there were still some
passwords inside my SVN repositories. Obviously it's not good practice to
store your passwords in a code repository - let alone at a remote location, so
I wanted to replace all passwords. Not only in the current version, but in all
commits that have been made over the past 3 years. Luckily with Git - you can.
This is a Javascript version of the PHP function: is_object.
This is a Javascript version of the PHP function: split.
This is a Javascript version of the PHP function: round.
This is a Javascript version of the PHP function: str_pad.
This is a Javascript version of the PHP function: htmlspecialchars_decode.
In an attempt to familiarize myself with the unfamiliar, I decided to build
a fun side-project in Ruby and Vim.
Effectively learning a new language, framework, and editor.
Coming from Nano, Quanta,
Eclipse PDT,
TextMate,
Netbeans; I found (Mac/g)Vim is big a step, and
first two weeks you should not expect to be productive.
When you've written an article that benefits other surfers, you want them to know, right? One way to go about this is to publish your article at Digg. Making it to their FrontPage would be totally awesome. Good content is the main thing there, but there are some other tips that can help you. I did quite a bit of research - so you don't have to - and this is my top 5.
Today I've moved all of my SVN repositories over to GitHub. 5 private reps and 4 public ones. Two of which you may know: PHP.JS and System_Daemon.
This is a Javascript version of the PHP function: function_exists.
.svg/200px-Coat_of_Arms_of_Switzerland_(Pantone).svg.png)
When I started this techblog in 2007 and got my first 500 visitors, I was in
the clouds. If you told me then I'd hit the 5,000,000 visitor milestone 3 years later,
I would have probably slapped some sense into you.
Not in my wildest dreams did I imagine my little side-project would take off like this.
Yet here we are.
To celebrate I wanted to give a prize to the exact 5th milion visitor, but all I know
is that he/she is from Swit...
This is a Javascript version of the PHP function: array.
Since a couple of months now, I've been involved with PEAR as a contributor. Contributing to PEAR means adhering to the PEAR Coding Standards. Their standards have actually been thought over, and using them for projects (also outside of PEAR), leads to consistency, and makes it easier for many developers to understand each other's code.
Code can be scanned and checked for conformity using the PHP CodeSniffer package.
It took me a while to get rid of my old cod...
This is a Javascript version of the PHP function: include_once.
This is a Javascript version of the PHP function: array_key_exists.
This is a Javascript version of the PHP function: sleep.
Here the notes I took during the Dutch PHP conference 2010 (#dpc10). They're not a representative
summary of the event's highlights cause I could only attend 1 of 4 talks at any given time.
I also filtered out things that didn't interest me personally.
This is a Javascript version of the PHP function: checkdate.
This is a Javascript version of the PHP function: is_null.
This is a Javascript version of the PHP function: is_string.
This is a Javascript version of the PHP function: str_split.
Today we are very happy to announce the commercial availability of
transloadit.com.
This is a Javascript version of the PHP function: require_once.
This is a Javascript version of the PHP function: array_unique.
This is a Javascript version of the PHP function: array_keys.
Sorry folks, this article was based on flawed benchmark results, I will soon post an update!
This is a Javascript version of the PHP function: stripos.
This article in 50 words: I used to prefer spaces vs tabs, now I don't care so much, think it's
more important that you can easily switch on a per-project basis. Have some thoughts on how conventions
should be established, and I'll demonstrate bash code that can convert your codebase to a new standard.
This is a Javascript version of the PHP function: ltrim.
This is a Javascript version of the PHP function: time.
Pictures say more than a thousand words. This is true for your data as well. With Google Chart you can now easily generate charts of your data. No expertise required. Just make sure you format your data correctly, add it to the Google Chart URL, and it will return a nice graph.
This is a Javascript version of the PHP function: crc32.
This is a Javascript version of the PHP function: shuffle.
This is a Javascript version of the PHP function: substr_count.
This is a Javascript version of the PHP function: floatval.
This is a Javascript version of the PHP function: file.
This is a Javascript version of the PHP function: dirname.
This is a Javascript version of the PHP function: strtr.
This is a Javascript version of the PHP function: array_pop.
This is a Javascript version of the PHP function: end.
This is a Javascript version of the PHP function: array_diff.
This is a Javascript version of the PHP function: rtrim.
This is a Javascript version of the PHP function: soundex.
Hello everyone. Two days ago Feedburner offered me to merge my account with Google. I thought: why not. But apparently now the URL of my feeds changed. This messed up my stats, and your RSS reader has marked all of my posts as unread. I'm very sorry for the inconvenience.
This is a Javascript version of the PHP function: var_export.
This is a Javascript version of the PHP function: str_ireplace.
This is a Javascript version of the PHP function: strchr.
Hi there. I'm making use of RSS feeds more than I did before. This has to do with Google Reader - which is very neat - and a lack of time. Having sites keep ME up to date, is way more relaxed than scouring the web myself. So I figured I might want to return the favor and make my blog a bit more accessible by introducing two new feeds.
This is a Javascript version of the PHP function: array_shift.
This is a Javascript version of the PHP function: levenshtein.
This is a Javascript version of the PHP function: compact.
This is a Javascript version of the PHP function: http_build_query.
This is a Javascript version of the PHP function: preg_quote.
This is a Javascript version of the PHP function: str_repeat.
This is a Javascript version of the PHP function: array_chunk.
This is a Javascript version of the PHP function: range.
This is a Javascript version of the PHP function: array_count_values.
This is a Javascript version of the PHP function: bin2hex.
This is a Javascript version of the PHP function: str_rot13.
This is a Javascript version of the PHP function: parse_str.
This is a Javascript version of the PHP function: array_rand.
This is a Javascript version of the PHP function: sha1_file.
This is a Javascript version of the PHP function: md5_file.
This is a Javascript version of the PHP function: array_diff_key.
This is a Javascript version of the PHP function: array_flip.
This is a Javascript version of the PHP function: ip2long.
This is a Javascript version of the PHP function: sort.
This is a Javascript version of the PHP function: array_reverse.
This is a Javascript version of the PHP function: call_user_func_array.
This is a Javascript version of the PHP function: array_fill.
This is a Javascript version of the PHP function: array_sum.
This is a Javascript version of the PHP function: array_combine.
This is a Javascript version of the PHP function: reset.
This is a Javascript version of the PHP function: long2ip.
This is a Javascript version of the PHP function: array_map.
This is a Javascript version of the PHP function: create_function.
This is a Javascript version of the PHP function: ksort.
This is a Javascript version of the PHP function: count_chars.
This is a Javascript version of the PHP function: strcasecmp.
This is a Javascript version of the PHP function: microtime.
This is a Javascript version of the PHP function: exit.
This is a Javascript version of the PHP function: array_values.
This is a Javascript version of the PHP function: get_class.
This is a Javascript version of the PHP function: join.
This is a Javascript version of the PHP function: array_unshift.
This is a Javascript version of the PHP function: strrev.
This is a Javascript version of the PHP function: array_change_key_case.
This is a Javascript version of the PHP function: array_diff_assoc.
This is a Javascript version of the PHP function: get_included_files.
This is a Javascript version of the PHP function: die.
This is a Javascript version of the PHP function: array_product.
This is a Javascript version of the PHP function: ceil.
This is a Javascript version of the PHP function: mt_rand.
This is a Javascript version of the PHP function: array_reduce.
This is a Javascript version of the PHP function: strpbrk.
This is a Javascript version of the PHP function: floor.
This is a Javascript version of the PHP function: acosh.
This is a Javascript version of the PHP function: array_walk.
This is a Javascript version of the PHP function: array_pad.
This is a Javascript version of the PHP function: strnatcmp.
This is a Javascript version of the PHP function: acos.
This is a Javascript version of the PHP function: rsort.
This is a Javascript version of the PHP function: min.
This is a Javascript version of the PHP function: dechex.
This is a Javascript version of the PHP function: array_walk_recursive.
This is a Javascript version of the PHP function: fmod.
This is a Javascript version of the PHP function: max.
This is a Javascript version of the PHP function: log10.
This is a Javascript version of the PHP function: krsort.
This is a Javascript version of the PHP function: is_nan.
This is a Javascript version of the PHP function: deg2rad.
This is a Javascript version of the PHP function: strncasecmp.
This is a Javascript version of the PHP function: hexdec.
This is a Javascript version of the PHP function: pi.
This is a Javascript version of the PHP function: rad2deg.
This is a Javascript version of the PHP function: is_bool.
This is a Javascript version of the PHP function: decbin.
This is a Javascript version of the PHP function: tanh.
This is a Javascript version of the PHP function: gettype.
This is a Javascript version of the PHP function: pow.
This is a Javascript version of the PHP function: log.
This is a Javascript version of the PHP function: cos.
This is a Javascript version of the PHP function: sqrt.
This is a Javascript version of the PHP function: exp.
This is a Javascript version of the PHP function: asin.
This is a Javascript version of the PHP function: atan.
This is a Javascript version of the PHP function: asinh.
This is a Javascript version of the PHP function: base_convert.
This is a Javascript version of the PHP function: sinh.
This is a Javascript version of the PHP function: sin.
This is a Javascript version of the PHP function: decoct.
This is a Javascript version of the PHP function: atanh.
This is a Javascript version of the PHP function: cosh.
This is a Javascript version of the PHP function: tan.
This is a Javascript version of the PHP function: mt_getrandmax.
This is a Javascript version of the PHP function: getrandmax.
This is a Javascript version of the PHP function: octdec.
This is a Javascript version of the PHP function: strtotime.
This is a Javascript version of the PHP function: bindec.
This is a Javascript version of the PHP function: hypot.
This is a Javascript version of the PHP function: lcg_value.
This is a Javascript version of the PHP function: is_infinite.
This is a Javascript version of the PHP function: is_finite.
This is a Javascript version of the PHP function: json_encode.
This is a Javascript version of the PHP function: rawurlencode.
This is a Javascript version of the PHP function: define.
This is a Javascript version of the PHP function: filesize.
This is a Javascript version of the PHP function: array_merge.
This is a Javascript version of the PHP function: file_exists.
This is a Javascript version of the PHP function: fopen.
This is a Javascript version of the PHP function: json_decode.
This is a Javascript version of the PHP function: rawurldecode.
This is a Javascript version of the PHP function: getdate.
This is a Javascript version of the PHP function: strval.
This is a Javascript version of the PHP function: readfile.
This is a Javascript version of the PHP function: chop.
This is a Javascript version of the PHP function: call_user_func.
This is a Javascript version of the PHP function: strtok.
This is a Javascript version of the PHP function: strrchr.
This is a Javascript version of the PHP function: var_dump.
This is a Javascript version of the PHP function: each.
This is a Javascript version of the PHP function: chunk_split.
This is a Javascript version of the PHP function: asort.
This is a Javascript version of the PHP function: usleep.
This is a Javascript version of the PHP function: strncmp.
This is a Javascript version of the PHP function: array_slice.
This is a Javascript version of the PHP function: is_integer.
This is a Javascript version of the PHP function: constant.
This is a Javascript version of the PHP function: pos.
This is a Javascript version of the PHP function: get_headers.
This is a Javascript version of the PHP function: parse_url.
This is a Javascript version of the PHP function: setlocale.
This is a Javascript version of the PHP function: is_float.
This is a Javascript version of the PHP function: pathinfo.
This is a Javascript version of the PHP function: array_filter.
This is a Javascript version of the PHP function: arsort.
This is a Javascript version of the PHP function: usort.
This is a Javascript version of the PHP function: settype.
This is a Javascript version of the PHP function: extract.
This is a Javascript version of the PHP function: array_splice.
This is a Javascript version of the PHP function: vsprintf.
This is a Javascript version of the PHP function: setrawcookie.
This is a Javascript version of the PHP function: func_get_args.
This is a Javascript version of the PHP function: method_exists.
This is a Javascript version of the PHP function: getenv.
This is a Javascript version of the PHP function: strspn.
This is a Javascript version of the PHP function: array_intersect.
This is a Javascript version of the PHP function: quotemeta.
This is a Javascript version of the PHP function: array_fill_keys.
This is a Javascript version of the PHP function: strftime.
This is a Javascript version of the PHP function: get_defined_functions.
This is a Javascript version of the PHP function: prev.
This is a Javascript version of the PHP function: class_exists.
This is a Javascript version of the PHP function: array_udiff.
This is a Javascript version of the PHP function: array_merge_recursive.
This is a Javascript version of the PHP function: get_meta_tags.
This is a Javascript version of the PHP function: vprintf.
This is a Javascript version of the PHP function: func_num_args.
This is a Javascript version of the PHP function: str_shuffle.
This is a Javascript version of the PHP function: natsort.
This is a Javascript version of the PHP function: gmdate.
This is a Javascript version of the PHP function: get_defined_vars.
This is a Javascript version of the PHP function: is_callable.
This is a Javascript version of the PHP function: import_request_variables.
This is a Javascript version of the PHP function: time_sleep_until.
This is a Javascript version of the PHP function: key.
This is a Javascript version of the PHP function: next.
This is a Javascript version of the PHP function: is_double.
This is a Javascript version of the PHP function: natcasesort.
This is a Javascript version of the PHP function: func_get_arg.
This is a Javascript version of the PHP function: current.
This is a Javascript version of the PHP function: lcfirst.
This is a Javascript version of the PHP function: property_exists.
This is a Javascript version of the PHP function: substr_replace.
This is a Javascript version of the PHP function: array_intersect_uassoc.
This is a Javascript version of the PHP function: is_scalar.
This is a Javascript version of the PHP function: strcspn.
This is a Javascript version of the PHP function: array_diff_ukey.
This is a Javascript version of the PHP function: array_diff_uassoc.
This is a Javascript version of the PHP function: date_default_timezone_set.
This is a Javascript version of the PHP function: array_uintersect_uassoc.
This is a Javascript version of the PHP function: uasort.
This is a Javascript version of the PHP function: array_udiff_uassoc.
This is a Javascript version of the PHP function: localtime.
This is a Javascript version of the PHP function: array_uintersect_assoc.
This is a Javascript version of the PHP function: strnatcasecmp.
This is a Javascript version of the PHP function: get_object_vars.
This is a Javascript version of the PHP function: timezone_abbreviations_list.
This is a Javascript version of the PHP function: array_intersect_ukey.
This is a Javascript version of the PHP function: array_intersect_assoc.
This is a Javascript version of the PHP function: get_class_methods.
This is a Javascript version of the PHP function: is_long.
This is a Javascript version of the PHP function: array_uintersect.
This is a Javascript version of the PHP function: putenv.
This is a Javascript version of the PHP function: array_intersect_key.
This is a Javascript version of the PHP function: array_udiff_assoc.
This is a Javascript version of the PHP function: php_strip_whitespace.
This is a Javascript version of the PHP function: get_class_vars.
This is a Javascript version of the PHP function: time_nanosleep.
This is a Javascript version of the PHP function: uniqid.
This is a Javascript version of the PHP function: uksort.
This is a Javascript version of the PHP function: date_default_timezone_get.
This is a Javascript version of the PHP function: is_real.
This is a Javascript version of the PHP function: fread.
This is a Javascript version of the PHP function: timezone_identifiers_list.
This is a Javascript version of the PHP function: doubleval.
This is a Javascript version of the PHP function: get_declared_classes.
This is a Javascript version of the PHP function: fgets.
This is a Javascript version of the PHP function: aggregate.
This is a Javascript version of the PHP function: fgetcsv.
This is a Javascript version of the PHP function: register_shutdown_function.
This is a Javascript version of the PHP function: runkit_method_add.
This is a Javascript version of the PHP function: runkit_function_add.
This is a Javascript version of the PHP function: classkit_method_add.
This is a Javascript version of the PHP function: filemtime.
This is a Javascript version of the PHP function: gmmktime.
This is a Javascript version of the PHP function: is_unicode.
This is a Javascript version of the PHP function: ctype_digit.
This is a Javascript version of the PHP function: popen.
This is a Javascript version of the PHP function: fclose.
This is a Javascript version of the PHP function: realpath.
This is a Javascript version of the PHP function: date_parse.
This is a Javascript version of the PHP function: set_time_limit.
This is a Javascript version of the PHP function: runkit_function_remove.
This is a Javascript version of the PHP function: preg_grep.
This is a Javascript version of the PHP function: str_getcsv.
This is a Javascript version of the PHP function: str_word_count.
This is a Javascript version of the PHP function: is_binary.
This is a Javascript version of the PHP function: convert_uuencode.
This is a Javascript version of the PHP function: php_ini_loaded_file.
This is a Javascript version of the PHP function: aggregate_methods_by_list.
This is a Javascript version of the PHP function: array_multisort.
This is a Javascript version of the PHP function: quoted_printable_encode.
This is a Javascript version of the PHP function: ini_set.
This is a Javascript version of the PHP function: assert.
This is a Javascript version of the PHP function: expm1.
This is a Javascript version of the PHP function: get_required_files.
This is a Javascript version of the PHP function: aggregate_info.
This is a Javascript version of the PHP function: aggregate_properties.
This is a Javascript version of the PHP function: fpassthru.
This is a Javascript version of the PHP function: fseek.
This is a Javascript version of the PHP function: phpversion.
This is a Javascript version of the PHP function: aggregate_methods_by_regexp.
This is a Javascript version of the PHP function: get_resource_type.
This is a Javascript version of the PHP function: ftell.
This is a Javascript version of the PHP function: substr_compare.
This is a Javascript version of the PHP function: quoted_printable_decode.
This is a Javascript version of the PHP function: runkit_class_adopt.
This is a Javascript version of the PHP function: assert_options.
This is a Javascript version of the PHP function: ctype_alnum.
This is a Javascript version of the PHP function: getlastmod.
This is a Javascript version of the PHP function: set_exception_handler.
This is a Javascript version of the PHP function: php_ini_scanned_files.
This is a Javascript version of the PHP function: sql_regcase.
This is a Javascript version of the PHP function: get_cfg_var.
This is a Javascript version of the PHP function: aggregate_properties_by_regexp.
This is a Javascript version of the PHP function: runkit_superglobals.
This is a Javascript version of the PHP function: strcoll.
This is a Javascript version of the PHP function: fgetc.
This is a Javascript version of the PHP function: aggregate_methods.
This is a Javascript version of the PHP function: runkit_function_redefine.
This is a Javascript version of the PHP function: is_resource.
This is a Javascript version of the PHP function: aggregation_info.
This is a Javascript version of the PHP function: is_buffer.
This is a Javascript version of the PHP function: fgetss.
This is a Javascript version of the PHP function: ini_get.
This is a Javascript version of the PHP function: ctype_graph.
This is a Javascript version of the PHP function: rewind.
This is a Javascript version of the PHP function: aggregate_properties_by_list.
This is a Javascript version of the PHP function: feof.
This is a Javascript version of the PHP function: get_defined_constants.
This is a Javascript version of the PHP function: nl_langinfo.
This is a Javascript version of the PHP function: gettimeofday.
This is a Javascript version of the PHP function: gmstrftime.
This is a Javascript version of the PHP function: deaggregate.
This is a Javascript version of the PHP function: runkit_method_redefine.
This is a Javascript version of the PHP function: localeconv.
This is a Javascript version of the PHP function: ctype_alpha.
This is a Javascript version of the PHP function: ctype_cntrl.
This is a Javascript version of the PHP function: ctype_lower.
This is a Javascript version of the PHP function: idate.
This is a Javascript version of the PHP function: classkit_method_remove.
This is a Javascript version of the PHP function: ctype_print.
This is a Javascript version of the PHP function: runkit_function_rename.
This is a Javascript version of the PHP function: ctype_space.
This is a Javascript version of the PHP function: ini_get_all.
This is a Javascript version of the PHP function: ini_restore.
This is a Javascript version of the PHP function: runkit_function_copy.
This is a Javascript version of the PHP function: runkit_method_remove.
This is a Javascript version of the PHP function: atan2.
This is a Javascript version of the PHP function: runkit_method_copy.
This is a Javascript version of the PHP function: gopher_parsedir.
This is a Javascript version of the PHP function: classkit_method_rename.
This is a Javascript version of the PHP function: ini_alter.
This is a Javascript version of the PHP function: log1p.
This is a Javascript version of the PHP function: runkit_method_rename.
This is a Javascript version of the PHP function: ctype_xdigit.
This is a Javascript version of the PHP function: ctype_punct.
This is a Javascript version of the PHP function: classkit_import.
This is a Javascript version of the PHP function: pclose.
This is a Javascript version of the PHP function: ctype_upper.
This is a Javascript version of the PHP function: runkit_class_emancipate.
This is a Javascript version of the PHP function: classkit_method_redefine.
This is a Javascript version of the PHP function: restore_exception_handler.
This is a Javascript version of the PHP function: runkit_import.
This is a Javascript version of the PHP function: classkit_method_copy.
This is a Javascript version of the PHP function: money_format.
This is a Javascript version of the PHP function: array_replace.
This is a Javascript version of the PHP function: array_replace_recursive.
This is a Javascript version of the PHP function: bcadd.
This is a Javascript version of the PHP function: bccomp.
This is a Javascript version of the PHP function: bcdiv.
This is a Javascript version of the PHP function: bcmul.
This is a Javascript version of the PHP function: bcround.
This is a Javascript version of the PHP function: bcscale.
This is a Javascript version of the PHP function: bcsub.
This is a Javascript version of the PHP function: class_alias.
This is a Javascript version of the PHP function: error_get_last.
This is a Javascript version of the PHP function: error_reporting.
This is a Javascript version of the PHP function: trigger_error.
This is a Javascript version of the PHP function: user_error.
This is a Javascript version of the PHP function: escapeshellarg.
This is a Javascript version of the PHP function: forward_static_call.
This is a Javascript version of the PHP function: forward_static_call_array.
This is a Javascript version of the PHP function: i18n_loc_get_default.
This is a Javascript version of the PHP function: i18n_loc_set_default.
This is a Javascript version of the PHP function: get_extension_funcs.
This is a Javascript version of the PHP function: get_include_path.
This is a Javascript version of the PHP function: restore_include_path.
This is a Javascript version of the PHP function: set_include_path.
This is a Javascript version of the PHP function: version_compare.
This is a Javascript version of the PHP function: stream_context_create.
This is a Javascript version of the PHP function: stream_context_get_default.
This is a Javascript version of the PHP function: stream_context_get_options.
This is a Javascript version of the PHP function: stream_context_get_params.
This is a Javascript version of the PHP function: stream_context_set_default.
This is a Javascript version of the PHP function: stream_context_set_option.
This is a Javascript version of the PHP function: stream_context_set_params.
This is a Javascript version of the PHP function: stream_get_contents.
This is a Javascript version of the PHP function: stream_get_line.
This is a Javascript version of the PHP function: stream_is_local.
This is a Javascript version of the PHP function: metaphone.