Developing another blog application for learning purpose - blogs

I am thinking of developing a blog application. I understand that this has already been done many times. But i like do for learning purpose.
I like to know for this kind of blog application.
What are the desired features to develop?

Some interesting features that you may want to implement are (in no particular order):
WYSIWYG editor (use one of the available like TinyMCE) for writing the posts. This is interesting for the sanitisation of input (you may/may not want your posters to be able to use certain HTML tags for instance).
upload system for images/files that you want to include in posts
support of comments with possibility of moderation
voting system for the posts
"share me" system (note in Google Reader, share on FaceBook, StumbleUpon etc etc.) (but note this :D :D)
support of tags
automatic suggestion of tags depending on the post text/title
support for multiple users with different privileges. For instance you may have various types of users (admins, posters, guests) with different privileges: admins can modify all the posts, posters only their own posts, guest can only read. Other things may include different maximum upload size for the images etc etc
implementation of linkbacks (trackbacks / pingbacks / refbacks)
I guess this is already plenty of work! Enjoy!!!

First, see the blog-in-15-minutes screencast in Ruby on Rails. This shows you the basic components and features and how to implement them, even if you do not want to use Rails.

Related

Restrict access to a MediaWiki page to specific users

I have some pages which I want to restrict access to specific users, i.e, I want user A and user B only to view this page. How can this be done? Do I need additional extensions or it can be done through LocalSettings.php for example?
You could try this extension: Extension:AccessControl. I've not deployed it to my wiki sites, but a quick read of the pages suggests it might be what you're looking for.
Note though that as Tgr covered in the comments above, Mediawiki is not intended to operate like this, so the extension could be fundamentally flawed in its implementation. Practise due diligence if you try to deploy any 3rd party extensions. Alternatively, look into alternative CMSs that handle access control as a core feature.

What is allowed in in-app purchases

I would like to have some info about apple's in-app purchases option.
I can't seem to find any place where they are explaining what is actually allowed. Becaus i wanted to make a digital bookstore with interactive books in asctionscript and offer the user interactive books (seperate swf files) via in-app purchases but apparently it is not allowed to have any code in your swf file, so that option is out of the window (btw if anyone knows of another option instead of swf files, please let me know).
Then have have thought of maybe starting in cocos2d but again i have no idea how i would distribute separate interactive books to the users. What are the options here?
So my questions are: what is allowed with in-app purchase, how can i offer interactive books (with posibility to click on elements and view animations etc) through in-app purchases.
And secondly and more important:
Would it be possible to do it via as3.0? Preferably i would like to do it through actionscript but can anyone tell me if its possible? Can i offer the user interactive books with elements that are pressable and animations etc through in-app purchases? And having all the books inside the application and unlocking them is not an option. I want to be able to provide books separatly.
Definitely on the right track,
I think if you are looking to do an animated books series or something that's more interactive that a simple text format you should be fine using In-App Purchases for this. You'll only get in trouble if you're duplicating something iBooks can already provide.
You'll need an ANE to give you access to the InApp Purchases API from AS3, there are a few out there and I'll shamelessly plug mine:
http://distriqt.com/native-extensions#in-app-purchase
The major problem you'll have is actually distributing the additional content, as you may not be able to load in a swf and play it in a compiled iOS AIR application as you would a normal flash/AIR application. You'll have to do some research and see if you can create a player that just loads images and animation sequences (in xml or other).
Good luck
1) You can't play swf files on the iPhone. Not without converting them to HTML5 or video. Which probably makes them non-interactive (not sure about HTML5).
2) Downloading any executable code to an iOS device is out of the question. There are some gray areas, for example downloaded Lua scripts which only contain data but due to their nature are executable code. It's a risk to do something like that, instead of just downloading XML or pure text/binary files.
3) Apple never tells you exactly what is allowed. They tell you what is not allowed, and even there they remain vague. There are always some gray areas and Apple reserves the right to define whether something in the grey area is acceptable to them or not. If you think your app is in the gray area, you need to have a backup plan in case Apple won't like it, or removes the app because they didn't initially find something wrong with it but later changed their mind.
4) Read the iOS Developer Program License Agreement and the App Store Review Guidelines. You may need to re-read some sentences because it's somewhat lawyer speak, though not really that hard to understand.
5) There are no guarantees. Best option: look at apps like yours and see if you can find your payment model implemented by other apps. If you find several such apps, it's most likely ok to do that. If you can't find any app that does something even remotely like you want to do it, beware.
6) I think you're on the wrong path. Use iBooks. Problem solved.

How can web pages be coded so that search engines assign a higher page rank to the latest version?

