Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Thursday, October 5, 2017

KidoCode HoC Computer programming class for young children and teens

I came across KidoCode in an education fair. KidoCode is a computer coding and maths training center targeting children of age group from 6 to 18, founded by 2 Iranian (Hossein a.k.a. Unclecode and Maysam) who are very passionate in educating the young generation about computer programming, logical thinking and mathematics.

I have brought my kid to attend their 4 hours free trial class at their HQ in Solaris Mont Kiara (above Cold Storage supermarket). That 4 hours session enabled us to know more about them, took a look and feel about their learning environment, let the kid to have hands-on introductory class about computer programming, which included simple programming to create mobile app in an Android tablet, and electronic programming on an Arduino kit. This is essential to ensure the kid likes the learning environment and the curriculum before making decision whether to enrol with them or not.

Parallel with the kid's 4 hours free trial class, there was also a 1 hour session for parents for them to introduce their value proposition, their unique way of running the classes, curriculum and syllabus. I am pretty impressed with their holistic vision, mission and plans to train Asian children to be competent in computer programming for fun and profit (yes, they encourage entrepreneurship after the kid has created something awesome in their journey of codings). As a result, I have enrolled my kid to their 50 Hours of Code (HoC) programme.

The 50 HoC is an introductory course for the kid to build up the necessary foundation in computer programming. A minimum of 50 hours is allocated for the kid to complete the course. 50 hours is the minimum because they'll give bonus hours to the kid based on several promotional criterias, at no additional charge, which could added up to over 80 hours.

This 50 HoC introductory course comes with a K-Box which the kid can bring home for own practice and continuous development, which contains:

  • Arduino board with electronic components
  • Raspberry Pi 2 with WiFi adapter and Case
  • Android smartphone for mobile apps and games programming
  • Some free gifts

All the following subjects will be covered in the 50 HoC programme:
  • Python programming language with Turtle graphics using online KStudio IDE

  • Mobile apps development using MIT App Inventor
  • Electronics programming using Arduino and Raspberry Pi
  • Web development using Cloud9

  • Game programming
  • Information security

The HoC is consumed at KidoCode training centers. The kid will learn at his own pace. Fast learners will learn more in-depth and given more challenging exercises, while slow learners are still able to go through the breadth of learning though not as deep. Beside the kid, the parents (both father and mother) are also given the same amount of HoC at no additional charge, for them to optionally learn the same course together with their kid, and each of daddy, mummy and kid will be learning at their own respective pace and could go through different learning path.


KidoCode is opened from 10am to 10pm daily including weekends and public holidays. Other than the first Welcome Session which needs to make appointment prior to attending, the kid (and parents) can walk in anytime during the operating hours to consume their HoC. A dedicated computer will be allocated, and personal trainer will attend to the kid (and parents) throughout the session. Students can take their break at anytime, which will stop their HoC hour glass counter, only to resume when the break is over. Free flow of food and drinks is provided at the premise.

 After the 50 HoC course, the kid can proceed with more advanced courses including:
  • Code and maths (30 HoC)
  • Mobile apps development (100 HoC)
  • Electrogramming (80 HoC)
  • Game coding (70 HoC)
  • Web development (100 HoC)
  • Computer security and cryptography (40 HoC)
  • Geek coding (100 HoC)
  • BioInformatics (50 HoC)

You can find out more information about KidoCode by visiting to their website.

If you are also interested to attend their 4 hours free session, you can click here to locate the online registration form.

Thursday, March 26, 2015

Using SQLite Expert to develop and administer SQLite3 databases

SQLite is today's de facto database for mobile development, particularly as the local database used in Android and iOS apps. It is also widely used to handle data storage in embedded system.

In fact, SQLite is also a good choice for lightweight database to handle data storage and query for Windows / Linux / Mac applications. It is released in the public domain and free for use (compared with other non-free alternative such as MS Access database). It is serverless and doesn't need installation nor configuration of database system (compared with alternative such as MySQL, PostgreSQL, etc.)

Now come to the big question: how to create, develop and maintain the SQLite databases?

There are quite a number of tools available, some are free and some are non-free. I have chosen SQLite Expert for use in Windows development environment.

SQLite Expert comes in 2 editions: the free Personal Edition (free for both personal and commercial use), and the non-free Professional Edition with additional features. You can click here to find out the feature differences between the 2 SQLite Expert editions. The Personal Edition should be good enough for most SQLite application developers.

