Tuesday, June 13, 2017

Apache OpenOffice 4 1 3 Multilingual

Apache OpenOffice 4 1 3 Multilingual



The free and open productivity suite without installation.
Download Portable OpenOffice Multilingual Multiversion Online (1.3 MB) 27/10/16
Select language and enter 4.1.3
Czech, German, Greek, English, Spanish, Basque, Finnish, French, Galician, Hungarian, Italian, Japanese, Khmer, Korean, Lithuanian, Dutch, Polish, Portuguese, PortugueseBR, Russian, Slovak, Slovenian, Serbian, Swedish, Tamil, Turkish, Vietnamese, SimpChinese, TradChinese

Extract and run OpenOffice*Portable.
Settings of installed OpenOffice should be preserved.

Can use Java Runtime Environment Portable

Read full post »

Thursday, June 8, 2017

Apache MeetUp held in Hill Country

Apache MeetUp held in Hill Country





The students of University of Peradeniya did a great job organizing an amazing Apache meet up at Kandy, Sri Lanka. This was the second major event in Sri Lanka next to the Apache Bar Camp Colombo that was held this year.

Here the first talk was on "FOSS in Kandy" by Dr. Nimal Rathnayaka, followed by Dr. Srinath Perera explaining "The Apache Way" of managing projects, how the communities work together and how they resolve conflicts using the voting system with the -1 veto. 

After the introduction of open source and Apache, Nandika Jayawardrdana gave an inspiring speech on "Open source and your career" giving out some valuable informations to the audience how one can use open source to become much better at his career. Here he explained how open source can improve your communication skills, writing skills - where you have to convince and argue on your ideas via the mailing list, and how your participation on open source makes you famous - which indeed will be eye catching even at the selection phase for a grad school, and most importantly he also expressed how we get a self satisfaction when so many people are using the product that you have build. This also falls according to the famous saying "A project without users (means, it) does not exist".  

Following this, Sagara Gunathunga gave a good briefing on how you can "Find your way to Apache Contribution", Here he not only stressed on coding but also mentions some other great ways of contributing, like writing technical blogs on the project, helping with documentation and testing the project. He continued explaining how these are extremely valuable to do when you are a newbie and gain recognition from your project community. 

After lunch, we had two practical sessions, the first one is on how to configure and use Apache Web Server in an efficient manner - by Anuradha Ratnaweera, and the second was on "Apache build projects" - by Prabath Abeysekara and myself, where we demonstrated Apache Subversion, Maven and Ant. 

Finally the session was concluded with Pradeebans lighting talk on how to build a community for your project.
Read full post »

Apache AH 64 Air Assault Game Free Download

Apache AH 64 Air Assault Game Free Download



Apache AH 64 Air Assault Game highly compressed Direct Single link free Download
Apache AH 64 Air Assault Game Full Setup.exe (238.0 MB)
                                           
System Requirements:
  • Pentium 4 2.0 GHz,
  • 1 GB RAM
  • Graphic Card 256 MB
  • GeForce 6600 or Better
  • 5 MB HDD
  • Windows 2000/XP/Vista/7
                                                 ScreenShots


Apache AH 64 Air Assault Apache AH 64 Air Assault Game full version free download Apache AH 64 Air Assault Game  free downloadApache AH 64 Air Assault Game for pc free download Apache AH 64 Air Assault Game free download Apache AH 64 Air Assault Game single link free downloadApache AH 64 Air Assault Game fast free download Apache AH 64 Air Assault Game highly compressed link free download Apache AH 64 Air Assault Game with key free download Apache AH 64 Air Assault Game with serial number free download.


Download Click here
Read full post »

Friday, June 2, 2017

Apache Spark Design Patterns Using Scala 0

Apache Spark Design Patterns Using Scala 0


Apache Spark supports both batch and streaming analysis, meaning you can use a single framework for your batch processing as well as your near real time use cases. And Spark introduces a fantastic functional programming model, which is arguably better suited for data analysis than Hadoop�s Map/Reduce API

This blog series attempts to find out if the common set of use cases can be solved using Spark.
The use-cases are based on 

http://oreil.ly/mapreduce-design-patterns
�MapReduce Design Patterns by Donald Miner and Adam Shook (O�Reilly). Copyright 2013 Donald Miner and Adam Shook, 978-1-449-32717-0.�


The Hardware and Software stack used
Read full post »

Apache MySQL PHP

Apache MySQL PHP


How to Install and Configure PHP 5 to Run with Apache on Windows
Set Up PHP 5 for Apache on Windows


