Want to learn to create Dynamic sites [closed] - programming-languages

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 3 years ago.
Improve this question
I want to create dynamic sites.. Which language should I use - PHP/Python/Perl/Ruby ??
I wanna make search engines & social networks...
Thanks...
do also refer me tutorials...

If you want to make good, well-performing search engines and social network sites, you have a lot of work ahead of you and the choice of programming language is one of the least of your concerns. Use what you're comfortable with and what has the tooling to allow you to work efficiently. If you don't know any of the languages yet, I'd recommend looking at Python and Ruby first. They have good tools (Django, Rails), and have notable performance attention dedicated to them (and with Ruby, you can run on JRuby, where you can piggyback on all of Java's performance and deployment work).
However, there are a lot bigger problems you will need to solve than your programming language.
Server architecture - web server, database, caching, replication
Code architecture - use a framework, don't repeat yourself
Social design - how does your social network operate? What are the various actions and their meanings? #1 mistake is to just replicate Facebook's decisions without thinking about what the best decision is for your domain. What works for Facebook may well not work for you - you need to think through how the site will operate.1
Search indexing - if you're building a search engine, where does your index come from? Do you use a third-party index, or do you crawl and build your own? Building the crawler will also be a lot of hard work. You may need to drop to C or C++ for parts of the crawling and indexing system if you're working in any of the languages you mentioned.
Short story: there's a lot of things to think about, and in the greater scheme your choice of language among the ones you mentioned is largely immaterial. Pick what you're comfortable with and go with it. Expect to spend a lot of time learning. It sounds like you have limited programming experience - I would recommend picking some much smaller projects and trying to make them work. And follow the advice of smart programmers - teach yourself programming in ten years.
1I'd argue that their decisions don't really work for Facebook either, but that's another story.

Related

What are the technologies that underpin scripting languages? [closed]

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 6 years ago.
Improve this question
I have to write a paper and the document given to me said the following:
"How the technologies that underpin the scripting languages and enable their integration with the Web server have changed and how they have improved the performance of Web applications".
I am somewhat lost. I can not really work out what i should write. So my question is how do you understand the sentence above given the fact that the paper in general is about the evolution of Server-Side technologies and Scripting languages? I was going to write about CGI (Common Gateway Interface) and ASP but i am not sure it is correct.
As this is my first post please forgive any mistake i did.
I'm not sure if StackOverflow is the best place for this question, but I'm going to answer it anyway. I'm not trying to give too many actual points for you to use here, but rather point you towards your own.
Deconstructing the Question
This question consists of two main parts:
How have the technologies underpinning scripting languages (and their integration with servers) changed,
How has this improved the performance of web applications.
From this, it seems that the point of the question is to identify the changes and trends in scripting languages and (possibly, from your description of the paper in general) server-side technologies, and how this has influenced web applications (and their performance).
To tackle this kind of question, there are several things I would do:
Define server-side technologies and scripting languages
Identify the recent changes between and within these two (i.e compare them with themselves and each other)
See how this has influenced web applications, referring to their performance.
Answering the Question
For all of the question points above, I would heavily suggest using examples. Examples provide real-world data (if possible) and evidence to support the arguments you are giving. For example: your examples of ASP and CGI are good, but I would also add PHP (and maybe Rails). And for scripting languages, JavaScript is the main player.
From examples, I would analyse the different uses of the two categories you defined - is there any overlap between scripting languages and server-side languages and how has this changed. Throughout this, the question suggests that the main emphasis is change.
Now for the final part: I suggest you define both web applications and performance (hint: there is more than one type of performance), again using examples. As said, the question emphasises change and so should your examples. For instance, Facebook mostly operates on the server-side, using PHP, whereas Netflix uses AngularJS and operates more on the client-side - time is a big component here: Facebook was released much earlier, but most websites not seem to be going Netflix's way - what does this say about server-side languages in general? Why has this happened? Has this improved web applications?
Throughout this, I would suggest using any data and resources that you can find: usage statistics always make for good graphs (e.g), but always cite properly and thoroughly if the content is not wholly yours.