SQLite Expert is able to handle Unicode data, Views and Virtual Tables.

SQLite Expert has a nice and easy to use GUI. It even comes with Hex Editor (to edit fields with binary data) and Image Editor (to edit fields with image data).


It has a powerful visual editor for database table creation, restructuring and maintenance, which able to handle columns, indexes, foreign keys, triggers, unique and check constraints.


It also has a handy Data Definition Language (DDL) viewer to show the DDL of tables.


For the Professional Edition, you will also get a Visual SQL Query Builder, able to import and export data, Lua / Pascal scripting support, etc.

If you are in search for a good database tool for SQLite3, I strongly recommend this one to you.

Wednesday, October 24, 2012

yEd - freeware for professional diagrams drawing

Talking about professional diagrams drawing, including Organization Chart, Venn Diagram, Flow Chart, Entity-Relationship (ER) diagram, Use Case Diagram, UML Class Diagram, Network Diagram, BPMN Business Process Diagram, Semantic Diagram, Decision Tree, Family Tree, Swimlane Diagram, ... and so on, what would be in your mind?

I am sure you will think of MS Visio, which is now part of MS Office suite. Visio is superb, but it is not free. For the free one, you might think of the open source Dia, now under GNOME project. Dia is good enough for most of the people looking for free MS Visio alternative, only that you need a lot of effort to use Dia to produce nice looking diagrams, and to maintain a relatively large diagram.

I've found yEd, a freeware developed by yWorks of Germany, which enables us to draw and maintain professional diagrams easily, and able to produce nice looking diagrams. One of its selling point is that it has a powerful feature that enables us to automatically rearrange all the elements in the diagram into well organized nice looking position, just with a single click.

The video below is a 90 seconds introduction to yEd.


yEd is running on Java, therefore it is cross-platform, able to run in Windows, Linux, Unix, Mac OS X, etc. It can import diagram/data from multiple format, including GraphML, GML, MS Excel spreadsheet, GEDCOM, TGF, XML through XSLT, etc. It can also export to multiple format, including JPG, GIF, PNG, BMP, PDF, SWF (Flash), SVG, EMF, EPS, HTML imagemap, etc.

Here are some sample diagrams drawn with yEd:

 


Click here for more information and download of yEd.

Thursday, July 21, 2011

The 2nd Integrated Content Development Programme (ICON2) by MDEC

If you are a Malaysian and wanna enter into mobile apps development for iPhone/iPad or Android, or you want to setup a content/knowledge website, you should know about ICON2 which can provide you training, financial and facility support to bring your dream to reality.

The Integrated Content Development Programme (ICON) commenced in 2009 was aimed for MDEC to provide support and assistance to Malaysian content developers in creating quality web and mobile apps. 96 projects has already benefited from this programme.

ICON2 just launched earlier this month (July 2011), is an extension of ICON, and initiated under the Communications Content and Infrastructure sector, identified by ETP as one of the growth engine in the 12 NKEA. This round, it is targetted for iPhone/iPad and Android apps development projects.

There are 3 components under ICON2.

ICONapps is a mobile apps development programme for team of 2-4 Malaysian developers. It provide funding assistance through reimbursement for training in iOS or Android development, any purchase of development platform and devices, purchase or license of 3rd party SDK, and also reimbursements for any 1st year developer registration fee.

In short, you can start up your mobile apps development by getting free training, free computer, free development phone, free development tools, etc. from MDEC by applying to this ICONapps programme. I believe this is a perfect programme for university/college students and/or free graduates and/or any Malaysian who would like to develop mobile apps to kick start with.

ICONdap is a developer assistance programme that provides funding assistance for those who have innovative ideas and concepts to come out with POC and prototype. The funding covers all direct costs incurred for the proposed project. At the final stage, MDEC will also assist you for Business/VC/Angel matching.

ICONeX is a digital content hosting and exchange facility targeted at SMI/SME and individuals which require bandwidth for online content, applications and services. This is a datacenter server hosting and/or co-location facility at a competitive price.

Click here for more information and application form download of ICON2.

Monday, February 28, 2011

Develop cross-platform iPhone and Android games with Corona Mobile Development Platform