http://www.thesitewizard.com/php/install-php-5-apache-windows.shtml

Create a local PHP MySQL development environment

http://www.ultraedit.com/support/tutorials_power_tips/uestudio/local_php_mysql_dev_environment.html
Read full post »

Tuesday, May 23, 2017

Apache Tomcat 6 0 16

Apache Tomcat 6 0 16


Apache Tomcat 6.0.16 (For Mac)

Download Apache Tomcat 6.0.16

Read full post »

Apache and Php Vulnerabilities

Apache and Php Vulnerabilities


1. Indexable Web Directories

Ensure that directory indexing is not enabled on this web server.

How to disable directory browsing using .htaccess � Apache Web Server

Apache web server allow directory browsing by default. It�s always good to disable directory browsing in security aspect. To disable directory browsing in apache web server you need to edit the httpd.conf or .htaccess


Disable directory browsing using .htaccess:-
� Open your .htacces file
� Look for Options Indexes
� If Options Indexes exists modify it to Options -Indexes or else add Options -Indexes as a new line
� The directory browsing feature should be disable by now
Disable directory browsing using httpd.conf:-
� Open your httpd.conf, normally it�s located at /usr/local/apache/conf or /etc/httpd.conf
� Go to your own Virtual Host settings and look for �Options Indexes�
� Change the Indexes to -Indexes if Option Indexes exists or else add the Options -Indexes line
� Restart your apache web server.
� The directory browsing feature should be disable by now

http://www.techiecorner.com/106/how-to-disable-directory-browsing-using-htaccess-apache-web-server/

2. HTTP TRACE

Disable the TRACE method on your Internet-accessible web servers. Newer Apache servers include a "TraceEnable" setting in the httpd.conf file, while older versions of Apache can use mod_rewrite to block these requests. In a Microsoft environment, the "EnableTraceMethod" key in the Registry (HKLMSYSTEMCurrentControlSetServicesW3SVCParameters) should be set to 0, or the URLScan tool may be used to reject TRACE requests.

Apache Tips: Disable the HTTP TRACE method
Applies: apache 1.3.x / apache 2.0.x
Required apache module: -
Scope: global server configuration
Type: security

Description: How to disable the HTTP TRACE method on recent apache versions.

Most vulnerability scanners (like the popular nessus, but commercial ones also) will complain (normally as a low thread or warning level) about TRACE method being enabled on the web server tested.

Normally you will have this enabled by default, but if you want to test if it is really enabled on your server you just have to telnet on the port your web server is running and request for �TRACE / HTTP/1.0� if you get a positive reply it means TRACE is enabled on your system. The output of a server with TRACE enabled will look like:

telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ^].
TRACE / HTTP/1.0
Host: foo
Any text entered here will be echoed back in the response <- ENTER twice to finish

HTTP/1.1 200 OK
Date: Sat, 20 Oct 2007 20:39:36 GMT
Server: Apache/2.2.6 (Debian) PHP/4.4.4-9 mod_ruby/1.2.6 Ruby/1.8.6(2007-06-07)
Connection: close
Content-Type: message/http

TRACE / HTTP/1.0
Host: foo
Any text entered here will be echoed back in the response

Connection closed by foreign host.Traditionally experts will suggest to disable this using some rewrite rules like:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
(this needs to be added somewhere in your main apache config file outside of any vhost or directory config).

Still this has the disadvantage that you need to have mod_rewrite enabled on the server just to mention one. But for apache versions newer than 1.3.34 for the legacy branch, and 2.0.55 (or newer) for apache2 this can be done very easily because there is a new apache variable that controls if TRACE method is enabled or not:

TraceEnable off
This needs to be added in the main server config and the default is enabled (on). TraceEnable off causes apache to return a 403 FORBIDDEN error to the client.

After setting this and reloading the apache config the same server as above shows:

telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ^].
TRACE / HTTP/1.0
Host: foo
testing... <- ENTER twice

HTTP/1.1 403 Forbidden
Date: Sat, 20 Oct 2007 20:38:31 GMT
Server: Apache/2.2.6 (Debian) PHP/4.4.4-9 mod_ruby/1.2.6 Ruby/1.8.6(2007-06-07)
Content-Length: 320
Connection: close
Content-Type: text/html; charset=iso-8859-1



403 Forbidden

Forbidden


You dont have permission to access /
on this server.




Apache/2.2.6 (Debian) PHP/4.4.4-9 mod_ruby/1.2.6 Ruby/1.8.6(2007-06-07) Server at foo Port 80