Confused in with real time web server choice [closed]

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 8 years ago.
Improve this question
I want to develop real time web application like chatting & real time message conversion. I searched the internet and got confused with few technology
erlang ejabberd nodejs openfire
Right now im in java domain but won't hesitate to learn new things. So can anyone explain what is these technology in a very simple words and what technology i will need to achieve my target ? Does all these do the same thing ? and new technology suggestion from your side will be appriciated.
These are entirely different things :)
At the lowest level you have:
Erlang/OTP is piece of technology, that lets you built low latency, fault tolerant systems. It includes Erlang programming language, Erlang VM and OTP, which is set of patterns, libraries and good practices for writing those systems.
nodejs is a platform, that lets you code JavaScript on server side. It makes your life a little bit easier, when dealing with events, but Erlang is still better saving you from callback hell with actors and messages between them.
At the higher level you have xmpp:
xmpp is eXtensible Messaging and Presence Protocol. This is great for implementing chats like facebook chat, but because it is extensible, you can use it for any kind of messaging.
ejabberd is implementation of xmpp in erlang. There is also fork of ejabberd called MongooseIM. Those will give you great start at developing your messaging application. They implement not only basic xmpp, but also couple of extensions (called xeps in xmpp community).
openfire is solution based on xmpp, so it is even higher level. For chatting and message conversion, this might be overkill, but it depends on your specific needs.
Totally an opinion post:
Erlang: Doing this from scratch with yaws and Erlang is the most straightforward way (its even a code sample in "Programming Erlang" 2nd ed.).
Ejabberd is famously undocumented (and overkill for most webchat services), but it and its better documented/saner cousin (MongooseIM) are robust and already written.
node.js is a cosmic joke played on monolingual ex-frontend web developers.
I've never heard of openfire.
None of these things are bad to learn -- but that's because nothing is ever bad to learn (though some things aren't worth the time you would spend learning them).
The basic problem, I think, is that your goal is probably more broad than you realize, at least in terms of methods by which you can achieve the goal of "develop a web-based chat and communication service". There are a hundred web servers out there, each with its own way of doing active content service, each with a hundred more back-end plugins to a thousand more chat/conversation/comments/blather service frameworks. Any given "technology stack" will often involve a dozen languages throughout it (consider service pages written in PHP from an Apache server which proxies to a Tomcat webserver for pluggable content which calls out to a tiny scheme chat service which stores data in Postgres...).
The situation with most web stacks is, in my opinion, laughable. That is at the core of the Node.js idea, actually: pick a language most people know and stick with it throughout. The problem there is that not every language is well suited to every task (or any task...). But the basic idea that cutting the web tech clutter down is quite sound.
That said, I sincerely think the easiest place to get started is with a relatively tiny language with a small, hyper-knowledgable community around it, and focus on doing everything you can in that language. For this particular task (live web comms) I prefer Erlang and Yaws, writing the service from scratch until some element of it obviously is in need of some pre-written framework treatment. (That is not the right choice of tools for everything, though, so keep an open mind and learn to hate every language, at least a little -- they all suck, just some less than others.)

Pre-requsites for cognos [closed]

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 3 years ago.
Improve this question
Can anybody guide me to know what is the basics required to learn COGNOS, whether a person who has an MBA or MIS is trainable even without any basic training on reporting tools?
To effectively learn COGNOS' reporting tools, you should know some SQL (at the bare minimum, its syntax) and DBMS basics. You will also use some "programming" logic such as if/else statements and case statements.
More importantly, you need an intimate familiarity with the data you are reporting against, as you will need to verify your reports once you start building them.
I strongly suggest downloading the COGNOS trial with sample data and going through the install guide. Get it running in your local environment and do some testing there. COGNOS is best consumed hands-on.
Your education level has nothing to do with how you are able to comprehend and utilize a web application. I am nowhere near an MBA or MIS, and the majority of issues I have with COGNOS are related to how it aggregates data.
Javascript (jQuery, preferably) is pretty much a necessary to get more usable interfaces, so knowing that helps a lot too.
Knowing Java can be useful if you are required to work with the SDK. As far as SQL make sure your familiar with joins and different functions of the dialect of database you are using. It is also important to have a basic understanding of HTTP because your often configuring the environment.
Cognos is a powerful tool, so once you have all configured the report authoring is fairly simple. However, based on my experience I would recommend to have the following skills:
1. SQL. Although you can develop lot of functionality in the Framework Manager or even in Report Studio, mapping queries from DB is crucial.
2. HTML. Cognos outputs are rendered in HTML so it would help basic skills here. Besides, the layout uses lot of tables so make sure you understand those concepts well.
3. CSS. Behind the scenes, Cognos uses lots of CSS to styles, themes and defaults. You can even create custom themes. If you're going for a big project, make sure to backup the CSS files and modify everything from there. It is a hardache to modify styles within Report Studio as any minor change would be cumbersome.
If you master these skills, learning Cognos is not such a painful process. Check my tutos in youtube if you like: http://youtube.com/maulazyhola, I wish I had time to write more, but they got some cool stuff that would help you.
In case anything comes up you can post it here, I would be glad to help. Cheers.