Corona SDK is a mobile development framework by Ansca Mobile (established by a team of former Adobe mobile engineers) for creating high-performance, multimedia rich mobile applications and games for the iPhone, iPad, and Android.

Corona SDK uses Lua programming language. Although this is a new language to most application developers, I can assure you that this scripting language is pretty easy to learn and master, much easier than Objective-C, C++ and even Java.

One of the success stories of mobile application developed with Corona SDK is that: a 14 years old kid from Utah, Robert Nay, has developed a popular games with Corona SDK called Bubble Ball, and uploaded it to iTunes App Store. Within a very short period of time, this game has attracted millions of download, outshining the famous Angry Birds games.

The Corona SDK contains an integrated simulator for iPhone, iPad and Android. It also comes with a debugger, and a rapidly growing library of APIs and sample codes. It is integrated with Box2D physics engine, make it easy for games development. It can also take care of different screen size and resolution of mobile devices, and scale the application display accordingly.

Corona SDK is available for Mac OS X and Windows (still beta). It is free for trial during development stage. However, you'll need to pay for the annual Corona SDK Subscription in order to distribute and/or sell your mobile apps developed with it.

You might probably also be interested to read about:

Sunday, February 27, 2011

Coding cross-platform iPhone, iPad and Android mobile applications in Javascript

Talking about mobile application development, most of us will think about Objective-C for iPhone/iPad and Java for Android devices.

Well, there are at least 2 ways we can produce cross-platform iPhone, iPad and Android mobile applications in Javascript.

One is by using the open source PhoneGap mobile framework by Nitobi Software, which is basically a wrapper that runs your mobile application via the webview browser object and provides some access to native APIs of the mobile platform. The trade-off of using PhoneGap including: slower application runtime, limited access to OS and hardware APIs, web-like user interface (compared with native user interface), etc.

Another way is by using the open source Appcelerator Titanium Mobile development platform, which will compile your Javascript codes into native iPhone, iPad and/or Android mobile application. As a result, the mobile apps developed with Titanium Mobile will have almost the same runtime speed with native apps developed in Objective-C (for iPhone/iPad) and Java (Android SDK).

You will need an Apple Macintosh computer (with Apple iPhone SDK installed) to build iPhone applications with Titanium. You can build Android applications in Apple Mac, Windows or Linux computer, with the Android SDK and emulators installed. This also means that if you are using Titanium in a Mac, it is possible for you to develop cross-platform mobile applications for both iPhone and Android using the same code base.

One of the beauty of Titanium is that it has a rich library of APIs of 30+ modules, 80+ objects, 800+ methods and 2800+ properties  (and still expanding) which enables developers to get the most out of the mobile resources, including resources from Internet such as the Facebook APIs, Yahoo APIs, etc. It even made available a Kitchen Sink demo program, which showcases majority of its available APIs.


Mobile apps developed with Titanium including Sugar Mobile by SugarCRM, eBay Corporate by eBay, GetGlue by AdaptiveBlue, etc.

You might probably also be interested to read about:

Now it is possible to develop Desktop applications (Windows, Linux, Mac OS X) with web programming language (Javascript, HTML, CSS, PHP, Python, Ruby)

For decades, programming for Desktop applications running in Windows, Linux or Mac OS X is a different world from programming for Web applications (LAMP, Django, ASP.Net, etc.).

Developers from the Java world, and the Adobe Flash world, might argue that their development platform can go across Desktop as well as Web application development, and even Mobile application development too. That's true, but the application developed with Java or Flash will have trade-off in performance compared with native applications. There is also limited support to OS level controls, interfaces and functionalities as well.

If you are a Web developer familiar with languages such as Javascript, HTML, CSS, PHP, Python and/or Ruby, have you ever though of using your favourite web programming languages to develop desktop applications that run on Windows, Linux and/or Mac OS X?

Appcelerator Inc. has put their endeavours to make this dream come to reality with their open source rapid application development (RAD) platform called Appcelerator Titanium Desktop. In fact, you can also build cross-platform applications that run on these 3 different OS platforms, compiled from a single code-base.


Titanium platform is a similar product in a number of ways with Adobe AIR. For web developers, its main advantage is that you don't need to learn a new language like Flash or ActionScript, as you can leverage on your existing knowledge in Javascript, HTML, CSS, PHP, Python and/or Ruby. In addition, Titanium provides access to native OS controls, as well as numerous APIs for you to work with.