Connection closed by foreign host.

Enabling mod_write


Verify that the following directive is uncommented:

LoadModule rewrite_module modules/mod_rewrite.so

(For IBM HTTP Server 2.0.42 and all later releases.)

http://publib.boulder.ibm.com/httpserv/ihsdiag/rewrite.html#enabling

3. PHP expose_php Version Disclosure

The purpose of expose_php is merely to allow for the identification that PHP is running on the server. It is recommended that this be disabled on production hosts. Set the value for expose_php to Off within the PHP configuration file php.ini to disable this behavior. A restart of the HTTP server may be necessary.
Read full post »

Sunday, May 14, 2017

Apache Tapestry 5 makes Java web development easy

Apache Tapestry 5 makes Java web development easy


I went through the Apache Tapestry 5 tutorial today and found it surprisingly easy to use. The two most productive features I love are auto class reloading and rich built-in components! I can edit the model/controller/view in a java IDE that auto compiles upon file save, and then reload browser to see immediate changes. I think any Java web framework should have this feature in order to be count as productive. (Yes there is JRebel, but its commercial, and nothing more simpler than a framework supports it directly. Well to be fair JRebel is much more advance and richer in support your Java classes reloading, however for purpose of web dev, Tapestry seems to provide a sweet spot and boot productivity tremendously.)

I was intrigued enough to continue reading the rest of their documentation for advance usage and architecture design. I love simple and yet productive libraries/framework design principles, and I think Tapestry fits into that category. Their documentation is rich and well organized. I browsed their forums and user communities and they seem to be active and plenty of usage in the field. I also found these jumpstart examples to be extremely helpful.

I am happy that I spent the time in learning this framework. I think it makes web development easy, fast and fun to work with. If you havent tried it before, or have not tried their latest version 5 lately, I would highly recommend you to give it a try.

Read full post »

Apache reverse proxy of virtual hosts

Apache reverse proxy of virtual hosts


Here you have a simple example on how to create a vhost for a reverse proxied site:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName blue.domain.com
    ProxyRequests off
    ProxyPass / http://blue.internal.domain.com/
    ProxyPassReverse / http://blue.internal.domain.com/
</VirtualHost> 
<VirtualHost *:80>
    ServerName red.domain.com
    ProxyRequests off
    ProxyPass / http://red.internal.domain.com/
    ProxyPassReverse / http://red.internal.domain.com/
</VirtualHost>
This is also useful if you have a tomcat or anything else running on a different port and you want to serve everything on the same port:

<VirtualHost *:80>
    ServerName tom.domain.com
    ProxyRequests off
    ProxyPass /myapp http://localhost:8080/myapp
    ProxyPassReverse /myapp http://localhost:8080/myapp
</VirtualHost>
Read full post »

Saturday, May 13, 2017

Apache Drill and the lack of support for nested arrays

Apache Drill and the lack of support for nested arrays


Apache Drill is very efficient and fast, till you try to use it with huge chunk of one file (such as a few GB) or if you attempt to query a complex data structure with nested data. Now, this is what I am trying to do right now - attempting to query large segments of data with a dynamic structure and nested schema.
 
I may construct a parquet data source from a nested array, as below,  
 
create table dfs.tmp.camic as ( select camic.geometry.coordinates[0][0] as geo_coordinates from dfs.`/home/pradeeban/programs/apache-drill-1.6.0/camic.json` camic);
 
Here I am giving the indices of the array. 
 
Then I can query the data efficiently. For example,  
select * from dfs.tmp.camic;
 
However, giving the indices wont work as I need, as I dont just need the first element. Rather I need the entire elements - in a large and dynamic array, representing the coordinates of geojson.
 
 
$ create table dfs.tmp.camic as ( select camic.geometry.coordinates[0] as geo_coordinates from dfs.`/home/pradeeban/programs/apache-drill-1.6.0/camic.json` camic);
Error: SYSTEM ERROR: UnsupportedOperationException: Unsupported type LIST

Fragment 0:0