If you had to redo a site that has 150 tables and 250,000 visitors/day in any web platform, what would it be? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
If you had to redo a site that has around 150 tables and 250,000+ visitors/day in any web platform, what would your choice be and why?
Some points
The team has experienced developers
The old application is written in unrefactored PHP. It's unusable.
Much of the database is not normalized, and there are columns in the wrong spots. Many new features and the database can't support them now.
Desired goals:
Excellent and fast testing (grails is bad for this)
Good seperation of concerns (domain, controllers, views) with ability to not duplicate anything
Concise code & Elegant design - no code bloat
Flexible - we don't want to run into a leaky abstraction problem
Coding and testing are fast - it shouldn't take 1 hour to write a controller test, or we shouldn't have to spend more than 1 minute or so writing a reusable tag, for example.
Scala is on our minds, but we are having a hard time seeing how that can work as the tooling is not mature yet. We actually don't like Grails. A lot of us are used to Java/Spring/Hibernate, but are sick of the low-level nature of it and want something more expressive.
I would put together a detailed study group to analyze our choices, and see what we can use, and how it scales up to the load and tasks it must stand up to. After that, pick out like the top 5 choices for closer inspection, and see what floats with the team. Personally, I've come to like RoR over PHP.
Depending on the status of the old/current project, make sure everything is backed up and version controlled before it gets touched. Some people leave half their project un-vcs'd, or use none at all!
This is a pretty unanswerable question, because there a large number of factors that need to be taken into consideration which you haven't mentioned. For example, what are the skill sets of the developers who will be rewriting it? How is it currently implemented? Can existing code be reused? What are the performance requirements?
If it was my decision, I would choose Groovy/Grails because:
I like Groovy/Grails and know these technologies well
Offers good performance as it's built mostly on Java and mature Java libraries like Spring and Hibernate
Update
Excellent and fast testing (grails is bad for this)
I am not aware of any web framework that puts more effort into testability into Grails. It makes testing all types of artifacts (controllers, domains, services, tag libraries) very straightforward.
We actually don't like Grails
If you already know Java, Spring, and Hibernate, I find it very hard to understand why you don't like Grails.
good old php / mysql / apache on a linux environment is the most stable I've seen .I'm working since 3 year on a Asp.Net / SQL Server / IIS / Windows and only SQL server is stable, but it's really expensive so if you don't know really where you're going (about money), you better have to take care of this parameter.
And on an open environment you'll find more help, I think.

Is there a good service for checking website/server vulnerability [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
I have been asked to provide information on available techniques for assessing our current, and any future websites for security problems. the request is in the form of
Do you know of any good free one that examines for security holes?
I think our data security is probably worth a small amount of upfront spend so any non-free methods would be appreciated too.
Our systems are a mish mash of mySQL, Oracle, SQLServer, PHP, ASP.NET etc etc systems though I guess that that does not matter too much. All the systems are secured in as much as they are patched and the firewalls are set sensibly so outside people cannot get directly to the database boxes etc.
It is XSS and similar attacks that we wish to prevent.
What do YOU use to give you confidence in your systems? ');DROP TABLE answer;
owasp would be a good place to start. There's too much to cover to include here.
If the security of your site is worth nothing to your company then that's what you should pay. For my company the security of our data and the brand image has quite a high value.
We pay a whole bunch of money for regular scans, we've trained the developers in basic hacking/security of applications, our code reviews include a security review and now we're looking at AppScan from IBM (which is expensive but in the long run probably cheaper than all the pen' testing we pay for).
You get what you pay for. Making sure you understand the owasp issues would be a good start though.
Personally, I choose not to be confident in the security of our systems. I am convinced there is always something that I am missing and thus I keep looking for it.
What you seem to be looking for is something to make others feel confident (even if that confidence is an illusion). Penetration testing is probably the right choice for that. Depending upon the tool, it shows potential vunerabilities in a nice report and then you can report how you mitigated them.
We use IBM AppScan and it is a good tool for this. As with any tester of this type you will find yourself following a lot of bad leads. Most of them are not false postives per se, more just things that might be an issue or appear to be and you will have to investigate and determine if they actually are.
I would not put a lot of faith in this kind of testing. If you app scans clean it really does not mean your app is clean. Does not mean it is worthless, but don't make it out to be more than it is.
The next thing I would look into is static analysis tools in your various languages. A lot of these are free. Hand in hand with that is developer education. That is usually a pretty cheap solution to the issue, just making sure they understand what the risks are.
There is no silver bullet, no simple answer, you need to define security as an EVERYONE problem and make sure it is given both priority and commitment.
Check out dotDefender - they've got versions for IIS/Apache/ISA. I use this app to protect against SQL Injection/XSS/DDOS/probing/encoding attacks. No piece of software will ever be perfect but in my case I run systems with sites being developed in .NET, PHP, and classic ASP with some of our sites being new and others being 5+ years old.
http://www.applicure.com/?page=dotDefender
I do also have a company do penetration testing / social engineering every year or so as well but with dotDefender I'm at least happy that I've got a baseline security blanket to protect my sites.
Of particular interest to me was that their app is fully x64 compatible - necessary since I'm using x64 web servers.

Resources