How to shift Web-development from windows to linux - linux

I am a systems programmer, so i just know some basic css/html. I like to learn basic of template development for sites. I have some idea about joomla. wordpress, and I am also experimenting with few wikis. A friend of mine is fireworks/photoshop advanced user, it looks quite easy to make a template using fireworks. Is there any equivalent of fireworks on linux. My concern majorly is templating, making a layout, slicing it, defining boxes (something as a place holders for menus/tabs :) ). And some easy CSS based on it. I have been surfing for these answers, but mostly all the users who have migrated to Linux of web-development are talking about PHP/AJAX i mean things like these. None of them is too concerned about templating, may be its a too easy skill for them. Anyways following are the tools i have found on the net,
Kompozer
LnkScape
Gimp
Screem/geany/codeblocks/eclipse/bluefish
Apatana (they say its eclipse based)
Can anyone ps guide, which one to choose to just - make a picture/layout and generate or say write it into a css/html.
I have seen fireworks, it looked good, any best alternative for it on linux, or shall I run an older version of fireworks in wine. I think mine requirements are very basic. Thanks.
Excuse me, I was writing the question and I by-mistake pressed enter. The question got published, and when I tried to delete, it needed 5 votes. So i just took time and wrote it completely, and during that time i got voted down -3:).
EDIT -- I am still surfing, everyone is advocating GIMP, i have used GIMP, but it is more like a picture/manipulation software, not like fireworks, specifically for web-layouts. What are you linux-guys, using for your template designing. I just need advices from experienced guys. Mine requirements are simple, no fancy things... but clean intuitive web-layouts for personal sites which i can change freely, without dependence on anyone, when-ever i wish

I use Fireworks on Mac and have yet to find a decent alternative. The closest thing to a vector editor on Linux is going to be Inkscape but you are unlikely to find it useful for creating exportable slices that are suitable for use in your website. You will have to take multiple intervening steps in order to accomplish what would have otherwise been possible with the "Export as HTML" feature on Fireworks, with which you are likely familiar. GIMP is a reasonable photo editor (with most of the features you would expect from Photo Shop).
It sounds like you are mostly interested in replacing your graphic design workstation and not the subsequent server technologies. If that's the case, I can't wholeheartedly endorse that you switch at this time. I have yet seen an example of a site designed entirely with OOS that could compare with most of the "professional design houses" using proprietary solutions. If you were focused on web application development and not graphic design, I would be a lot less hesitant.
Creating plain-text HTML and CSS on Linux isn't going to be any different from how you create it on Windows. If you are familiar with these mark-up languages, then you will have no problem using a text editor under Linux to accomplish the same thing. If you are currently using tools like Dreamweaver to generate this code for you, you will have to try a few packages like the ones you have mentioned until you find something that is a suitable alternative. You are not going to find a Dreamweaver clone. If you plan to do web design as a business: I would suggest just learning the proper syntax for XHTML and CSS, anyway. Debugging works in the browser just like it does in Windows, with the exception of Internet Explorer (which can be ran in a virtual machine, below). Be sure to pick up the FireBug, YSlow!, and Live HTTP header extensions for Firefox to ease your debugging woes.
To achieve the best of both worlds, you should consider running your current operating system of choice (Windows?) within a virtual machine under Linux. There are many virtualization products available for Linux, but VMware Player/Server seem to be the easiest for people to use. There should still be an apt package for VMware for an easy one-click install in Ubuntu. This way, you can transition comfortably--one app at a time. Most virtualization products are now free!

As a server platform:
If you are using FOSS technologies (Perl, Python, Ruby, PHP, etc) then you'll find that things pretty much drop into place (although moving away from case-insensitive file systems may cause issues).
If you depend on Microsoft technologies (.NET for example) then you're pretty much going to have to rewrite everything, although Mono might help.
As a desktop platform:
Look at the tools you use now. Find equivalents on Linux. Many tools are available for both OSes.

If you use only css and html in you webpages, you can only copy the website and install Apache server on Linux...

Related

WPP tracing for linux