[Error Id: a6d68a6c-50ea-437b-b1db-f1c8ace0e11d on llovizna:31010]

  (java.lang.UnsupportedOperationException) Unsupported type LIST
    org.apache.drill.exec.store.parquet.ParquetRecordWriter.getType():225
    org.apache.drill.exec.store.parquet.ParquetRecordWriter.newSchema():187
    org.apache.drill.exec.store.parquet.ParquetRecordWriter.updateSchema():172
    org.apache.drill.exec.physical.impl.WriterRecordBatch.setupNewSchema():155
    org.apache.drill.exec.physical.impl.WriterRecordBatch.innerNext():103
    org.apache.drill.exec.record.AbstractRecordBatch.next():162
    org.apache.drill.exec.record.AbstractRecordBatch.next():119
    org.apache.drill.exec.record.AbstractRecordBatch.next():109
    org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext():51
    org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():129
    org.apache.drill.exec.record.AbstractRecordBatch.next():162
    org.apache.drill.exec.physical.impl.BaseRootExec.next():104
    org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():81
    org.apache.drill.exec.physical.impl.BaseRootExec.next():94
    org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():257
    org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():251
    java.security.AccessController.doPrivileged():-2
    javax.security.auth.Subject.doAs():422
    org.apache.hadoop.security.UserGroupInformation.doAs():1657
    org.apache.drill.exec.work.fragment.FragmentExecutor.run():251
    org.apache.drill.common.SelfCleaningRunnable.run():38
    java.util.concurrent.ThreadPoolExecutor.runWorker():1142
    java.util.concurrent.ThreadPoolExecutor$Worker.run():617
    java.lang.Thread.run():744 (state=,code=0)
 
 
Here, I am trying to query a multi-dimensional array, which is not straight-forward.

(I set the error messages to be verbose using  SET `exec.errors.verbose` = true;
 above).
 
The commonly suggested options to query multi-dimensional arrays are:

1. Using the array indexes in the select query: This is impractical. I do not know how many elements I would have in this geojson - the coordinates. It may be millions or as low as 3.
2. Flatten keyword: I am using Drill on top of Mongo - and finding an interesting case where Drill outperforms certain queries in a distributed execution than just using Mongo. Using Flatten basically kills all the performance benefits I have with Drill otherwise. Flatten is just plain expensive operation for the scale of my data (around 48 GB. But I can split them into a few GB each).
 
This is a known limitation of Drill. However, this significantly reduces its usability, as the proposed workarounds are either impractical or inefficient.
Read full post »

Thursday, May 11, 2017

Apache OpenOffice 4 0 1 Free Download

Apache OpenOffice 4 0 1 Free Download


Apache OpenOffice 4.0.1
Rating: 4.5 - ?3,733 votes - ?Free
Apache OpenOffice is comprised of six personal productivity applications: a word processor (and its web-authoring component), spreadsheet, presentation graphics, drawing, equation editor, and database. OpenOffice is released on Windows, Solaris, Linux and Macintosh operation systems, with more communities joining, including a mature FreeBSD port. OpenOffice is localized, supporting over 110 languages worldwide.

Great software
OpenOffice.org is the result of over twenty years software engineering. Designed from the start as a single piece of software, it has a consistency other products cannot match. A completely open development process means that anyone can report bugs, request new features, or enhance the software.
Easy to use
OpenOffice.org is easy to learn, and if youre already using another office software package, youll take to OpenOffice.org straight away. Our world-wide native-language community means that OpenOffice.org is probably available and supported in your own language.
... And its free
Best of all, OpenOffice.org can be downloaded and used entirely free of any licence fees. OpenOffice.org is released under the LGPL licence. This means you may use it for any purpose - domestic, commercial, educational, public administration.
Official URL : http://openoffice.apache.org 

Screenshots:
Apache OpenOffice 4.0.1 Free Download
Apache OpenOffice 4.0.1 Free Download


Read full post »

Wednesday, May 10, 2017

Apache Spark Design Patterns Using Scala apache spark Series 1 The word count

Apache Spark Design Patterns Using Scala apache spark Series 1 The word count


A simple word count using scala in Spark
Simple word count example - Click to see code
There are many limitations in the above code The objective is to count words in the post, however the Posts.xml has lot of meta-data like OwnerUserId,Title,Tags etc..The info we need is in the Body.
The missing logic is
1) Count words in the Body
2) Error handling
3) Data clean up - we don�t count single quotes, special characters This example uses case classes and xml parsing which in in-built Scala.
Enhanced word count example - Click to see code
Read full post »

Wednesday, May 3, 2017

Apache AH0058 Could not reliably determine the servers fully qualified domain name

Apache AH0058 Could not reliably determine the servers fully qualified domain name



In new version of apache2 you just following command like this:

sudo nano /etc/apache2/apache2.conf
 
 Add the following new line end of file:
 
ServerName localhost

Then restart apache2:
 
