OK, the title is a bit misleading I suppose, but only because I'm not really sure how to condense down what I'm looking for.
Currently, I have my own personal site that I've built which rests on a CMS that I also built. I wasn't really interested in blogging when I started the site (it was mainly to showcase my Android apps), so I only added basic 'blogging' features like posting news items and such.
As of late, however, I have taken a keen interest in blogging, and would like to pursue it on my website. The issue I'm having is that I don't particularly want to invest the time it would take to expand upon my CMS to include things like archives, comments, search, and all of the other various blogging-related features that are standard.
So what I'm looking for is a blogging engine that I can plug into my existing site framework. I have found tons of services that are platforms that you build on top of (i.e Wordpress, Chyrp, and TextPattern just to name a few) but that's not what I want. I'm looking for something that I integrate into my site, not something I integrate my site into (if that makes sense).
So you want a third-party application that can plug in to a proprietary custom-built blogging/CMS framework? Unless you patterned your framework after some other publicly available and widely used framework then I think it is very unlikely that such a thing exists.
I'd suggest maybe seeing if there's a way to come up with a database migration script that will take the data that your custom framework is using and translate it into something that an existing blogging platform can understand. Then just completely replace your custom platform with the prebuilt one.
Related
If I need to build a website that allows users to update their content (personal information), and I also need to create a login system (accounts for users), does it make sense to build this from scratch using HTML/PHP, or should I go with something like Drupal or Wordpress? I don't know too much HTML/CSS/PHP but I've never touched a CMS like Drupal before.
Thanks for the advice!
well if you don't know much about those subjects then i'd suggest that you use use wordpress. it extremely easy for majority of people to pick up, has oodles of plug-ins, and tons of support.
also, in my experience i've found drupal to be a tad bit steep for most people to pick up.
Use a CMS. Developing anything beyond very basic functionality from scratch is generally a waste of time and is likely to result in an insecure system that doesn't easily scale or allow you to add additional functionality.
Both Wordpress and Drupal will do what you describe, I prefer Drupal as a more flexible and secure platform.
I'm somewhat unclear on what you are trying to accomplish but if you are looking to give users the ability to sign up for the website and attach additional information to their profile I'd use the Profile 2 module with Drupal to build out the extra profile fields you'd like to track.
I'm not as familiar with the Wordpress module landscape but a quick search finds the Cimy User Extra Fields plugin which appears to have similar functionality.
You can use buddypress framework which runs above wordpress. It comes with built in capabilities to create a social networking type web site. No need to do coding and theming. Lot of themes and plugins are available in internet to extend its default look and behaviour. Wordpress is very easy to use and you can implement addons as plugins to extend its capability. Buddypress is an addon for wordpress to create community websites. Also many video tutorials are there for learning wordpess development. Visit wordpress.org and buddypress.org
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks
Since we are ambitiously aiming to be big, scalability is important, and so are globalization features. Since we are starting out without funding, price/performance and cost of licences/hardware is important. We definitely want to bring AJAX well present in the web interface. But apart from these, there's no further criteria I can come up with.
I'm most experienced with C#/ASP.net, PHP and Java, in that order, but don't turn down other languages (Ruby, Python, Scala, etc.).
How can we determine from the jungle of frameworks the one that suits best our goal?
What other questions should we be asking ourselves?
Reference material: articles, book recommendations, websites, etc.?
For me, the most important things to consider were:
Fantastic lead developers who I trust to keep working on the project.
Googling a question brings a lot of good answers.
Most importantly, I have to like the way the code flows.
Edit: Also they have to be anal about coding standards. If there is inconsistency, I get very annoyed.
Those 3 points brought me to Symfony. It is always using the latest cutting edge features of the latest PHP version. Symfony 2.0 is using namespaces before any other framework.
Two of your points were:
i18n - there is great support for it (helps that the company behind it is French, so i18n is a first class citizen).
Scales - Yahoo Answers and Vimeo use Symfony and contribute back code. If those guys can scale Symfony to 100 million users, you can too :)
It all depends on the type of project you will be developing.
Are you building a web application or a heavy content website or something else?
You also mix up programming languages with frameworks. The frameworks for PHP that I know are: CakePHP, CodeIgnitor, Zend and Symfony. For an out-of-the-box heavy content website I would suggest Drupal or Expression Engine.
It seems you won't be developing yourself. In that case I would determine the cost and availability of programmers and how widely the framework is supported and by who it is backed. The Zend framework is backed by the guys behind PHP, while CodeIgnitor is backed by the guys behind Expression Engine. Drupal has professional support packages,...
IMHO, for something that will have a lot of users, go for a compiled language.
If you don't try it, you will not know. So, I'd say do a small project in each of the frameworks you are seriously thinking about. I would prepare myself to do a lot of testing if it's something I'll be maintaining for some years. It's better to start off on the right foor than to get half way through a project only to realize you took the wrong path. There may be some requirements that end your search. For example, your servers' OS, a framework feature, or scalability. If you lay out your software plans and requirements, you probably will have very little left to choose from - unless your project really is quite generic or simple.
I am very curious about what you think is the best approach for people that want to start webdevelopment. I'm now talking about people that finished their education and so want to start from scratch.
I still have questions like:
Where do you start?
What software gets involved in webdevelopment?
What tools / setup would you recommend?
Offcourse i'm interested to hear alot more then only the answers to those three questions.
I am not writing this to get a load of people react on my post, i am trully interested in knowing how much work and money it will cost a webdeveloper when starting from scratch.
I hope to get a clear view on how to approach and to maybe hear some best practices.
Well one thing's for sure, education isn't finished! There's a whole lot to learn, and the more we learn the more we seem to need to learn.
If you're really starting from having no programming background whatsoever then I think you'd be advised to take a staged approach. For example:
1). A web page with a few different text formats and pictures and colours. Here you're just learning HTML. For that any browser and a notepad editor would do, but probably a tool such as Eclipse that gives some HTML editing capability would help.
2). More adaptive HTML - stylesheets that let you change appearance without changing all the html. So that's CSS.
3). Using the above, improve your designs. There are loads of formatting tricks good web sites use and you'll need to learn those.
Note that by now we've done a lot of study and we have not actually written any programs!
4). Dynamic web pages. Now we move to the programming side, rather than just writing some HTML files write a program that delivers the HTML and in some way changes the content. Starting with something really simple such as including "today's date is ..." on the page. For that You would need to pick a server development technology such as Ruby/Rails or PHP or Java/JSP ... You'll get a lot of different advise about "best" for this.
5). Now you can start to work on accepting input from the user and doing something with it so that useful work gets done. Things such as databases start to become important.
There's a whole load more after that, JavaScript and so on. An experienced programmer can pick up this kind of stuff quite quickly, if you've never done any programming at all then you will need to be prepared to take a while before you can get to the level you probably target. I think the key is to acknowledge that a great commercial web site reflects a lot of collective wisdom and skill picked up over many years, and probably is the result of a multi-disciplinary team working together. For one person to match that is a big ask. For one person to produce something nice and useful is more practical, but still does need a lot of different skills. It's quite reasonable to specilaise in a subset of the skills. For example, good visual designers write little or no code but are highly valuable.
you need:
a browser, eg. FireFox, Internet Explorer. A webdeveloper toolbar might also be useful.
a webserver, eg. Apache, Tomcat, IIS
a programming environment, eg. Php or ASP.NET
a development tool, eg. Notepad, Notepad++, Visual Studio .NET, Eclipse
most of the times a database, eg. SQL Server, mySQL
I'd say it depends what you want them to master: the technologies only (up to which skill level ?) or the whole software engineering behind a web project
A sample and fast technologies learning tree could be:
1) HTML
2) CSS
3) HTTP
4) Server side programming (PHP ?): programming concepts, interacting with HTML/CSS, then PHP API
5) Databases (start simply with MySQL for instance) + SQL (CRUD with Joins, Subselect, Indexes, Views and Transactions)
6) Client side programming (JavaScript first then Ajax)
7) A web framework (ZEND ? cake ?) and a good IDE (lots of...)
Full-time learning those technologies requires at least 1.5 year , based on the experience I have with my students and people must be trained mainly on concrete projects.
Then people should learn software engineering (cf link text) covering at least
- software requirements
- software design
- software construction
- software testing
I think people can have useful experience in this software engineering tree in 1 year and can (should) combine learning technologies with learning software engineering.
For training someone from scratch (technologies + software engineering) I'd say a least 2 years if working on at least three 6-month projects
This answer is Microsoft specific.
For starters you'll need an editor, a (optional) database and a few starting points.
Microsoft supplies most of these for free: you can download the Visual Studio Webdeveloper 2008 Express Edition for free, this includes most of the stuff you'll need.
If you plan on developing database driven websites, and who isn't, you might want to use the free SQL Server 2008 Express Edition
When you have the tools setup it's time to download some samples and see see how they work. Again Microsoft supplies some for free. You can check out tutorials and samples at their Asp.Net site.
When you are ready for some more advanced stuff, check out ASP.NET MVC, again at Microsoft.
With these tools and examples you should be able to get started.
I just want to add that you will most likely also need Photoshop or other tool to create the graphics for your web sites.
In spite of java/.net/php,the HTML,CSS,JavaScript are the basic web development toolkit.
Get a job as a junior developer that will put you on a project that is developing a web application. I personally think it should involve one of the two most established platforms, Java or .Net. I know some will disagree, but these are good foundations to branch into other tech platforms later.
Make sure you open an IDE (e.g. Visual Studio or Eclipse) everyday and code something. If not, find a new job immediately.
Read religiously at night. Start with "Code Complete", then move on to other books.
Learn the fundamental technologies of the World Wide Web:
HTTP
HTML
CSS
JavaScript
DNS, URL's
Good luck and happy travels!!
you need:
a google chrome . This provide you some advantage like inspect option. A webdeveloper toolbar might also be useful.
2. Html, Css, JavaScript are the basic language that you should be know
a programming environment, eg. Php or ASP.NET is needed for storing data and making login type page
a Visual Code Studio is needed for coding. This provide you emmet facilities that suggest you while you are coding
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I'm biting the bullet and becoming a Web Designer, there are just too many good opportunities out there. I'm a professional SW engineer, so I want approach this correctly. So far I'm fairly good at HTML/CSS/Javascript all completely by hand. I'm also good with jQuery and Django with mySql. I've made some cool sites but it takes TOO LONG if I want to do this for many sites.
Here is my question: Do I learn a CMS really well and use it (and be stuck with it) or do I spend that time developing some reusable HTML/CSS templates and do everything by hand?
So far my CMS experience is that there is overhead setting it up, and it you want a lot of customization you're doing CSS anyway.
If I go the CMS route -- which one?
What is the "best method" for Web Dev? I intend on creating a very diverse array of sites as well...
Thanks!!!
The future of web publishing is clearly in Content Management Systems for everything larger than a small personal site. People are not buying sites anymore for which they have to pay a professional every time a paragraph needs changing.
Make sure you know your HTML, CSS, and Javascript, but get familiar with one or more CMS's on the market, preferably one of the big ones that get you a big community, and the advantage of a widely known standard that it is easy to find people for. Learn how to customize it, how to build templates for it quickly and effectively.
One of the biggest flagships in enterprise-level CMS'es is certainly Drupal. From personal experience, I also know Joomla, but I'm not sure whether I'd recommend it to get started with - it tends to be a bit dirty on the code side sometimes. WordPress is successfully used as a CMS by many.
Look around on SO what systems people are happy with; if you want to get to know the concept of a certain CMS check out openSourceCMS who provide live demos of many CMS'es. There are also very robust commercial products out there that are better maintained than the open source projects.
There isn't a single correct answer for this IMHO. Basically, it comes down to:
Use the best tool for the job.
The best thing you can do for yourself is learn about what tools are available, and what they are capable of. Try to match each one to a scenario you think might be particularly suitable for a given solution.
You will find that if you invest a lot of time in learning something like Python / Django you will be able to create just about any site you can imagine, but then you might find that if all your client requires is a simple, mostly static company info site that something like Drupal might be more appropriate.
The baseline technologies like (X)HTML, JavaScript, CSS and SQL are used across all of them, so knowing these tools well in a generic context is also extremely valuable.
A truly well-equipped toolbelt is invaluable.
If you need a little number of pages, without any dynamics, render your site with your favorite language and numerous templates to html files and don't deal with anything but www-server.
Once you need a rather big site - use a tool which you already know well. (I using django and happy with it).
When a site is really huge - make your own CMS. But at first have a practice with tool like django. Until you know how it works - try not to deal with big projects at all.
I can advice to use statically typed language for anything, but i'm sure that you know benefits and caveats.
Python and Django is suitable almost for anything.
I am a Web Designer and recently I began using Wordpress. I've found it great so far, once I have my site ready in xHTML and CSS it only takes me a couple of hours to make the content editable.
I have also created about 3-5 themes my self, I've found creating Child Themes and using Themes like Twenty Ten as a parent, so I can use their functions etc.
I would highly suggest that you look into wordpress, especially if you want to speed up the process for creating websites.
Those two choices aren't mutually exclusive.
You should build reusable code regardless of which option you choose. With a CMS, there will already have some design decisions made for you of course, but I find myself building APIs and interfaces using Drupal all the time. In fact it's a measurement of quality.
There are also some frameworks that you might like too that will let you custom build and increase productivity. See The Zend PHP framework, Ruby on Rails, Kohana, Nanoc and the 960 CSS/HTML grid. You could say they are the best of both worlds!
If you are going to implement web sites for the general public, I'll go with Joomla. I managed to implement 9 websites in one year with this CMS. In my opinion, it is important to know PHP, HTML, CSS and Javascript pretty well before using Joomla (which you seem to know), or any other open source CMS for that matter. This way, you will be able to customize all aspects of the website (both frontend and backend) with ease. For example, when I don't find a plugin which does what I need, I just create the plugin myself.
However, if your aim is more on Web Applications rather than web sites, I'd go with ASP.NET and ExtJS, which seems to be today's trend for web applications since you will be combining the power of ASP.NET with the power of AJAX (ExtJs).
IMO, Python is more targeted for very large and complex projects (look at Google or Amazon).
I want to Switch from Web Designer to Front End Developer or web developer PHP, which skill should I get , Is it Easy to switch from Designer to Developer. I have two years Exp. in Web Designing. Please suggest.
Or should i stick to the Designing what is the Next BIG thing for Designer after DIV layout.
My Current Roles
Conversion PSD to HTML,
fixing Bugs in Different Browsers ,
Strong knowledge of HTML and CSS. I want to Go with the Open source Programming like PHP and MySQL
On the design side you could learn Flash or Silverlight. UX and UI design are hot right now.
On the programming side, are you good at client side programming? JavaScript AJAX etc.
#wazdesign, I didn't come from a design background like you, but I found my niche in Front-End Web Development none-the-less.
I started with Standards-based HTML and CSS and then started working back in the day on the Views and Helper functions in MVC frameworks (with a good team doing the controllers, models etc.)
Ask a competent Web Developer to give you a basic web-server architecture and process demo. Understand how data from the DB gets onto your user's pages, and all the checkpoints the data goes thru on the way.
Once you understand the principles, you can pretty much work with any technology after tooling up with the syntax.
I've listed some terms to research below that are tech-agnostic. I can't help you with the PHP side of things :)
Some books worth reading:
The Design of Everyday things - Don Norman
Don't make me think - Steve Krug
Anything by Luke Wroblewski such as Web Form Design
High Performance Websites (O'Reilly)
Some terms to research:
Interaction Design
MVC Frameworks
Templating systems
HTTP
User Interface
Some tools to use:
Firebug
YSlow for Firebug
I think you're making a good move here. To me you're showing initiative that you want to grow and learn new things. My advice would be that you learn how to program first. The problem with a programming language like PHP is mostly that it is really accessible, meaning that it's is easy to pick-up, copy and paste some code etc. PHP is notorious for it's cut & past scripting mentality but in the hands of a good programmer it is just as good a programming language as any other programming language out there.
So, to avoid becoming a cut & paste PHP programmer learn how to program first. Learn about variables, functions, control statements, algorithms, Object Oriented programming, the technology of the web etc. I would recommend that you pick a book and start learning the basics first before diving in the deep end. This way you will lay a good foundation for yourself and you can avoid becoming a cut & paste programmer.
Good luck!
I moved from "Web Designer" to "User Experience / User Interface Designer" to "Application Architect". Each role built on the next fairly well and no direct programming knowledge was necessarily required, though I think my lack of programming skills as an Architect is not the norm.
I realize you asked about moving into a Developer role, but I thought I'd offer this as an alternative. The market for User Experience people seems to be strong right now, and it's likely that you already have many of the skills required - developing wireframes, designing application workflow, information architecture, etc.
Designer to developer
I've thought a lot about this and wrote an article about the designers mutating into developers for PerlBuzz that covers a lot of the necessary ground (albeit from a Perl the point of view).
The main issues are:
understand why separating: programming code, visual markup, and data is a good thing
learn a bit about MVC, frameworks and HTML templates
learn enough Unix (at least permissions and paths) to get by and understand the command line
try (say) a simple Ruby framework like Sinatra or Ramaze. Camping is great for learning MVC (everything in one small file) but lacks a definitive version at the moment
alternatively, spend a day getting the Python framework Django up and running - it's pretty hot at the moment, Python is a good first language, spares you the SQL, is under very active development, and the extensive documentation is all online
play with JQuery or another Javascript library for client-side goodness
PHP is fine when written well and good for learning how to construct HTML templates, and Symfony seems like a sound framework, but avoid starting off by hacking (say) WordPress or Joomla. You'll only learn... well, how to hack WordPress or Joomla, whereas the real leap is in learning to program.
Some basic requirement:
Need to have strong aptitude
Understand the basics of programming in any language. (C/C++ will be good option to start)
For web development, you should be good in html and javascript along with the backend (PHP, ASP.NET etc.)