The Titanium Developer tool itself has separate build for installation on Windows, Linux and Mac OS X. This means regardless you are using Windows, Linux or Mac OS X, you can develop applications with Titanium in your favourite OS platform, and even develop for another OS, such as developing Linux applications in your Windows computer.

This is what they claimed: "Flaunt your geek cred with Linux applications, go mainstream with Windows, get hip with OS X, or do all three from one code base. Titanium apps take up to 1/10th the memory of Adobe AIR apps and have complete access to the local system. "

Sounds promissing? Well, Titanium is still a relatively new product, and you might hit some bugs or flaws when using it. It has been improving from version to version, and its community base is growing.

In fact, Appcelerator Titanium is more popular being a cross-platform RAD for mobile application development (iPhone, iPAD, Android, etc.)

Take a look at my next article about Titanium Mobile.

Wednesday, September 8, 2010

AnDevCon - the 1st Android developer conference

For your information, BZ Media LLC, the publisher of Software Development Times, is organizing the first AnDevCon for developers, entrepreneurs and IT professionals focusing on the booming Android mobile software market.

This will be a 3 days conference. It will begin with 1 day of intensive workshops, followed by 2 days of technical classes. The conference will include a tabletop exhibit area for companies selling products and services for Android marketers and developers.

Detail as below:

  • Date: 7-9 March 2011
  • Venue: San Mateo in San Francisco, California, USA
  • Admission: non-free, with payment
Classes and workshops at AnDevCon fall into 3 topic areas:
  • Android Developer Essentials: These technical classes and workshops are for all Android developers, and cover all programming topics.
  • Android Enterprise Essentials: These technical sessions cover topics specific to building and managing apps for employees, business customers and partners, such as back-end integration corporate datacenter communications, ERP or CRM systems.
  • Android Business Essentials: These classes and workshops are for entrepreneurs and developers who want to learn the most effective ways of distributing and marketing Android apps, including how to maximize sales through the Android Market.