I'm looking for a way to output traces to a log file in my code, which runs on linux.
I don't want to include the printing information in the binary, in every place I deploy it.
It windows, I simply used WPP to trace without putting the actual traces strings in my binary.
How can this by achieved in Linux?
I'm not very familiar with Linux tools in this area, so maybe there is a better system. However, since nobody else has made any good suggestions, I'll make a suggestion. (Probably not a very good suggestion, but the best I can think of right now.)
In theory, you could continue to use wpp. Wpp is simply a template system. It scans the configuration and input files to create data structures. Then it runs a template, fills in the data values it got from the scan, producing the tmh files. You could create a new set of templates that would use Linux apis instead of Windows apis, and would record the message strings in a way that works with some other log decoder system.
I noticed this question only now and would like to add my two cents to the story just for a case. Personally, I truly appreciate Windows WPP Tracing and consider it probably the best engineering solution for practical development troubleshooting among similar tools.
It happened I extended WPP use to Unix-like platforms twice. We wanted to use strong sides of WPP concept in general and yet use it in a multi-platform pieces of code. This was not a porting but rather a wrapper to specific WPP use we configured on Windows. One time we had a web service to perform actual WPP pre-processing on Windows; it may sound a bit insane but it worked fine and effective within the local network. A wrapper script that was executed before each compilation sent a web request, got a processed file and post-processed the generated include file to make it suitable for Unix-like platforms. The second time we implemented a simplified WPP pre-processor of our own (we found yet additional use for it - we could generate the tracing statements differently for production and unit testing, for example). This was a harsh solution: you anyway need to use some physical tracing framework behind the wrapper on non-Windows platform (well, the first time we apparently implemented our own lower level).
I do not think the Linux world has a framework comparable to WPP. Once I even thought it could be a great idea to make an open source porting project for WPP. I am not sure it would be much requested though. I said it is a great engineering solution. But who wants to do dirty engineering work? Open source community prefer abstract object-oriented and generic solutions, streaming and less necessity in corresponding tools (WPP requires special management tools and OS support).Ease of code writing is the today's choice.
There could be Microsoft fault (or unwillingness) in the lack of WPP popularity too. They kept it as an internal framework that came out just by a case with Windows DDK because they have to offer some logging/tracing solution for driver developers. Nobody even noticed much that WPP is well suitable for the user-space code too. And WPP pre-processor for C#, for example, has never been exposed to public at all.
Nevertheless, I still think that WPP porting to Unix/Linux work can be a challenging, interesting and maybe even useful attempt. If someone decides to lead it. :)

What non IE software version to use to check compatability with IE6?

Hope this question is not stupid since I am an amateur web designer. I use Windows 7 and want to see the website I make works decently with something like IE6 (will be using html and css only).
But instead of going through all the mess of download virtual machine software and such from MS, I was wondering if there is any other browser like old Firefox or Netscape that I can install from filehippo if they give the results similar to Internet Explorer 6?
The answer depends on how precise you need to be with your tests.
The easiest option has already been mentioned in the comments -- IETester. It's a wrapper for IE that supports running all versions of IE, from 5.5 up to v9, all in the same window. It's extremely useful for testing how a site will look in older versions of IE; I use it all the time.
Unfortunately, it is not very stable; it crashes a lot, especially when you're running IE6 or IE7 in it. It also doesn't cope well with plugin elements such as flash. If your site uses them a lot, you may be out of luck.
But if you can cope with the limitations, then this is a good program, and it does directly answer your question.
More specifically, you were hoping an older non-IE browser could be used to simulate IE6. Sadly not. IE is unique (in a bad way); it has features, bugs and quirks that don't appear in any other browser either now or in the past.
The closest you'll get might be a really old version of Opera -- in their early days, they made a point of trying to get good compatibility with IE, to the point of implementing a number of IE's proprietary features. But even then, it was never that close.
One really cheeky alternative might be to use Wine to install IE6 onto a Linux box. Again, it's likely to be unstable, but it has been known to work. I haven't tried it for a while, but it worked okay back then, and Wine has improved a lot in the meanwhile.
Beyond that, the only real option is to run a genuine copy of IE6. The best way to do that is to install a VM with a full copy of XP on it. Not great, but in truth this is the only way you'll get a really 100% accurate picture of what your IE6 users are seeing. If that matters to you then you need to do this.
But to be honest, in most cases it won't matter about it being 100%. IETester is sufficiently good for testing most sites, and frankly if you have the odd glitch left over, don't worry about it too much -- IE6 users are well used to the web not working very well for them these days.
Make it work; don't make it perfect. And for that, IETester should be plenty good enough.
Internet Explorer is notorious for misbehaving. There is no other program that isn't IE6 that acts like IE6.
My suggestion would be to use a site like Adobe's BrowserLab. It lets you pick a URL and then it takes snapshots of what it looks like on different browser's as well as operating systems. The list is far from complete but it's one of the best free solutions that I've found.

Linux server performance analytics and load monitoring software

