Hey, we got PHP 5.3! Hellooo? Leave those outdated operators behind and become a real G33K!
Sad lolling
Lint Roller? I Barely Know Her
wallacepolsom
occasionally subtle
Not today Justin

Janaina Medeiros
Misplaced Lens Cap

if i look back, i am lost
2025 on Tumblr: Trends That Defined the Year
noise dept.

sheepfilms

JBB: An Artblog!
art blog(derogatory)

Kiana Khansmith
Cosimo Galluzzi
Three Goblin Art

izzy's playlists!
Jules of Nature

Aqua Utopia|海の底で記憶を紡ぐ

seen from Malaysia
seen from Philippines
seen from United States

seen from United States
seen from Türkiye

seen from Türkiye
seen from United Kingdom

seen from Germany
seen from United States

seen from United States
seen from Morocco
seen from United States

seen from Brazil

seen from Switzerland
seen from Türkiye

seen from United States
seen from Türkiye
seen from Germany

seen from United Kingdom
seen from Azerbaijan
@arantaweek
Hey, we got PHP 5.3! Hellooo? Leave those outdated operators behind and become a real G33K!
Sad lolling

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Being a developer isn’t about writing code, it’s about producing working software while simultaneously hitting business goals and maintaining expectations.
Digital Artifacts (worth a citation more than a reblog!)
School
Me: So, hurry up, we got to go to school!
My 2yrs old son: No!
Me: ... don't you want to go to school?
Son: No!
Me: But it's full of children like you there, you have to take a toy of yours with you today... it's funny!
Son: No!
Me (watching outside the window, the rainy, gloomy sky): Do you want to stay at home?
Son (with a grudge): Home! Mom, daddy!
Me: Arturo, we can't stay at home. Once started you can't stop going to school...
I know I lied. And I can remember perfectly the feel that something was more important than institution, and that I could learn even without "going to school every single day". I feel he's right and I'm wrong. This is my first "honesty crisis" as a father. And it's not fair at all.
Here wonderfully explained the good code dilemma in every fucking project but personal ones. Period.
Haven’t you ever seen something on Facebook (or other sites where “like” is the only option) and thought, this is an incredibly important topic, but I don’t “like” it — I don’t like climate change, political corruption, sexism, racism, or homophobia.
Doesn’t the “culture of like” create a culture of silence around things that are difficult, unpleasant, or wrong?

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
My post yesterday has been viewed 362 times. Wow, I’m not expecting that. Most of visitors came from Reddit (thanks Reddit!) and twitter (great!). As a present to you all, I has made a simple example of how to use Lithium as a microframework.
I called it minium. It only contains four file: ...
Lithify It Like Sinatra
Lithium, the awesome php framework nearly released it’s 1.0 version. One of the awesomness of Lithium is it’s flexibility. It’s very flexible so you can use it as a Sinatra equivalent in PHP. Let’s take a look.
RESTful Routing
Lithium can do RESTful routing like this:
// GET request Router::connect("/create", array("http:method" => "GET"), function($request){ // Do something and return Response object } ); // POST request Router::connect("/create", array("http:method" => "POST"), function($request){ // Do something and return Response object } ); // PUT request Router::connect("/create", array("http:method" => "PUT"), function($request){ // Do something and return Response object } ); // DELETE request Router::connect("/create", array("http:method" => "DELETE"), function($request){ // Do something and return Response object } ); // Allow POST or PUT:: Router::connect("/update", array("http:method" => array("POST", "PUT")), function($request){ // Do something and return Response object } );
You can also use named parameters which accessible via $request.
Router::connect("/hello/{:name}", array("http:method" => "GET", "name" => null), function($request) { $name = $request->name ?: 'World'; return new Response(array('body' => "Hello {$name}!")); } );
Finally you can also use pattern:
Router::connect('/user/{:id:[0-9]+}', array("http:method" => "GET"), function($request) { $id = $request->id ?: 0; return new Response(array('body' => "Id: {$id}")); } );
Conditional Routing
In lithium, you can access all properties of request object. This allow you to do conditional routing (in fact, RESTful routing are conditional routing).
// Only match if on the dev server and GET request: Router::connect("/secret", array("http:method" => "GET", "http:host" => "dev.application.com"), function($request){ // Do something and return Response object } ); // Only match if request is over HTTPS and GET request: Router::connect("/admin", array("http:method" => "GET", "env:https" => true), function($request){ // Do something and return Response object } );
Passing
You can punt processing to the next matching route by returning false.
// If $name is not jamal, pass it to next route Router::connect("/guess/{:name}", array("http:method" => "GET"), function($request){ $name = $request->name; if($name == 'jamal') { return new Response(array('body' => "You can guess my name.!")); } return false; } ); // Match every access to /guess/* Router::connect("/guess/{:name}", array("http:method" => "GET"), function($request){ return new Response(array('body' => "Try again!")); } );
Filters
Man, filters in Lithium are awesome. You can filter almost everything.
use lithium\action\Dispatcher; // Filter all request Dispatcher::applyFilter('run', function($self, $params, $chain) { // Do something before $result = $chain->next($self, $params, $chain); // Do something after return $result; }); // Filter GET request Dispatcher::applyFilter('run', function($self, $params, $chain) { if($params['request']->method == 'GET') { // Do something before } $result = $chain->next($self, $params, $chain); if($params['request']->method == 'GET') { // Do something after } return $result; }); // Protect some routes from unauthorized user use lithium\action\Dispatcher; use lithium\net\http\Router; use lithium\action\Response; use lithium\security\Auth; Dispatcher::applyFilter('run', function($self, $params, $chain) { // First, define our list of protected actions $blacklist = array( '/users/report', '/users/home' ); // Inspect the request to get the URL for the route the request matches $matches = in_array(Router::match($params['request']->params, $params['request']), $blacklist); // If this is a match, check it against an Auth configuration. if($matches && !Auth::check('default', $params['request'])) { // If the Auth check can't verify the user, redirect. return new Response(array('location' => '/users/login')); } // Important: return the results of the next filter in the chain. return $chain->next($self, $params, $chain); });
Thats it. I’m out of gas.
Update 1: Fix error in named parameter and passing example.
Update 2: I have created a simple example. Read about it here.
Simply wonderful!!!
I built my current spice rack (a real one) using a cheap chinese claw hammer, a bunch of nails and some too-deep IKEA bookshelf cutouts. But for sure my next spice rack will be built using french tools (uops) factories! ;)
People think of data visualization as output, and the insight that I think Ben has had with Bloom is that data visualization will become a means of input and control… Being able to manipulate data in real-time is an important shift. Data visualizations would then become interfaces rather than reports.
- Tim O’Reilly, on Bloom: new ways to see and communicate (via courtneybolton)
[...] if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger.
E. W. Dijkstra

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
This means that basically even today we believe that the moon is in the sky only to give us light at night, like the sun in the daytime, and the stars are there to afford us a magnificent display. Naturally. And we often gladly forget that we are infinitesimal atoms; instead we respect and admire one another and are even capable of fighting for a scrap of land or of grieving over certain things which, if we were really aware of what we are, would seem incalculably trivial.
Luigi Pirandello.
Computers have proven immensely effective as aids to clear thinking. Muddled and half-baked ideas have sometime survived for centuries because luminaries have deluded themselves as much as their followers or because lesser lights, fearing ridicule, couldn’t summon up the nerve to admit that they didn’t know what the Master was talking about. A test as near foolproof as one could get of whether you understand something as well as you think is to express it as a computer program and then see if the program does what it is supposed to. Computers are not sycophants and won’t make enthusiastic noises to ensure their promotion or camouflage what they don’t know. What you get is what you said.
James Hogan, “Mind Matters.”
Don't be content exploring only a single framework. CodeIgniter is lauded to be easy to learn. It is that. But, so are other frameworks. Do your due diligence and find what best serves you and your organization. Without experimenting we can't truly understand what we prefer. It's far easier to identify strengths and weaknesses when you have something with which to compare.
Shawn McCool - Why CodeIgniter is dead
Even if I actually think CI is right in fighting back the "urge to be cool" to keep its promise about never breaking developers code badly, I can't by agree with Shawn on what I reported above. I will extend again: not only you should try other tools, but also other languages, other ecosystems, other solutions and other (even bad) practices. Tools are there to help but in any field (programming, cooking, tearing down your old bathroom...) you should be aware of what you're doing and how many solutions you can rely on to do a good job. Amen
In the music industry, you have to get your own instrument and you can be sued for reusing even just two seconds of another song. In programming, the best tools are free (and are constantly improved upon). And using thousands of lines verbatim from someone else's code is not just legal, but a best practice.
Dan Nguyen - The bastard book of Ruby
As both a coder and a musician I can't but feel sick facing such disarming candor...
PHP is an embarrassment, a blight upon my craft. It’s so broken, but so lauded by every empowered amateur who’s yet to learn anything else, as to be maddening.
Here you can read the whole post (my rants are burps compared to this mastery! :D). It's interesting, whether you agree or not. But this quote speaks an important truth: PHP is so widespread that a lot of sincerely-eager-to-learn PHP programmers think they can really find and learn everything they need without stepping one single time in others ecosystems. After all, PHP will soon or later do what others do (from ages): look, Java has blahblah, let's create a framework that do this in PHP! Hey but what about Ruby's blehbleh? Yes, add them to next version! And why not introducing wonderful mehmeh from JavaScript? Maybe this is what drives my nuts with my everyday job... I experienced a lot of different context, languages and tools, before I hit PHP. Now it seems I can't flee: too much inertia. I'd just want out, once in a while.
I thought it was just me, but reading this makes me feel less alone! :)

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Here is a tool that streamlines and atomizes a critical debate in a way that renders single arguments and their relation clear! I'm used to be pointed out as an annoying person. I think I deserved this label for my tireless resolution in examining arguments in depth, asking my adverser to give precise meaning to every single word used. This come from my need to understand values and ideals promote by the person I'm talking to. I often find that most people build arguments on arbitrary premises without even being aware they do. This particular case makes me grow acrimonious and, as a result, I become unable to explain myself without rants or polemics. A visual representation of an argument allows for synthesis, relations and documentary sources to be analyzed and verified without beating the brain in frustration. It does not solves arguments, of course. But I hope will help me being more comprehensible, avoiding grudges and frustrating misunderstandings. Good work! :)
Can't agree more. It's a long time I'd like to tear down the Pomodoro by burping a roaring rant, but why bother when someone else did this for me? :) Thanks @arialdomartini.