Click here for more information about the AnDevCon event.

    Sunday, July 11, 2010

    Mystery code "9ec4c12949a4f31474f299058ce2b22a" in US Cyber Command emblem cracked

    The emblem/logo of newly established United States Cyber Command (USCYBERCOM) has something unique from the emblems of other units in US Department of Defence (DoD).

    If you look carefully, you will notice a ring of mystery code "9ec4c12949a4f31474f299058ce2b22a" along the inner gold ring of the emblem.


    Over the past few days, this code has become the hot discussion in the Internet, and also well reported in the news media. By now, the code has been cracked.

    It is the MD5 (Message-Digest algorithm 5) cryptographics hash of US Cyber Command's mission statement, which is:

    USCYBERCOM plans, coordinates, integrates, synchronizes and conducts activities to: direct the operations and defense of specified Department of Defense information networks and; prepare to, and when directed, conduct full spectrum military cyberspace operations in order to enable actions in all domains, ensure US/Allied freedom of action in cyberspace and deny the same to our adversaries.

    In fact, the message above cannot be "decrypted" from the code itself, as MD5 is a kind of cryptographic hashing method instead of 2-way encryption. However, if you know the original text, you will get back the same code by hashing it with MD5.

    One major use of MD5 is to verify the integrity of files and messages stored in the computer and/or transferred over the network. If the content is not the same from its origin, the MD5 code generated will be different. We call this unique verification code a "checksum".

    Let's try yourself to generate the MD5 code for the above mission statement here. You can also try to crack it here. If you wonder how it can be cracked, just read the explanation on that webpage.

    Monday, February 8, 2010

    The sextuple constraint of scope, time, cost, quality, risk and resource

    If you have been involved in any kind of project management, be it in business or personal, you might have known about the famous triple constraint of project management, with the following general formula:

    Quality = f(Scope, Time, Cost)

    It is a simple rule of concept that says:

    • To get the product with quality of your expectation, you have to at least plan carefully for the scope of work, time schedule and cost allocation.
    • In order to maintain the same quality, any change to one of the 3 factors will need an adjustment to the remaining 2 of them. The 3 constraints are inter-dependent.
    • If you want to adjust your quality expectation (either better or lower), then you can also adjust factors of scope, time and cost accordingly.
    This is a very powerful concept commonly used during project planning, project monitoring and change management. It is used to assess the viability and to balance the trade-off factors.

    For example, it is generally true that if you want to achieve a wide scope with little cost and time, you have to compromise on the quality expectation.

    This triple constraint has been expanded to sextuple constraint in modern project management literature. They are: scope, time, cost, quality, risk and resource.
    The risk factor is crucial because if it is not well managed, it will affect the other factors as well. Risk management comes in as preventive measure to safeguard the planned time schedule, cost, quality and resource allocated for the specific scope.

    Resource is also an important factor. For example, with better resource on hand, you might be able to achieve the scope of quality with less time, cost and risk.

    It is a good practise to always refer to the sextuple constraint for planning, managing and making changes to projects, so that our expectation is more realistic and success is viable.

    You might want to use it in some of these projects which most of us will surely encounter during our life voyage:
    • Education planning
    • Wedding planning
    • Parenthood planning
    • Buying a house
    • House renovation and/or decoration
    • Travel planning
    • Retirement planning
    • ...
    And of course, this is always applied to project management at work, including:
    • Software development
    • Building development
    • Business development
    • Operations planning
    • Change/Restructuring management
    • ...

      Thursday, May 7, 2009

      The rise and fall of Borland

      I have almost forgotten Borland if not the recent news about it being acquired by UK based Micro Focus for $75 million.

      If you have been doing computer programming, especially since the 80's or 90's, there is a very high possibility that you used Borland's product before.

      During the good-old DOS time, Borland had been famous with their Turbo Pascal, Turbo C, Turbo C++, SideKick, etc. When the Windows time come, Borland continued their popularity with Borland C++, Delphi, C# Builder, JBuilder, etc. They also produced software development tools for Linux, such as Kylix.

      Beside being famous in programming tools, Borland had also been the company behind some office productivity products such as Paradox (vs MS Access), Quattro Pro (vs MS Excel), WordPerfect (vs MS Word). They had made attempt to combine these 3 products into Borland Office as rival to Microsoft Office. Later, this office productivity business was sold to Novell in the mid-90's.

      During their time of glory, Borland also bought over Ashton-Tate, the company behind the once very famous database software -- dBase & Interbase.

      Over the year, Borland gradually lost ground in their competition with Microsoft. Nowadays, Visual Studio succeed in engulfing their software development tools market, and Borland Office has long lost their market to MS Office.

      The name of Borland faded in the 2000's, especially after the departure of their founder Philippe Kahn, and was almost forgotten by many programmers who once developing software with their superb products with nice Integrated Development Environment (IDE), especially during the DOS era.

      Philippe continued to bring wonders to the world after his departure from Borland in the mid-90's. He has contributed to wireless devices data synchronization technology, invented the first camera phone, and is currently the CEO of Fullpower Technologies, a company focuses in converging life sciences, wireless technology, accelerometrics, nanotechnology and MotionX solutions.

      Monday, March 9, 2009

      Guiding principles for Web 2.0 application development

      In their article published in the recent Baseline Magazine, Frank Faeth and Joe Busateri who are both working for MasterCard have shared the 4 guiding principles established in MasterCard for application development that involves web services.

      These guiding principles make different from the traditional way of application development, in order to take advantage of Web 2.0 technologies for speed, simplicity and reduced cost of software development.

      Here are the 4 guiding principles:

      1. Application developers have to be more than just good coders

      Beside technical skills, developers have to be more business oriented now. They need to move forward from the back office to be more customer-facing than before. "Programmers" should transform into "business technologists" to cope with this trend.

      They are expected to drive the organization forward by anticipating future business needs, and leverage technology to create practical solutions that will serve those needs.

      They have to be awared that the half-life of today's business software is relatively short, so they must build applications that are stable and usable for a short period, and well prepared to be repurposed, rebuilt and enhanced. As such, rapid development is crucial, and components of the applications should be very modular, flexible, reusable and scalable.


      2. Managers must realign their organizations to foster web services

      Traditional attitudes and methodologies of software development no longer apply in Web 2.0. Web services require vigilance, constant management attention and repeated reinforcement.

      Successful web services implementation requires all members of an organization to share technology and best practices across silos. This may require changes in corporate governance, less reliance on top-down directives and greater emphasis on mid-level management cooperations.


      3. Companies should adopt Google's mentality: Fast is better than perfect

      In their article, Frank Faeth and Joe Busateri argued that since the half-life of business software isn't very long, it's better to push a product into the marketplace quickly, rather than wait until it is thoroughly tested.

      Both developers and business owners must agree on which compromises they are willing to accept in the application's functionality, features and stability, as weighed against achieving greater simplicity and speed to market.

      The organization must be open to "failing fast and failing cheap" concept of perpetual development.

      For example, Google's Gmail is released for public use while still in beta stage, and the beta has been ongoing for years, with continuous development, improvement and enhancement to the product.


      4. Be sure to acknowledge that adopting web services requires time and effort

      Adopting web services represents a radical change from the way corporations have traditionally developed software systems. As such, the change management and challenges involved should not be underestimated.

      Friday, November 28, 2008

      Developing and implementing .NET applications in Linux, Unix, Mac, etc. with Mono 2.0

      Microsoft has been promoting their .NET application platform quite some years ago, and supporting the development of .NET applications with their Visual Studio development tools. They even introduced a new programming language named as C# targetting to the .NET frameworks.

      If you have the impression that .NET applications can only run on MS Windows platforms, and that you can only develop .NET applications using Visual Studio in MS Windows, probably you are still not aware of Mono which frees up all the .NET developers and their applications to the rest of the world other than Microsoft, which includes Linux, Unix, Solaris, BSD, Mac OS X, etc.

      Mono is an open source development platform based on the .NET framework, which allows developers to build Linux and cross-platform applications with improved developer productivity. Mono's .NET implementation is based on the ECMA standards for C# and the Common Language Infrastructure (CLI).

      The Mono runtime contains a just-in-time (JIT) compilation engine for a number of processors including x86, SPARC, PowerPC, ARM, S390 (in 32-bit and 64-bit mode), x86_64, IA64 and SPARC for 64-bit modes.

      The Mono project started in Ximian since 19 July 2001, which was about 7 months earlier than the release of Visual Studio .NET 2002 (first release of Visual Studio that supports .NET framework) by Microsoft. Ximian was a company that provided free desktop applications for Linux and Unix based on the GNOME platform, and has been acquired by Novell in 2003. Mono is currently sponsored, led and supported by Novell.

      Mono version 1.0 was released in June 2004, one year after Visual Studio 2003 was released. Current version of Mono is 2.0.1, which is API complete in regards to .NET 2.0 and supports for Visual Basic.NET as well as C# versions 2.0 and 3.0.

      Mono includes compilers, an ECMA-compatible runtime engine (the Common Language Runtime, or CLR), and many libraries. The libraries include Microsoft .NET compatibility libraries (including ADO.NET, System.Windows.Forms and ASP.NET), Mono's own and third party class libraries.Gtk#, a set of .NET bindings for the gtk+ toolkit and assorted GNOME libraries can be found in the latter. This library allows you to build fully native Gnome application using Mono and includes support for user interfaces built with the Glade interface builder. Furthermore, Mono's runtime can be embedded into applications for simplified packaging and shipping. In addition, the Mono project offers an IDE called MonoDevelop, Debugging, and a documentation browser called MonoDoc.

      As an open source software, you can download, copy, distribute and use Mono for free. Here is the download page of Mono.

      There are a lot of information about Mono in Wikipedia. There are also many resources and documentations about Mono in its official website.

      Monday, November 10, 2008

      Hardening PHP security with Suhosin

      Suhosin (수호신) is a Korean word that means “guardian-angel”, originally developed by Stefan Esser, a German developer who loves Korean language.

      Originated from the Hardened-PHP project, Suhosin is an advanced protection system for PHP installations. It was designed to protect servers and users from known and unknown flaws in PHP applications and the PHP core.

      There are 2 parts in Suhosin:

      • Patch to PHP that hardens the Zend engine to protect from possible buffer overflows and related vulnerabilities.
      • Standalone Suhosin extension module for PHP to provide many security features that are not present in PHP itself.
      Both of them can work together, or the extension module alone can be used.

      Some of the features of Suhosin are:
      • Logging of errors to syslog or arbitrary logfiles
      • Create blacklists and whitelists per virtual host
      • Filter on GET and POST requests, file uploads, and cookies
      • Transparent encryption of sessions and cookies
      • Set memory limits
      • ... and many more
      If your web applications are developed in PHP, you should seriously consider installing Suhosin to harden its security. It is already included in most major Linux distributions. Search for "php5-suhosin" or "php-suhosin" in your Linux distribution to install it.

      For more information about downloading and installing Suhosin, click here.


      Thursday, September 4, 2008

      CakeFest the CakePHP conference

      The 2nd CakeFest in 2008 will take place in Buenos Aires, Argentina this coming 2-5 December 2008. The conference will feature both English and Spanish spoken talks.

      Organized by the Cake Software Foundation, CakeFest is a programming conference with a strong focus on CakePHP. CakePHP is a rapid development framework for PHP scripting language that provides an extensible architecture for developing, maintaining, and deploying web applications. Using commonly known design patterns like MVC and ORM within the convention over configuration paradigm, it reduces development costs and helps developers write less code.

      Click here to pre-register for the CakeFest conference now.

      Thursday, June 5, 2008

      Yahoo! releases Address Book API following Google & Microsoft

      When Google pushed out their Contacts API in March 2008, it was called "the most in-demand API on the web that hadn't yet existed". Those APIs are important because they allow socially aware applications to offer users the ability to import information from their address books without having to worry about giving up their password to a third-party site. The application seeking the information also no longer needs to employ any screen scraping to gather information.

      Soon after that, Microsoft also released the beta version of their Windows Live Contacts API in March 2008. In addition to a full contact management interface for a Windows Live user's address book, the Windows Live Contacts API provides a view to a subset of the Contact data for the purposes of sending Invitations.

      Now, Yahoo! has also joint the bandwagon to launch their Address Book API in June 2008. Similar to Google and Microsoft, Yahoo! opted to employ their own authentication technology in the API, namely BBAuth. They intend to supports OAuth in the future, though, which will make it easier for developers to use the API.

      The Yahoo! Address Book API is a JSON/XML interface for accessing and updating the Yahoo! Address Book using a web service. It can be used to look up addresses for auto-completion of emails, to add addresses for future shipping information, to obtain unique identifiers for network invites, or to sync with another address book.

      Click here to go to the webpage of the Yahoo! Address Book API.

      Thursday, May 29, 2008

      Facebook to go for open source?

      Since last year, there are news about Facebook, the famous social networking website founded by Mark Zuckerberg is going for open source. The latest update is that they are currently working on an open source initiative that is meant to help application developers to better understand their Facebook developer platform and to be more easily build applications, whether it's by running their own test servers, building tools, or optimizing their applications.

      This is seen to be a respond to the Google OpenSocial platform, which is currently widely implemented in many social networking websites,
      including Engage.com, Friendster, hi5, Hyves, imeem, LinkedIn, MySpace, Ning, Oracle, orkut, Plaxo, Salesforce.com, Six Apart, Tianji, Viadeo, and XING.

      This initiative is expected to boost the interoperability between Facebook and other social networking websites. A
      pplication developers will then be able to easily port their Facebook applications over to other social networking websites, which in turn can help Facebook Platform, which comprises of FMBL (markup language), FQL (query language), FJS (Javascript library) and the Facebook API, to become a standard.

      Another potential benefit of going open source is that, outside developers could work on the codes, make contribution and help to improve the Facebook Platform itself.

      Friday, May 9, 2008

      VisualWade the PHP code generator

      VisualWade is a freeware PHP code generator that generates web applications from design models. You will be able to design and deploy sophisticated web applications in PHP connected with relational databases like MySQL, PostgreSQL or ORACLE with just a few mouse clicks.

      VisualWade is a great PHP developer solution to generate a complete solution in a very small period of time and ready to deploy in a PHP web server. It generates all PHP necessaries pages and also the database creation script. It generates the interface tier as templates, easy for customization and final touch-up.

      This Model driven web development tools uses UML as class diagram specification, and complete with Navigational Access Diagrams (NAD) and Composition Layout Diagrams (CLD) for the user navigation specification according to the Object-Oriented Hypermedia (OO-H) method developed at University of Alicante. It also uses Object Constraint Language (OCL) as complementary language.

      Hint: Click on the "Older Posts" link to continue reading, or click here for a listing of all my past 3 months articles.