What I am looking specifically for is software thats runs on Linux (CentOS) that can do the following:
Show human readable CPU, Memory, Disk, Apache, MySQL utilization/performance.
Provide historic reports on the above metrics (today, week, month, year etc...)
Provide this data in an easy to view web based report or at least exportable to excel/csv.
I have looked at Cacti and I don't think its really an enterprise solution. I don't care if this is free or paid for software, though open source would be nice I am really just looking for the best solution.
Does anything like this exist for Linux? The problem this company is faced with is we have no way of measuring how the changes we make in our code and server configurations impact overall performance. So when I saw lets do this - then do it, I can't shows the benefits or revert back cause it was a negative in terms of performance. I am not a linux guru, just a developer with some linux skills, but am open to all suggestions. Thanks for reading.
Even though there are lot of open source projects but the main drawback they suffer is that they are away harder to configure. I have some across a free to called SeaLion which is way easier to install and configure. And it has awesome timeline base to representing outputs. Also there are different paid tools line new relic, server density, solar wind which you can also give a look.
Check out the eginnovations monitoring tool
http://www.eginnovations.com
Monitors Linux, Apache, mySQL and other applications and is web-based, so you dont have to be a linux expert.
M.
Cacti is a simple one. OpenNMS is more complete.
You are not limited to linux, using SNMP you can fetch this data from a remote host and use any NMS you like.
IMHO one of the best "freemium" tools is Zenoss (http://community.zenoss.org/).
The community edition is free. It will do everything you need, and comes with a simple RPM based installation process. It's a lot easier than Cacti or Nagios to setup and use. I would give it a try.
I use munin. I'ts much much simpler to set up than cacti. It's better to compile it yourself than pull it with apt-get (or other) because that way it has more built-in data-gathering scripts.
Basically there is no single dashboard where you can get all reports metrics. There are a range of opensource softwares which and can serve your need.
For server performance many people recommends munin, you will have to learn how to read teh report data. You can also write custom scripts to get certain report parameters of Mysql. Additionally if your server host provides an API, you can then do lot more related to reports in your admin panel.
you have a look at following url which can provide you more idea about choosing best fit to your need.
https://serverfault.com/questions/44/what-tool-do-you-use-to-monitor-your-servers
http://sixrevisions.com/tools/10-free-server-network-monitoring-tools-that-kick-ass/

Need guidance back into programming

I used to be a programmer and unix sysadmin back in the 90's and early 00's. I wrote business software mostly in BBX, which was non-compiled, procedural BASIC. It was all text based when I started, and I only just got into GUI and OOP with ProvideX by the time I got out. I did do some SQL work and understand basic database concepts.
I've continually dabbled since and tried to keep up by running my own Debian web server here at the house, doing little script programs here and there, and most recently learning PHP and Python. But I would like to get versed in the current state of the industry and hopefully make myself employable in it again.
My current learning project is to write a db app that I can use when drag racing to log run data, report based on various combinations of variables, and predict vehicle performance. This should cover IO, data management, and some complex math. I do want to make is sellable, so it has to be in Windows since all other racing software is. My two options now are to write it in MSAccess, which isn't really programming, or to write a front end in Python and use MySQL for the data.
I assume I should go the Python path out of those two, or should I choose a third path that would pay more dividends toward a job? My biggest concern is wasting my time learning pointless stuff. I assume most of the work out there is db related and web based applications, so that would be my ultimate goal. Correct me if I am wrong on that.
Thanks for any input,
Dave
If your goal is to get back into software development, then I recommend that you first ask yourself what type of industry and development setting you'd like to work in. Learn something about the skills those industries are demanding... Then hit Monster and peruse the job qualifications for companies in those industries. Don't limit your view to just language names and broad job descriptions either, but really try to get an idea what sort of developer they're looking for and whether you'd fit in well.
You will be able to find many interesting technologies in lots of different business domains, but what do you really want to be working to help deliver? Python coding, for example, may be interesting, but I'm sure you'd be more interested if it were supporting your motorsport interest in some way versus, say, baby food. When you have the business domains narrowed down, then you can focus on the background required to get jobs in those industries.
You will find an endless set of recommended "hot" techologies if you search for them. I'm sure you can find a list, or post, which will confirm any bias you have on what to learn. But chasing the technology of the day may lead to an unfulfilling day-to-day job if what you're applying it to is not something you find interesting.
I would say that the answer depends on what type of job you want to do. The Fortune 500 company I worked at last summer had everything from mainframe c and cobol, java EE, .net to ruby on rails and python in applications. There are still alot of jobs maintaining legacy desktop applications. But the web atmosphere is obviously the future of business computing, and java EE and .NET are huge players in that arena. As for the project you are describing. I've done QT applications with python and there are python libraries for GTK that I've seen used to run apps in Windows. I've also used java swing and awt to build graphical applications and other than the learning curve for the layout system it works really well for building applications. I wrote a really basic windows application using visual studio and C# one time and that seemed to me to be very easy to write.
Enterprise level Java or .NET involve a fairly steep learning curve, so I would have those as a medium-long term goal rather than try and learn that tech immediately.
It seems to me that learning a high productivity web framework is the best way for you to go. "Ruby on Rails" seems to be a hot ticket at the moment. I've only had a small look at it, but it seems pretty quick and straightforward. Your drag racing app would be a good place to start.
Build a couple of websites for yourself using the tech. Then build a couple of websites for friends for a nominal fee. After that, see if you can find a real client (perhaps a local business). If you have 2 or 3 of those under your belt, then a potential employer will at least take notice.
One warning, though - people expect web sites to look nice. If you don't have good interface design skills yourself, it will be in your best interest to hire a designer to pretty up whatever you produce.
For a Windows desktop application, you can use C# and the various .NET APIs, and store your data in either a Microsoft-provided database, or SQLite, which is a reliable, server-free SQL implementation. (I don't know anything about Microsoft tech, hence the vagueness of my answer.) There is a lot of work available using C# and .NET, and it should be easy to pick up. You'll meet less resistance on the Windows platform with Microsoft's kit than with third-party languages like Python.

Web programming language

I want to go learn web programming,but besides names and a little of html I don't know anything.So I ask you what programming languages you recommend,why,what can be done with it,tools to learn ,etc.I don't know if it matters but I program in a Linux enviroment(Ubuntu).
I don't want to do hardcore web programming ,I only want to be able to develop complete websites and understand network concepts.
Well, most cheap/free web hosts support PHP, MySQL, and most browsers support Javascript.
Target those and you'll be on a reasonably good path.
Some support Ruby and Python, and you might choose that path if you want to learn those languages.
Good luck!
-Adam
Definitely start with HTML, and basic CSS. These are the core of web programming, and you need to understand them well to do anything of consequence.
Once you've got those down, you'll want to move on to a server-side language. The easiest is PHP, but be careful of picking up bad habits, since it's a loose environment; if you stick with PHP, you'll eventually want to use it with an MVC framework such as CodeIgniter, which encourage separating presentation and logic. To get a little more advanced, you can also try Python or Ruby. Get yourself some server space to mess around with; most shared hosting plans are $5-10/month.
For Javascript/AJAX, you'll probably want to start by using Firebug or Firefox's DOM inspector to learn the relationship between the HTML of a page and the DOM object which Javascript uses to interact with it. Once you understand how the DOM works, toy around with jQuery to start doing useful (and fun!) stuff.
You'll also eventually want to learn MySQL (or a similar SQL variant), but that can probably wait, since you can do lots of interesting things without tackling database stuff.
Above all, be patient and persistent, and make use of every resource at your disposal: books, Google, Stack Overflow, and cheat sheets.
Ruby all the way. It's exactly what you need if you're interested in web dev and completely starting from scratch programming-wise. From the basics of Ruby it's pretty easy to get into Rails, which is a very beginner-friendly web framework.
Many great books on Amazon (look for the highest rated of course) on both Ruby and Rails.
Great starting point for links:
http://www.ruby-lang.org/en/documentation/
As well check out Learn to Program
Now get learnin'.
Google App Engine offers free hosting for applications that do not exceed the specified limits. The server-side language is Python, the client-side language is JavaScript inside Django templates. Everything has worked nicely for me in Ubuntu 8.10.
GREAT Question,
a couple of years ago I was in the same place -
What HONESTLY Helped me was using Dreamweaver, I set it in split mode and started watching the code
I used this and started delving into the PHP Application world and could see what was going on (sort of)
I know you can use dreamweaver with wine on the linux, and it can help you do a TON
granted if you continue it has the potential to limit you to the dreamweaver world... but can help you learn and create at the same time
(I build full php apps from scratch now with a notepad... but I started with DW)
The question I'd have is what kind of scale on web programming are you wanting to do? If it is small stuff then the LAMP stack would be my suggestion while if you want to get more into 3-tier architecture then Java or ASP.Net may be worth getting into for middleware or business logic code.
With the exception of the reference to the LAMP stack above, there has been no Perl recommendations. I like Perl as it is easy enough to build a fairly full featured web application (using CGI, or mod_perl). Of course, you are going to have to learn HTML/CSS if you are going to do anything on the web. I feel Perl is a good choice for web development as it is fairly robust and full featured with all of the modules available on CPAN. Combine with an application framework like CGI::Application or Catalyst and you can build sophisticated web apps in a short amount of time. Also, using a tool like XAMPP can help as you won't have to worry about web server or database cofigurations to get started.

Resources