Το καλάμι του startupper!

 

Θα ήθελα να θίξω ένα περιστατικό που με προβλημάτησε ιδιαίτερα και με ενόχλησε εως ενα βαθμό. Εκτός απο τη κύρια μου απασχόληση, εργάζομαι ως part-time lecturer σε Βρετανικά κολλέγια στην Θεσσαλονίκη. Έχω φοιτητές οι οποίοι πραγματικά έχουν ταλέντο, αλλά επειδή δεν γνωρίζουν τον έξω κόσμο, προσπαθώ να βρίσκω τρόπο να τους φέρνω σε επαφή με αξιόλογους ανθρώπους οι οποίοι ενδεχομένως να αποτελέσουν πηγή έμπνευσης για τη συνέχεια της σταδιοδρομίας τους. Για αυτό τον λόγο προσκαλώ κατα καιρούς δραστήριους ανθρώπους για να μοιραστούν την εμπειρία τους με τους φοιτητές μου. (more…)

Google reveals Spanner, the database tech that can span the planet

The Spanner technology sees Google craft a globally distributed database to underpin its massive software platforms with the help of atomic clocks, GPS systems and some of its most lauded computer scientists.

With the aid of atomic clocks, GPS receivers and some of the most esteemed figures in computer science, Google has crafted a planet-spanning distributed database.

 

Read more:  http://www.zdnet.com/google-reveals-spanner-the-database-tech-that-can-span-the-planet-7000004421/

read even more:  http://research.google.com/archive/spanner.html

download the paper if you dare:  http://research.google.com/archive/spanner.html

How To Install and Secure phpMyAdmin on Ubuntu 14.04

While many users need the functionality of a database management system like MySQL, they may not feel comfortable interacting with the system solely from the MySQL prompt.

phpMyAdmin was created so that users can interact with MySQL through a web interface. In this guide, we’ll discuss how to install and secure phpMyAdmin so that you can safely use it to manage your databases on Ubuntu 14.04.

More…

mySQL Timestamp convert to RSS PubDate

mySQL Timestamp convert to RSS PubDate:

<?php
$year = substr($timestamp, 0, 4);
$month = substr($timestamp, 4, 2);
$day = substr($timestamp, 6, 2);
$hour = substr($timestamp, 8, 2);
$min = substr($timestamp, 10, 2);
$sec = substr($timestamp, 12, 2);
$pubdate = date(‘D, d M Y H:i:s O’, mktime($hour, $min, $sec, $month, $day, $year));
?>

even better way:

<?php $pubdate = date(‘D, d M Y H:i:s O’, strtotime($timestamp)); ?>

 

via mySQL Timestamp convert to RSS PubDate – PHP Code Snippet.

How to Use PHP Improved MySQLi extension (and Why You Should)

PHP supports MySQL using a PHP extension. Thousands or millions projects have been written worldwide using PHP and MySQL. PHP team announced plans to deprecate MySQL extension in mid 2011. Old MySQL extension officially deprecated since PHP 5.5.0 in late 2012 and it will be removed in the future. The alternatives since PHP 5 and later are MySQLi (“i” stands from “improved”) and PDO (PHP Data Objects).

Everyone can understand that is not so easy to immediately migrate old projects. However, the old extension must not be used anymore in new development.

Old extension didn’t support Prepared Statements. Both MySQLi and PDO are object oriented and do support Prepared Statements (also support Transactions, Stored Procedures and more). Prepared Statements are very important for web application security, as they protect from SQL injection. Using Prepared Statements you do not have to escape strings before insert them in Database. Moreover, PDO offers support for many databases (not only MySQL).

So, the question is “Which Should I Use? MySQLi or PDO?”. A short answer would be “whatever you like”. Personally, I prefer MySQLi. I could select PDO if “multiple database support” was included in project requirements (however, in this case php ADODB could also be an alternative).

Below I describe the common use of MySQLi in php development with MySQL database (it can be also used with MariaDB, an enhanced, drop-in replacement for MySQL).

How to Use PHP Improved MySQLi extension (and Why You Should).

RESTful services with jQuery, PHP and the Slim Framework | Christophe Coenraets

I have been looking for a lightweight framework to build a RESTful API in PHP. There are a number of good options out there: Slim, Epiphany, Tonic, Recess, and Frapi to name a few. They all seem like good frameworks. In the end, I chose Slim for this project for two main reasons:

  1. It’s very lightweight and focused on REST and nothing else.
  2. It supports all the HTTP methods (GET, POST, PUT, DELETE), which was a key requirement for my application.

RESTful services with jQuery, PHP and the Slim Framework | Christophe Coenraets.

GitHub Opens Octicons Icon Font to All

Way back in 2012, social coding community GitHub launched its own icon font called Octicons, leveraging what it called at the time “CSS3 techniques like rounded corners, gradients, and @font-face across all pages of the site.”

This was designed to be as much about aesthetics for the emerging retina-screened products as it was about site performance, and was used across many of GitHub’s sites, including its hackable text editor Atom. Now, GitHub has announced it’s making them available for anyone and everyone to download and use. You can read more about Octicons here.

 

GitHub Opens Octicons Icon Font to All.

CoffeeScript

CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.

The golden rule of CoffeeScript is: “It’s just JavaScript”. The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly from CoffeeScript (and vice-versa). The compiled output is readable and pretty-printed, will work in every JavaScript runtime, and tends to run as fast or faster than the equivalent handwritten JavaScript.

CoffeeScript.

Sync XAMPP Data With Dropbox

I use XAMPP for my local website development environment. It’s a wonderful free tool to use for this purpose, since I need access to a local WordPress distribution and the associated MySQL database to experiment with with themes and plugins.

One challenge I faced had to do with the fact that I use three different computers for development activities. Keeping data in sync across these platforms is important to me. The natural solution is to install Dropbox (referral link) on my various machines. (If you’re not familiar with Dropbox, be sure to read about maximizing free space before installing it.) (more…)

Track your Dynamic IP

dynamic-vs-static-ip

 

For several reasons I’d like to keep my dynamic IP instead of install a static IP, but I had to use a service such as easydns.com, no-ip.org etc. The only thing I was needed was just the current IP of my home router. So, I had this simple idea which when the linux box detects an IP change, then the script updates the web page. So, when I want to get informed about the ip of my home router, I’m visiting the address example.com/myip/index.php. For this, I made a php script which runs nicely. (more…)

What’s the difference between simulation and emulation

water_simulation_smaller

simulation is a system that behaves similar to something else, but is implemented in an entirely different way. It provides the basic behavior of a system but may not necessarily abide by all of the rules of the system being simulated. It is there to give you an idea about how something works.

Think of a flight simulator as an example. It looks and feels like you are flying an airplane, but you are completely disconnected from the reality of flying the plane, and you can bend or break those rules as you see fit. E.g.; Fly an Airbus A380 upside down between London and Sydney without breaking it.

An emulation is a system that behaves exactly like something else, and abides by all of the rules of the system being emulated. It is effectively a complete replication of another system, right down to being binary compatible with the emulated system’s inputs and outputs, but operating in a different environment to the environment of the original emulated system. The rules are fixed, and cannot be changed or the system fails.

The M.A.M.E. system is built around this very premise. All those old arcade systems that have been long forgotten, that were implemented almost entirely in hardware, or in the firmware of their hardware systems can be emulated right down to the original bugs and crashes that would occur when you reached the highest possible score.