sudo nano service apache restart

Its done.
Read full post »

Sunday, April 30, 2017

Apache Spark Design Patterns Using Scala 1 The Setup

Apache Spark Design Patterns Using Scala 1 The Setup


The Hardware and Software stack used  

Spark version 1.2.0
Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_71)

scala -version
Scala code runner version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

uname -a
Linux SERVER 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/redhat-release
Fedora release 20 (Heisenbug)

Data files used
8.0G Sep 18 03:06 Comments.xml
29G Sep 18 04:34 Posts.xml
1.8G Sep 23 02:01 stackoverflow.com-Comments.7z
5.8G Sep 27 01:26 stackoverflow.com-Posts.7z
101M Sep 23 21:49 stackoverflow.com-Users.7z
895M Sep 18 04:36 Users.xml
cat /proc/cpuinfo -Click to see details
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
stepping        : 10
microcode       : 0xa0b
cpu MHz         : 1998.000
cache size      : 6144 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips        : 5985.62
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
stepping        : 10
microcode       : 0xa0b
cpu MHz         : 1998.000
cache size      : 6144 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips        : 5985.62
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Read full post »

Friday, April 21, 2017

Apache PhotArk M2 incubating released

Apache PhotArk M2 incubating released


The Apache PhotArk team is pleased to announce the release of Apache PhotArk M2-incubating.

Apache PhotArk will be a complete open source photo gallery application including a content repository for the images, a display piece, an access control layer, and upload capabilities. The idea is to have a rigid design for the content repository with a very flexible display piece. The images in the content repository will be protected with granular access control.

PhotArk gallery currently allows you define and manage a set of albums hosted local into the content repository and provides a default web UI for album navigation. PhotArk also supports creating and deploying your own photo gallery into Google AppEngine cloud infrastructure.

For full details about the release and to download the distributions please go to:

http://incubator.apache.org/photark/photark-downloads.html

Apache PhotArk welcomes your help. Any contribution, including code, testing, contributions to the documentation, or bug reporting is always appreciated. For more information on how to get involved in
Apache PhotArk visit the website at:

http://incubator.apache.org/photark/

Thank you for your interest in Apache PhotArk!


The Apache PhotArk Team.
Read full post »

Friday, April 7, 2017

Apache BarCamp Colombo

Apache BarCamp Colombo



We just had a wonderful Apache BarCamp here in Colombo at the UCSC Auditorium. The main motivation behind this activity is to promote open source contribution and give an inside into "Apache Way" of software development. Here Im sharing some bits and pieces that stick to my mind.

The session kicked off with an excellent keynote by Dr. Sanjiva Weerawarana, where he was talking on the interesting point on how Sri lanka eventually became the third largest contributor to Apache Software Foundation (ASF). There he mentioned how they initiated the first ever Sri Lankan open source development at a UCSC lab with four C++ programmers and how they were able to come up with AxisC++ which was then been shipped by IBM.

Following Sanjiva, Ross Gardler took the floor and went on explaining �The Apache Way�, from what ASF is and how we could start and become a long term contributor. He clarified all important small words thats binds ASF like, Meritocracy where the action should speak louder than words, Lazy Consensus where �when you are convinced that you know what the community would like to see happening you can simply assume that you already have its support unless someone says otherwise� and the use of -1s where one should be opposing the arguments with valid points.

The final key note was by Nick Burch, who did a wonderful job sharing his experience on what a pain he went through to apply his first patch, explaining how open source communities work and why we should not take things personally when they did not apply your patch or response to your queries. He gave a strong point on how developers might be busy on some other projects and in open source if you want things to happen the way you want you have to "Just F****** Do It" (JFDI). He ended up his great talk with the final touch by saying how open source development could be very fun and how it might even end up as an addiction.

With all these three key notes we too had two other sessions where in one, Sagara Gunathunga was presenting they key steps that you will need when you "Find your way to Apache contribution" by giving some clear idea for all newbies to get a kickoff start.

Finally we had an interesting session on  "How to prepare to Google Summer of Code 2012 with Apache projects" motivating young undergraduates to take off the fear of open source and accept the challenge on doing GSOC 2012! Thanks Pradeeban for presiding the sessions and Nirmal and Eranda for sharing your experience with me to all the enthusiastic ordinance.

We thank WSO2, Vertusa, ASF and UCSC for your help in sponsoring this great event.



Read full post »
 

Copyright © Video game tester Design by Free CSS Templates | Blogger Theme by BTDesigner | Powered by Blogger