Tag: Computer/Programming

  • University stress

    As you have noticed it’s already the time of the semester where all the homework, projects and preparations for exams accumulate towards the same date.

    The upcoming weekend is again the most pressing date of this semester as this is one of the last presence lectures for some of our lectures. And the last presence lecture is often used for end-term exams.

    Furthermore there are some presentations and handins to be finished by Saturday.

    What’s currently taking most of my time is my project work for this semester. I don’t know if I’ve already hinted somewhere in a post on that but let me give you a short intro.

    I’m creating a framework for Java which allows developers to define the structure of any file in some sort of description language, hand this and a file containing data in this format to a parser which is created out of the description language and get out a data structure which contains the contents of the file in an easy accessible way for the developer.

    Initially the project was about researching such frameworks, comparing them to each other and create a prototype implementation for an application within our company. After I have handed in the description and plan for my project work I found out that there is no framework existing for the Java language which comes even near the functionality I’ve been looking for. Nothing. Nada. I just found something similar to that implemented for Python, it’s called Construct and resembles quite exactly what I’ve been looking for.

    So I decided to resurrect my old lexer and parser know-how and create a framework on my own. Since I’ve already worked on a thesis in the past which involved creation of a C++ parser I knew that finding the right tools to use and creating a language from scratch is not something one can pull off without a great deal of theoretical background in that area. I already knew which problems I probably will be facing and how to avoid several caveats and until now it turns out that I’m not very far off of my expectations.

    Just that I need some more time to get it finished 😛

    Nevertheless, what I’ve also been thinking of is that maybe I’ll open source this framework if there aren’t obstacles for that like copyright or usage issues with the university or my employer for which I’m implementing this.

    Maybe there will be updates on this in the future… maybe.

  • Recalling my first steps in GUI programming

    Yesterday I read an article about object oriented languages (don’t remember which one, seems it wasn’t so important) when I recognized a small note on that article which mentioned a programming language I haven’t heard of for quite some years.

    Profan²

    Profan² was the first programming language I encountered which supported GUI elements, about 13 years ago. I used it to program basic stuff (don’t remember anymore, what exactly) on Windows 3.11. Before that I’ve only been programming BASIC and Assembler on my C64.
    When I read about it it gave me a quite nostalgic feeling and some nice memories on my first steps in the creational world of IT and I’m happy to see, that one of my "childhood toys" is still existing today 🙂

  • Acquiring a new laptop computer

    Just as a note of that I’m still alive and relatively well, I’d like to notice that I’ve decided to buy a new laptop.
    There is a special program at our university which allows students to buy mobile computers at a reduced price.

    As my old laptop is now slowly beginning to fall apart, I’ve ordered a HP EliteBook 8530w. My variant is with the Intel Core2 Duo T9550 processor, WUXGA Display and apparently a ruggedized case.

    I’m very curious when it’ll arrive…

  • Stackoverflow: first class Q/A for software developers

    For some time now I was aware that the Question/Answer platform from Joel Spolsky, StackOverflow.com, was up and life.
    But I didn’t bother any further as I was quite happy with Google and the set of references and personal know-how I’ve build up over the time.

    A few days ago I had a problem which was not solvable with my usual batch of resources and in my desperation I hopped over to StackOverflow and tried to find help there.
    Within a day I got exactly the hint I needed to be able to solve my problem and continue the work.

    Quite happy with this experience, I decided to give it a bit more thought and maybe also answer some questions myself if I knew a bit about it.
    After some time I noticed a bar on top of the site telling me that I had earned a "Student" badge and seconds afterward a "Scholar" badge. What were these? Reading on I found out that the "Student" badge means that someone accepted/voted on my question when he thought it was an useful question. And the "Scholar" badge means that an answer from me had been accepted as the most helpful one for the questioner. And then I noticed that on top of the page there was some sort of Score, the Reputation and also a small statistic on my earned badges.

    After thinking about it some more now and continuing to participate on the site I came to the conclusion that the way the questioning and answering works on StackOverflow.com is the most ingenious way to help developers I’ve seen so far in my life.

    StackOverflow.com turns the boring process of writing a question and giving an answer on forums and webpages into an exciting game, where good questions and answers are rewarded (by upvoting) and bad ones are hindered (by downvoting). And you also have a running score (the Reputation) which you can compare to others and is calculated from up/down-votings on your questions and answers and also how often your answer was considered as the best one for the one having the question. Even the factor how often your question has been found and visited counts to points and badges.

    Earning a lot of different badges and improved abilities on the site (e.g. leaving comments at Rep of 50, Retag questions with Rep 500 and even edit other peoples posts with a Reputation of 2000) add to the fact that one wants to reach the goals and also has a long-term motivation to continue giving help.
    And this means qualitatively high questions and answers as this earns more points faster and consistently on the long term than quick answers which only contain tiny pieces of help and get a few points for just a few hours.

    I personally already have added StackOverflow.com as a quick, reliable and qualitatively high resource to my recherche-sources and will continue to build up my highscore 🙂

  • OpenOffice 3.0 Installer issues

    The problem

    I just had a problem with the installer of OpenOffice.org 3.0. I wanted to modify my installation and add the Base module. I didn’t have the installation files lying around so I had to download them again, which I did from http://www.openoffice.org. After downloading, the setup extracted the installation files into a specified directory and started the installation (where I expected to be able to modify my local setup). This is where the first hints of errors showed up.

    The setup showed me a messagebox which told me that

    The same version of this product is already installed.

    and completed afterward, denying me any possibility to modify my setup. Fine, I thought and went into the Windows ‘Add or Remove Programs‘ control panel to change my setup there. At that location I was able to modify my setup for OpenOffice 3.0 and continued to the installation. I expected it to ask me for the location of the setup files as I didn’t have them at the original installation directory. It asked me for the file ‘openofficeorg30.msi‘ and I navigated to the directory where I extracted the files after the download.

    The following error telling me that

    The installation file ‘…./openofficeorg30.msi’ is not a valid installation package for the product OpenOffice.org 3.0. Try to find the installation package ‘openofficeorg30.msi’ in a folder from which you can install OpenOffice.org 3.0.

    was a bummer. It completely refused all of my attempts to install or modify my setup at latest when it required that file ‘openofficeorg30.msi‘ which was sitting there in the extracted installation directory and was completely valid.

    The solution

    It took me quite some time to track down the source of this problem but finally I got it. When I initially installed OpenOffice 3.0 the first time, I used an installation package WITHOUT an included JRE because I already had a more recent one installed. This time when I downloaded the installation files I got the default version which has an INCLUDED JRE. And seemingly, my JRE-less installation can’t cope with the installation-files of OpenOffice.org 3.0 with an included JRE, throwing above stated errors at me.

    I finally investigated a bit and got my hands on a setup-file without included JRE and this time modifying my setup worked flawlessly straight from the installation file itself.

    The setup file with included JRE is named OOo_3.0.0_Win32Intel_install_wJRE_en-US.exe and the one without is OOo_3.0.0_Win32Intel_install_en-US.exe.

    The problem here seems to be, that by default you just get JRE-including installation files from openoffice.org.

    Do the following to get a setup-file for OpenOffice 3.0 without JRE:

    1. Go to http://www.openoffice.org and click on "I want to download OpenOffice.org"
    2. Don’t download but click the small link below called "Get more platforms and languages".
    3. On the following page there is a small checkbox "Include the Java JRE with this download" just above the list of the download links
    4. Uncheck this checkbox
    5. Choose your favorite OpenOffice.org installation below from the list, this time you get a version which has no JRE included

    Maybe this little guide is helpful for others too if they hit the same problem as I have.

  • FireSync

    Just an hour ago or so I tried to set up a backup to my NAS for some of my folders. I found the tool FireSync and its description sounded promising. I tried to find some reviews but since it has been published just today. So I gave it a shot.

    I should have been more careful and try out the backup in a dummy folder, not my main application collection. During the first run of the backup there was an error that "Disk is full" at the backup source. As if that’s not strange enough a retry just found 4 or so changed files. Hm… After some moments I checked back the source folders. The folders were still present, but not the files which were contained within them. WTF? I made sure I didn’t check the "delete after sync" checkbox and it wasn’t. Nevertheless, the files were gone.

    Currently I’m busy with recovering the deleted files with NTFS Undelete. So far everything looks good and it seems that I can restore all of my files.

    So, if you ever want to try out the backup/sync tool FireSync, test it out in a dummy directory.

  • Microsoft opens more protocol specifications

    As I just have read, Microsoft has released more specifications under its Open Protocol Specifications program. I browsed a bit through it and recognized that it now also contains specifications on protocols between Exchange and Outlook. It may very well be that I’m wrong here but if this means that now the whole communication between Outlook clients and Exchange servers is documented and freely available, I guess it will now be just a matter of time until many of our beloved mail clients will not only be able to use IMAP/POP3/SMTP as the protocols to talk to MS Exchange but use the custom/propietary protocol/API for accessing the mail servers. Also, groupware and calendar applications will be able to integrate with the excellent organisation-features (appointments, people availability, address completion, etc.) of exchange into their software.

    I really hope, that my interpretation of the things I saw so far is true…

  • Skype issues

    In the last few days, my Skype-contacts and I have experienced several connectivity issues. Messages not being delivered or being delayed for hours (some say even days). A quick look around on the Skype homepage revealed no further insight. Altough I saw, that Skype recently reached 12 million concurrent users online, maybe they have some slight problems on the backend side…

  • The power of ‘just do it’

    When you’re working in a large team it is the case that from time to time someone has an idea how to increase the effectivity or productivity by using a new technology or tool.

    The common way of incorporating enhancements in general is to do a little bit of research on the topic, then present the results to a project leader or manager and after that decide to do more investigation or incorporate the thing into the project.

    The downsides of this way are, that it can take quite some time and maybe the person responsible for the final decision does not have enough knowledge and overview of the whole process and environment to be able to make the right decisions.

    But sometimes this whole trouble can be saved with the what I call "just do it"-approach. This means that one or several developers set up a new tool or process and "just use it" without asking their bosses or team leads before.

    At my workplace there are several examples for this and many of them have proven to enhance our daily work for a great extend. For example, some developers just set up a CVS server and began using version controlled sourcecode. Bam! Development speed went up, because they could exchange their source faster and adapt to the source changes of others more easily. But then some conflicts and subtle changes of the code more often broke existing functionality. Another "just do it" solved the problem: automated test cases. At the same time the "just do it" of Extreme Programming also enhanced our productivity and output even if we didn’t adopt all of its points and requirements (for example Pair Programming, which at that time was still a cornerstone of XP but seems not to be anymore today, nowadays it seems more to resemble Ping-Pong Programming). Also the introduction of Bugzilla sped up our development speed and aided documentation and traceability of changes and decisions.

    In the new project two weeks ago I saw the need for a change of the communication practices. The team has grown to a size, where discussions and decisions cannot involve the whole team anymore without ending in trouble or boredom. But letting only a small group decide on the steps affecting the whole team holds the risk of ignoring the knowledge and experience of the rest of the team. So after a small dispute with some members of the team I decided for myself to set up a forum (namely phpBB3) to get around this problem and presented it to the team. It seems now, that the forum will get accepted as a communication platform where discussions can take place utilizing the know-how of the whole team while avoiding boring and unproductive meetings. We’ll see how it will integrate but the chances are not that bad that this will be another "just do it" success story.

    Something which is a requirement for such successes is, is the support from the applications in questions. If it takes days to set up a server or to integrate it into an existing environment (common logins/LDAP, mail, etc.) the tool almost rules itself out of the possible candidate list for "just do it"s. It is essential that it is possible to set up an application or server quickly and with as minimal configuration effort as possible. Also it must be possible to move an application from a personal or test-machine to a server if it proves to be that successful that the need for a more reliable environment arises. The application should support backup and restore of configuration options and the database contents.

    I personally think, at our workplace the largest leaps in efficiency, productivity and reliability have had their seed in such "just do it" actions. Mostly the developers theirselves know best how to improve their work so why make it hard for them to change structures or procedures? Or even worse, force applications and tools on them which add no value to their work without asking them beforehand…