What is brainfuck?
Brainfuck is a programming language
This is the definition from Wikipedia:
The brainfuck programming language is an esoteric programming language noted for its extreme minimalism. It is a Turing tarpit, designed to challenge and amuse programmers, and is not suitable for practical use. Its name has been variously bowdlerized. The name of the language is generally not capitalized, although it is a proper noun.
This programming language is very easy to learn, very hard to do work with. As the Wikipedia article describes it; the language is an esoteric language, which means it was created for fun
I discovered the language while I was reading an article about writing the perfect settings file for Django. The author used DPaste website to link to pieces of code. DPaste website says that it uses Pygments for syntax highlighting. Pygments say that their syntax highlighter even supports brainfuck. And that’s how I got to brainfuck
After I read articles about the language I wanted to test some code of it, I found some online interpreters, but I wanted to test some code on my machine. I found a compiler for it, but I’m using Windows 7 on my machine and the compiler is not compatible with it. I got pissed off and I decided I have to write my own interpreter
Continue reading “Brainfuck Python Interpreter”
In my faculty – Informatics Engineering, Damascus University -, in the 4th year of Software Engineering Department, we have to build a compiler :shock:.
I like using NetBeans for developing applications, it supports lots of languages and tools; like C, C++, Java, Python, Ruby and more. The compiler would be implemented in C++.
The first two phases of implementing a compiler are: building a lexer (tokenizer) and building a parser. The lexer is implemented using GNU Flex while the parser is implemented using GNU Bison.
The first problem I faced when starting the project was to tell NetBeans how to handle the lex file:
The lex file must be passed to the flex tool to generate a C++ code file.
The second problem was that when the code file is generated it contains errors:
When using building the file you’ll find that it contains errors regarding the usage of istream. (You might not face this problem, then you’re a lucky programmer).
Continue reading “Binding NetBeans with Flex”
I was upgrading my Django Bookmarks site, and I wanted to list the online users. I searched the internet and I found a simple method, but it doesn’t work properly. So I developed my own method.
Why the simple method didn’t work?
The problem with it is that it depends on the last login date in the user model. This field is updated on every login for the user.
Imagine the following scenario:
* The user X logs in @ 1:00 pm.
* The user X posts a new post @ 1:30 pm.
* The user X comments on a previous post @ 1:35 pm.
* The user X leaves the website @ 1:40 pm.
* The user X comes back to the website @ 3:00 pm.
* The user X is logged in since the session cookie has not expired yet.
* The user X posts a new post @ 3:15 pm.
* A guest enters the website, and looks at the online users corner.
The guest won’t see X’s name in the list of online users, simply because X’s last login date is @ 1 pm, even though user X is now online and he has just posted a new post.
Continue reading “Get Online Users in Django”
I mentioned many times before that I was planning to make a workshop about Free Open Source Software (FOSS) in Damascus, and thankfully I did 🙂
The idea was to spread the culture of FOSS between the interested people here in Damascus.
What I noticed was that almost 99% of computer science students didn’t know what Free Software is and what Open Source software is!
Continue reading “iCommunity FOSS 09”
After a month of not blogging, I’m back to blogging for Python.
This month had a lot in it:
- Computer Science exams @ Damascus University, so I had to study a lot.
- Scientific Calculations Project, the project of this semester.
- FOSS Workshop, which my friends and I arranged to in Damascus, and it was more than wonderful.
After finishing my Scientific Calculations Project I made the choice of removing Windows for good from my computer, I’m going to make Ubuntu my only operating system to use.
Continue reading “And we’re back”
Hello, if you don’t know already, I’m a Computer Science student from Damascus University Syria.
My friends and I are working on an Open Source Free Software workshop here at the faculty of Computer Science, the workshop will take place on February 2009, but we are gathering some resources and information from now.
The workshop will have lectures about Open Source, Free Software, Licenses, Open Source Free alternative for Commercial Proprietary software, and of course Linux OS.
The workshop will also contain an Installation Festival where we are going to install Ubuntu 8.10 Intrepid Ibex for students on their devices and teach them how to use it.
I’m gonna put some questions here and I’ll ask you to answer it, whether you own an Open Source company or you work for one.
I’m neither a journalist nor an analyst seeker, but I want some answers from you to introduce you the way you want to students, please don’t waste this message because I’m not a journalist, we want to spread the culture of Free Open Source Software here between students and contributing to the workshop would be very kind of you.
Continue reading “FOSS Workshop”