I frequently use Google to search for .NET documentation, and invariably, the highest ranked pages are for old versions of the .NET framework.
For example, I just did a Google search for "c# extern".
The first result was for Visual Studio 2005.
The second result was for Visual Studio .NET 2003.
I went through several pages and never did come across the Visual Studio 2010 page.
Interestingly, I tried the same search on Bing, Microsoft's own search engine, and Visual Studio 2005 was still the first hit. However, the second hit was the one I was looking for (Visual Studio 2010).
I realize that many documentation pages on MSDN have a menu at the top that allows you to switch versions, but I don't think it should be necessary to do this. There should be an HTML way to convince search engines that two pages are very similar, and one is newer/more relevant than the other.
Is there anything that can be done in HTML to force a documentation page for a more recent version to get a higher page rank than an essentially equivalent page for an older version?
You can't tell Google what page is preferred
(That's basically the answer to your question)
If someone googles c# extern, that person will get the most relevant pages calculated by googles algorithms. It will differ from user to user and where you are located, but far most how links all over the internet are directed. You can not change this with on-page optimization.
Canonical addresses mentioned by Wander Nauta is not suppose to be used in this manner. We use canonical addresses basically if we wish to tell Google or any other bot that two or more pages are the same. This is not what you where asking for. It would remove the older versions from indexing entirely in favor of the page addressed as the canonical address.
Quoted from http://support.google.com/webmasters/bin/answer.py?hl=en&answer=139394
Of all these pages with identical content, this page is the most useful. Please prioritize it in search results.
...
The rel="canonical" attribute should be used only to specify the preferred version of many pages with identical content...
To lead the client correct I would use, as you already described, a good web interface on the page so that the client easily can find what he or she is looking for.
Google also offers sitelinks for your search results that may or may not appear. I would say this is where you come closest to be able to direct your clients to the most relevant page by your standards on the search page.
Quoted from https://support.google.com/webmasters/bin/answer.py?hl=en&answer=47334
...sitelinks, are meant to help users navigate your site. Our systems analyze the link structure of your site to find shortcuts that will save users time and allow them to quickly find the information they're looking for.
In Googles Webmaster Tools you have an option where you can optimize thees links, at least somewhat.
Quoted from Googles Webmaster Tools
Sitelinks are automatically generated links that may appear under your site's search results. ...
If you don't want a page to appear as a sitelink, you can demote it.
Update
You could theoretically specify what version something on your page is in with "microdata" or similar. By doing this you have at least told the bots that there are two items on this site with the same name but in different versions. I don't think this will have any effect in witch order your sites will be listed in the search result thought. But we never know what the future holds right?
If you check out schema.org you'll see CreativeWork has an property named "version" and SoftwareApplication has one named "softwareVersion".
Google uses microdata to create rich snippets. I haven't heard that Google uses it for anything else but that does of course not mean it isn't so.
Google allows you to specify a canonical address for a specific resource, i.e. the version of a given page you want Google to prioritize. It's pretty easy to use.
However, hints like these are always suggestions. That is, the search engine is free to ignore them, if they support them at all.
For that you would need to know the actual algorithms. I'm guessing that most search engines do a comparison on how well the page matches the search but then also take into account the amount of hits a site gets. So say you have a 98% match with 1000 hits and a 96% match with 5000 hits. The second page may still be ranked higher.
As for what you can do, search engines are "blind" so use CSS and avoid tables for layout purposes. This will allow the engine to get a better match with your content. For a workaround with old version, you could redirect traffic coming in to the new version and then have a link to the old version on that page. Essentially setting it up so that only following that link takes you to the old page.
Since at it's core Google's search is based on links (pagerank algorithm), it would certainly help if each page of the old version linked to it's respective page on the new version. This might not solve the problem completely, but it would certainly help.

Is there a easily embeddable chat widget that allows for user to user chat?

I'm looking to add chat functionality to my site so that users of my site can chat with one another. Most chat widgets I have found online (i.e. such as the ones here) allow for chat between site administrators and users (for the purpose of customer support). As opposed to customer support, I want chat on my site to serve as an end functional feature. Is there a widget I can use to do this? I am looking for the simplest possible way to do this. Any pointers in the right direction would be helpful.
Thanks!
If this is low scale, where you aren't going to have hundreds of users, you may want to start with this solution:
http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/
The key here on the users side is the statement:
setInterval (loadLog, 2500);
This is where the users end in Javascript checks out if there is anything new every 2.5 seconds. Set it higher, and it won't check as often, but it also won't bug the server with the PHP code as often. This solution is easy to implement, but also has the weakness that if it gets too popular, your server host could get too many requests than it can handle.

What technologies are used for WYSIWYG layout/design/personalized webpage apps?

I'm trying to figure out the different skills and technologies necessary to develop webpage personalization apps that allow users to input and edit text/images/links on a webpage. About.me and Flavors.me would be the most advanced examples of what I'm talking about. Thanks in advance for any guidance.
#tim, they're database driven apps. The user enters information into a database (or Facebook profile, etc) and it's then pulled back out via a scripting language and presented on the page. The page layout is also stored in a DB and brought together with the user's profile information for what becomes the page layout you see. About.me seems to take it a step further by creating an email account that's tied to the user account.
Technology-wise, just about any back-end language could be used. Facebook is written in PHP, though they have a language-agnostic API that could be talked to from .net, java, php, etc. You'll need a database, and that probably would either be MySQL, Sql Server or Postgres, though there are certainly others. Finally you'd probably want to make use of the API's I spoke about including Facebook, Google, LinkedIn, etc. to aggregate information the user already has entered in different locations.
Examples of this type of site are varied and all over. Mint.com does it for financials. Grooveshark will tie into facebook and others to communicate and share your music collection. Linked in will tie into others as well. Integration is actually a very lucrative segment of the programming business right now. An app that talks to others has good marketable value.