Abd Allah Diab's Blog

My Technical Blog

Follow me on TwitterRSS Feeds

  • Home
  • About me

Brainfuck Python Interpreter

Oct 20th

Posted by Abd Allah Diab in Programming

No comments

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

More >

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Brainfuck, Interpreter, PLY, Python

Binding NetBeans with Flex

Oct 7th

Posted by Abd Allah Diab in Programming

4 comments

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 Problem

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:

#ifdef __cplusplus

#include <stdlib.h>
class istream;
#include <unistd.h>

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).
More >

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Bison, Compiler, Flex, Lex, NetBeans, Python, Yacc

Get Online Users in Django

Sep 22nd

Posted by Abd Allah Diab in Programming

2 comments

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.

More >

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Django, Extending User Module, Middleware, Online Users, Programming, Python

I'm Learning Python part 10 (last one)

Sep 16th

Posted by Abd Allah Diab in Programming

2 comments

I'm Learning Python part 10

(last one)

Python Logo

Back to blogging

As usual, I will apologize for not blogging for a long time.
I have been very busy, university exams, university projects, job projects, teaching and learning.

Python Course

At Damascus University, in the faculty of informatics we managed to create free courses to students, and I was one of the teachers there, I taught Python to students.
As far as I know this course was the first Python course in Damascus University.
Even though the students were a few (actually a very little few about 8 ~ 10 students) the course was great. We managed to learn Python 2.6 Syntax, a little bit of its standard library and a little bit of PyQt4 in about 7 days x 2 hours daily.
As far as I know too, students understood it and found it great, and I hope they’ll be using this great language more in their programs.

Why last one?

The tour with Python ends here, while it ends here it starts here too, it ends here because so far you’ve learned what you need to start your own path in Python. And it starts here because you’re fully equipped with the base tool to discover more tools, I’ll let you discover the standard library and 3rd-party libraries on your own, because everyone differs in his/her interests.
I’ll be blogging more on more technical issues but they might not be I’m Learning Python series :) .
Let’s stop talking here and move directly to the heart of our last lesson.
More >

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
CS, IT, Programming, Python, Tutorial

Bring Down IE6

Mar 28th

Posted by Abd Allah Diab in Activities

No comments

I have copied the following post from this site.

Discover the mission

The premise is simple: Internet Explorer 6 is antiquated, doesn’t support key web standards, and should be phased out. This isn’t about being anti-Microsoft, it’s about Microsoft’s lack of development in the browser market. With IE7/8 not available for Windows 2000, IE6 accounts for up to 20% of web usage, primarily via business users. Clients pressure designers to ‘force’ sites to work in IE6, and designers, not wanting to lose business, comply, using hacks and workarounds. This wastes time and money. Microsoft needs to fix this, designers need to unite, and we all need to move on.

Read the article

In our article, ‘Calling time on IE6’, we ask designers and developers if it’s finally time to take IE6 behind the shed and shoot it. Major names in the web industry debate our mission, talking about the pros and cons behind dumping IE6. How feasible is it to shun the browser entirely? What can you do to minimise the impact IE6 has on you and your clients (and increasingly tight budgets)? And what can and should Microsoft do to help us all move the web and web standards on? Find out by reading the article, or just ‘skip to the end’ by looking to the right and getting involved.
More >

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Bring Down IE6, Browser, IE6, Web Development, Web Standards
«12345»
    • Recent comments
    • Popular posts
    • Archives
    • Tags
    • Categories
    • Activities (3)
    • Programming (19)
    • Uncategorized (2)
    AJAX Bison Brainfuck Bring Down IE6 Browser C++ Companies Compiler CS Damascus Django Drupal Extending User Module Flex FOSS FOSS 09 Free Software Google Talk iCommunity IE6 Inquiry Interpreter IT JavaScript jQuery Lex Linux Middleware NetBeans Notepad++ Online Users Open Source Plugin PLY Programming Python SCS Status Change Syria Tutorial Ubuntu University Web Development Workshop XMPP
    • May 2010 (1)
    • March 2010 (1)
    • February 2010 (2)
    • November 2009 (1)
    • October 2009 (2)
    • September 2009 (2)
    • March 2009 (2)
    • February 2009 (3)
    • December 2008 (2)
    • November 2008 (2)
    • October 2008 (5)
    • June 2007 (1)
    • Notepad++ Plugin To Run Python Scripts (13)
    • I'm Learning Python part 7 (4)
    • Binding NetBeans with Flex (4)
    • Google Talk Status Countdown (3)
    • Your drawings are Objects in GDI+ (2)
    • Banthrass.de » Blog Archive » Python: Notepad++ mit Python verwenden: [...] Plugin zum Ausführen von [...]
    • Abd Allah Diab: marc: i still cant understand what does this do? does it auto change ur status based on a...
    • marc: i still cant understand what does this do? does it auto change ur status based on a schedule?
    • Razec: Congratulations for the excellent job. Thanks for your update. It's working here too. ;)
    • Eyad: PBUY friend, There is no need to talk about wonderfulness because it already seems...
  • Follow Me!

    Follow Me! on TwitterFollow Me! on LinkedInFollow Me! on DiggFollow Me! on RedditFollow Me! on BuzzFollow Me! via RSS
Mystique theme by digitalnature | Powered by WordPress
Any text provided in this blog is licensed under the Creative Commons Attribution-Share Alike 3.0 License
RSS Feeds Top