Active blogs about Lazarus and/or FPC - resources

I'm getting really upset with the whole direction that "Emborcadero" is taking and I'm really going to invest in FPC/Lazarus.
Went to the Lazarus Documentation page and found the following blogs:
Lazarus Development - Up to date
Adventures of a Newbie - FPC Wiki page
On the road with Lazarus/Free Pascal - Up to date
Porting to Lazarus - Last post December 2009
Living Lazarus - Last post September 2009
Parallel Pascal Worlds - Up to date
Can someone suggest more resources in terms of Blogs or Twitter accounts to follow?

I just ran into
FPC and Delphi: toward a "fratricidal war"?
But I don't like the tone. While it is true that the absence of colaboration between FPC and Delphi leads to incompatibilities in the newest features, I think he makes a too big deal out of it.
Moreover, most people that chose for FPC/Lazarus do so because they are needing some real features of FPC/Lazarus that Delphi doesn't provide or plans to provide. It is rarely a one dimensional "Lazarus is free" choice.
like e.g. native interfacing with OS X, while Embarcadero only prepares a QT port),
ARM/PowerPC/Sparc support etc.

Well, there are some blogposts by user leledumbo from the lazarus forum

Related

Any upcoming books on Linux kernel (ver 3.0+)?

Do you know if new editions of ULK or R.Love's books are going to be re-released? Or maybe another book is in writings?
Latest books are based on 2.6.18 kernels, so I'm looking if anything newer is coming.
The Third edition of Robert Love's Linux Kernel Development came out less than two years ago and is based on 2.6.34. I don't think there have been any substantial changes to the kernel since.
http://blog.rlove.org/2010/07/linux-kernel-development-third-edition.html
There are two good and mostly still accurate books on the Linux kernel. I'm not aware of anyone writing a new book just now.
If you just care about higher structures, how the scheduler works and things like that, use the Robert Love 3rd Edition.
If you want to know about all the various driver subsystems, choose the Venkateswaran book.
Note that the book is now exactly 3 years old and is starting to show its age.
All other kernel books (including Jonathan Corbet's, Bovet/Cesati and others) are no longer worth reading: too much details have changed.
Especially anything pre 2.6.24 should be avoided because the updated timer framework that got finalized at that revision had quite a big ripple effect.
2.6 was upgraded on 3.0 just because there was 20th anniversary of kernel. 3.0 does not have many breathtaking ideas, and most books relevant for 2.6.x are also relevant for 3.0.x
https://lwn.net/Articles/452531/

AutoCAD 2006 vs. 2012

I'm looking to learn AutoCAD. I have found several videos online that relate to 2006 AutoCAD - but is there a difference to any of of the versions. I have seen job postings asking to know AutoCAD 2008 -- what happens if I only know 2011 or even 2010. Can I work with 2008? Is there a difference to any of this versions or years?
AutoCAD is a lot like Windows... They have major releases and minor releases, so the change from 2006-2007 was a significant change. They roll out a major release every couple years or so. Still, it just depends on what you're doing. If you've got to draw a line, it's drawing a line, and that doesn't change a lot from one release to another. Some companies use the "features" of the software, but lots of them don't. My advice: get an account with Autodesk University here and click through the online classes. Look for some basic AutoCAD classes. It will really help you learn about the software and the changes made from one release to another. Also: If you get an interview for a CAD job, they will probably give you a test... usually it's just drawing something in CAD from a piece of paper. I had one of these where I had to use a version of AutoCAD called Architectural Desktop. I had never even seen Architectural Desktop before, so I asked the person interviewing me, "Where do I start?" He showed my how to start, and I actually got the job. That was 7 years ago and I still work for that company today. Use the free tutorials to acquaint yourself with the software, but don't be intimidated by it. If you get as far as testing in an interview, do your best, and don't be afraid to ask questions.
If I recall correctly 2006 was still a version without the ribbon interface. In any case, the most significant change in user interface in the recent years was exactly that - caused quite a bit of stir when it was first introduced, and many drafters still switch to "old" toolbar.
As far as changes go, yes, there are quite a few. But as Asheville said, they more relate to some advanced features of the software, which at this time you will probably not be using. My advice would be to start with some of the newer versions ("the ribbon" ones) and adjust yourself to it. After you've grasped the fundamentals, and found your way around, and wish to expand your knowledge in a more systematic way (although we all know this almost never works :) I would go to one of the either; "Autocad xxxx Bible", or "Mastering Autocad xxxx" books where xxxx signifies the version. They are quite heavy (figuratively and literally) and you can skim through as you progress. Most of the things in there you probably won't need, unless you find yourself working in a large draft office which has it's own way of organizing data, drawing styles, ...
Autocad forums are also a good place to ask questions (search first !) ... the community there is quite helpful.

IBM Cell programming in 2010 - feasible and worth it?

I would need your help. I've come across an interesting book - Programming the Cell Processor: For Games, Graphics, and Computation - it contains mostly C and some Assembly for Cell. The technology is interesting indeed, but there are some doubts on my side.
The book is from 2008 and some things has changed:
There is no Linux support on current firmware version.
Last version on IBM's website is from 2008 Red Hat Enterprise 5.2 and Fedora 9 - has anyone an experience running this IBM SDK on Fedora 13 or at least any version higher than stated Fedora 9, and is Linux available of sufficient testing?
Would it be useful for example for creation of distributable PSN game, and if anyone knows anything about price to actualy get a product there (as I've heard that it waaaaay more expensive than for example X-box indie games)
So do you think that it is worth it or not? Be it just for education purposes or something "more" serious?
Any thoughts are welcomed, thank you!
Cell was dumped by IBM for general purpose computers. It will live for the next 5 years in the Playstation and i'm pretty sure that the next generation Playstation - whenever it will be ready - will also use Cell again because establishing something new in CPU land is so unaffordable today.
But as a technolgy it is indeed no longer interested. Learning CUDA might be a better choice.
Given that you don't have access to a Cell machine, I'd advise that it's probably not worth it. I absolutely love the Cell architecture - I think it was a fantastic step in the right direction. Unfortunately, having done some Cell development in the past, I was really disappointed with the tool chain, the simulator and the seemingly hostile attitude taken towards developers recently.
So given that you're not going to be able to use a real Cell machine in order to get the speed gains you would get from writing programs within that idiom, you'd probably be much better off looking into general distributed programming techniques (using MPI or something similar). These skills are going to be readily transferrable to the Cell or its derivatives, or any similar architectures that might arise in the future.
As far as I'm concerned, and as much as it pains me, I think the Cell is basically a developmental dead end unless you have access to a commercial development license, you'll be extremely frustrated in your ability to actually get anything out of the architecture.

Ada compilers for Linux

I'm doing a trade study for Ada development on Linux. Do you have any good compiler/OS recommendations?
So far, I've got GNAT from AdaCore running on CentOS 5.4, and I have license requests in for Rational Apex and Aonix ObjectAda.
This is a porting effort. The original codebase is Apex 3.0 on OSF1 4.0d.
Anything else I should be considering? Ideally, it would be a supported environment.
One issue you need to take into consideration is to determine to what degree your system that's being ported utilizes vendor-supplied packages to perform its function. What I've seen with older, large systems, especially Apex ones, is a propensity for the language gurus during its development time to have decided that vanilla Ada just wasn't good enough, and so tie into all these vendor-supplied packages. If that's what your system does right now, it's a strong argument for upgrading within the vendor and sticking with Apex (all other things being mostly equal).
Whenever I've done ports of such systems, if given the opportunity I've done my best to tear out all the vendor-supplied stuff--nine times out of ten replacing the vendor-specific stuff with vanilla Ada implementations worked just as well, and you no longer have to deal with the quirks of a compiler-specific package. Plus, you increase the portability and maintainability of the system, allowing it to better adapt to future changes.
There is always SPARK, but I believe its a specialized/subsetted version of the Ada language. You might want to contact SigAda or the Ada usenet group to see if there are any other ideas.
Honestly though, GNAT is a great tool set. You can use GNATBench, an Eclipse interface, or GPS, a light-weight GTK+ IDE, to interface with the GNAT tools.
Other compilers I am aware of are Green Hills AdaMULTI (for various RTOSes), and DDC-I's SCORE (also for various RTOSes)
Providers of certified compilers that support Linux (in addition to those listed in the question):
Irvine Compiler Corp.
OC Systems
RR Software
Sofcheck

Is there a stable Programming Language for Web Programming?

A renowned PHP user once said: There will be a relaunch in 2 years, anyway.
Those times are gone. Web applications that are older than 5 years are common. With the original developer(s) gone.
The release cycles of the operation system, programming language, and framework are getting in the way of doing real work, if you don't have a big staff.
Is there any way to develop something that doesn't need constant porting to the next level, without the fear of losing support and backing in a community? For people who want to stay in programming instead of climbing the corporate ladder and leaving the problems to the next "generation"?
My company codes almost exclusively in C#, however we have ColdFusion 5 apps still humming along written back in 2001 or so. Theres no need to port them.
If it ain't broke, dont fix it.
Other than security flaws (which are usually handled by an OS/Server Patch, so they dont need code changes), theres no need to change an app just because a new version of the language has come out.
If I'm not mistaken, ColdFusion has had at least 2 new releases since we stopped using it for new code. but that hasn't affected our ColdFusion sites one bit.
Write CGI programs in FORTRAN 77. Should be pretty stable.
Firstly, it is possible to overstate the difficulty in maintaining web applications. In many cases, the changes to a language or platform are expansionary in nature rather than destructive. .NET, python, etc code from several years ago will still run, but new options are being added to make these these tools more powerful for future applications. The case where massive changes occur tends to be on the first or second iteration of a language, e.g. Rails 1 to Rails 2.
Secondly, the still active development of web programming is something to be thankful for.It means that this is a part of the industry that will remain productive and exciting for years to come.
Traditional CGI is stable. It's not sexy, but if your OS continues to be able to run the same binaries or scripts, it's still going to work.
The only programming frameworks that stay stable are those that have been abandoned. A framework that stood still long enough would have no support for, say, AJAX or JSON or even XML.
You're not going to find what you're asking for. The best you can hope for is a mature framework with good support like ASP.net or JSP. And, as #Neil N said, don't keep upgrading unless there's a compelling business need.
The first web programming I ever did was writing Apache modules in C which communicated with a dBase database. I'm fairly sure that code would still run today (if the company I wrote it for still existed).
I do most of my current web-related programming in Perl, which is very stable and has an excellent track record for backwards compatibility. Most, if not all, code written for Perl 4 (released 21 March, 1991) should still run on the latest stable Perl (5.10) - although you might want to update it anyhow to take advantage of the last 18 years of improvements in both software development techniques and language features.
Consider the shearing layers. I've previously worked in large aerospace companies where the same Fortran back-end code and databases have had their front-ends evolve from the paper tape era through mainframe, client server and onto Intranet web sites.
On the outside, you have will typically have CSS and XHTML templates which can be changed to re-skin an application. These change quite rapidly, in large organisations as upper management seems to decide the bike shed should be a different colour every few weeks.
Typically you then have some logic to combine the templates with data from the back-end, and forward user actions to the back-end. This shouldn't change that rapidly, but translate the presentation to calls into the back-end. Expect to refresh this every few years, and rewrite it once a decade. We used Java for this, starting in the late 1990s. Some parts get changed faster than others, but it's not a big issue.
The back-end is usually stable ( some of the aerodynamics code dated from the 1970s; the laws of physics don't change that often ), and will outlast the web UI, as it has all the other UI paradigms. Fortran is forever.
Write your own web server in C then you don't have to worry about a web programming language.
(No, that's not a serious answer)
Have you seriously looked at what TDD, CI, pair-programming, and a solid, rapid development framework (basicaly Django or Rails) can offer to you as a developer vis-a-vis the way you write and design code? There are some really massive benefits that all of those pieces offer to the development process that make it almost a joy to be a programmer again. There are downsides, of course, but the upsides are all in support of the happiness and ease of development for the engineer, which leads to more productivity. In my book, that's a slam dunk win. And the result of my productivity and happiness, has been solid products and great engineering.
YMMV, but if you are having the serious thoughts that you are (and I take them very seriously), I think it's worth you investigating what those tools can offer. By taking the good and leaving the bad from the agile religion plus some of the things I listed above, I've returned to find the joy in programming again this last year, after a good 5 years of a downhill slide of my happiness with this career. It's about finding what works for you. I can only help and lead the way by showing you what worked for me. I'd be more than happy to discuss at length if you want to talk offline, I think this is a really important topic...it lead me to consider a career change many times.
Java Servlets and JSPs have been in use for a decade or so, and they still work the same way like they did in '99. But honestly, can you imagine something uglier than a '90s web application without any rework done since?
The Python web framework web2py promises backward compatibility:
Always backward compatible. We have
not broken backward compatibility
since version 1.0 in 2007, and we
pledge not to break it in the future.
And supports Python versions from 2.4 to 2.7
EDIT: Updated an important project 2 times and every time there was a problem. Well, …
EDIT 2: Needs Python 2.6 to 2.7 now. No support for Python 3.

Resources