1337 δολάρια για προγραμματιστικά σφάλματα στον Chrome
Posted: January 29, 2010 Filed under: Λειτουργικά, Προγραμματισμος | Tags: 1337, chrome, google Leave a comment »Η Google ανακοίνωσε ένα πρόγραμμα με το οποίο θα ενισχύσει την ασφάλεια του Chrome, δηλαδή του δωρεάν browser που παρέχει η ίδια εταιρία. Κάθε προγραμματιστής που βρίσκει bugs στην βάση του ανοιχτού κώδικα του Chrome θα ανταμείβεται από 500 μέχρι 1337 δολάρια. Η αμοιβή ποικίλει καθώς θα αξιολογείται το ειδικό βάρος στο κενό ασφαλείας. Εννοείται, ότι τα σφάλματα που οδηγούν στα μεγαλύτερα προβλήματα θα επιβραβεύσουν με περισσότερα χρήματα.
Στον πηγαίο κώδικα της εφαρμογής ήδη έχουν συνεισφέρει ερευνητές και μεμονωμένοι επαγγελματίες, αλλά σε κάθε περίπτωση το χρηματικό έπαθλο αποτελεί ένα διαφορετικό πόλο έλξης. Όμοια, τα προηγούμενα χρόνια η Mozilla Inc, που βρίσκεται πίσω από τον Firefox είχε επικηρύξει τα σφάλματα με 500 δολάρια.
Η Google θα αποζημιώσει εκτός από οικονομικά και ηθικά τους προγραμματιστές που θα ανακαλύψουν τρύπες στο λογισμικό. Κατά πάσα πιθανότητα θα αναφέρεται το όνομά τους στις εκδόσεις του λογισμικού, όπως εδώ στο τμήμα “Thank you”. Εάν βρείτε κάποιο bug μπορείτε να το αναφέρετε εδώ. Περισσότερα στην ανακοίνωση της Google.
iPad
Posted: January 27, 2010 Filed under: ideas, Λειτουργικά, multimedia | Tags: iPad Leave a comment »
Jobs and iPad

Image viewer

Browse the web

Youtube and iPad

Movies

New York Times

Various

Need for Speed and iPad

Keyboard

Keyboard (2)

Ημερολόγιο

ιΒοοκ

iBook (2)


iDoc

$

Case (1)

Case (2)
Μερικά χαρακτηριστικά:
- Ο Jobs είπε “It is the best browsing experience you’ve ever had.”
- iPad είναι μισή ίντσα και ζυγίζει μόλις 1.5 pounds. Έχει καλή οπτική γωνία για να βλέπεις την οθόνη από πλάγια.
- 1GHz Apple A4 chip και έχει 16GB μέχρι 64GB flash δίσκο.
- Θέλουν να αντικαταστήσουν το συμβατικό βιβλίο και την εφημερίδα. Και τα δύο θα τα αγοράζεις online και θα τα κατεβάζεις στην συσκευή. Το iBook είναι κάτι σαν το Kindle της Amazon. Βίντεο εδώ.
- Συγχονίζεις τα πάντα: photos, music, movies, TV shows, contacts, calendars, bookmarks and applications, like the iPhone.
- Τον Ιούνιο θα βγεί εκτός Αμερικής
- Έχει WiFi και 3G. Η AT&T θα είναι πάροχος για 3G
- Βιντεάκι με demo του Google maps
- $499 δολάρια με 16GB χωρίς 3G…
- Ο Steve Jobs είπε “our most advanced technology in a magical & revolutionary device at an unbelievable price.”
vim, open a file in a specific line
Posted: December 7, 2009 Filed under: ideas, Προγραμματισμος, Linux | Tags: vim 1 Comment »One of the things that if you try, then you cannot live without them. If you are spending time in the UNIX console and you are using vi as your editor, I am sure that you used grep in order to find a word in a text file. After the results came up to STDOUT you opened the file with vi and then you moved to the specific line.
So, go to your prompt. Use grep -n to print the line number along with the results. Then use vi -c LINE filename. This command will open the file filename at line LINE.
5 stars.
Turorial HelloWorld AIR application in Linux. Create a package from scratch
Posted: September 27, 2009 Filed under: DIY, Προγραμματισμος, Linux, WedDev | Tags: adobe air, adobe flex, SDK 9 Comments »I am running a Fedora 11 Linux in my laptop. These days I decided to spend some time reading about Adobe AIR/FLEX application frameworks. I don’t want to extend this article writing theory and arguments, however it is my feeling that these applications will be prefered in the near future from desktop users. I am reading a book from Wrox, Adobe AIR Create Modify and Reuse (2008) and the first milestone for the developer is to create a “blank” application that prints the canonical programming string to stdout, ie “Hello World”.
Based on the walk-through of this book I will try to describe the steps in order to run your first application in less that half an hour, including the download time of the prerequisites.
- First you need Adobe AIR run time. AIR stands for Adobe Integrated Runtime. Adobe AIR is a cross-platform runtime that runs desktop applications compiled under the AIR framework. Go to google.com and search for “Adobe AIR Linux”. The results will send you to the Adobe.com site for AIR. Download the appropriate file. Once you are down you must have a file called AdobeAIRInstaller.bin in your downloads directory. Make this executable and from the command line enter ./AdobeAIRInstaller.bin. A GUI application will be launched and will guide you for the AIR installation. You must be root in order to install. If care about disk quota you can delete the AdobeAIRInstaller.bin after this step.
- You now need to proceed to the installation of FLEX SDK. Adobe AIR is the runtime environment of your application and FLEX SDK contains the tools you need to compile, debug and deploy your HelloWorld application. Once again use google.com or search via adobe.com for FLEX 3 SDK. I downloaded flex_sdk_3.4.0.9271.zip and extracted the contents under /home/lefteris/flex. The download takes some time.
- Add the bin directory of FLEX SDK to your PATH. This is easy. Open ~/.bash_profile and append the new bin to your PATH variable. Like this PATH=$PATH:$HOME/bin:/home/lefteris/flex/bin. Save this file and use the source command in order to update your system without logging out. source ~/.bash_profile. Now you can use the binaries under flex/bin without using the absolute path at your prompt.
Now you need to type some code. Basically you need two files.
- a main file – this can be either an MXML (.mxml) or ActionScript (.as) file
- An application descriptor file using the XML markup
I created a directory HelloWorld in my workspace. The two files that we need for our minimal application are below.
[lefteris@localhost helloworld]$ cat HelloWorld.mxml
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:WindowedApplication
xmlns:mx=”http://www.adobe.com/2006/mxml”
layout=”vertical”
windowComplete=”completeHandler();”>
<mx:Script>
<![CDATA[
// window has completed initial layout and is made visible.
private function completeHandler():void
{
}
]]>
</mx:Script>
<mx:Label text=”Hello World” />
</mx:WindowedApplication>
[lefteris@localhost helloworld]$ cat HelloWorld-app.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<application xmlns=”http://ns.adobe.com/air/application/1.0″>
<id>com.aircmr.HelloWorld</id>
<version>0.1</version>
<filename>HelloWorld</filename>
<name>Hello World</name>
<description>An AIR app to say Hello</description>
<initialWindow>
<content>HelloWorld.swf</content>
<title>Hello World</title>
<systemChrome>standard</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
</initialWindow>
<installFolder>AIRCMR/HelloWorld</installFolder>
<programMenuFolder>AIRCMR</programMenuFolder>
</application>
So our dir contains HelloWorld.mxml and HelloWorld-app.xml. We are almost there. Ready to compile. cd to your dir and enter the following command
amxmlc -load-config “/home/lefteris/flex/frameworks/air-config.xml” -output HelloWorld.swf HelloWorld.mxml
This will compile your code and create the HelloWorld.swf. Perfect, now let’s run our first app. To launch and preview the application, run the AIR Debug Launcher (ADL) tool found in the /bin folder of your installation directory. A single argument of the application descriptor file is needed to run the ADL. If you look at the descriptor file (HelloWorld-app.xml), you’ll notice that the content value of the initialWindow element is set to the SWF you previously compiled. Type
adl HelloWorld.xml.
Unfortunatelly this did not work for me the first time I run it. I got the error “cannot execute binary file”. I searched a little bit and I realized that I needed to overlay the AIR SDK on top of the FLEX SDK in order to invoke the correct adl. The book described the procedure for MAC and Windows but not for Linux (that is the reason I am typing right now). So I browsed adobe’s blogs that indicates that we need AIR SDK for Linux. Again search for Adobe AIR SDK for Linux and you will conclude to have a new file under your Downloads directory called air_1.5_sdk.tbz2. Create a new directory for Adobe AIR SDK, mine is ~/airsdk move your tbz2 file here and trigger the command “tar jxvf ~/air_1.5_sdk.tbz2″. Now you need the next hack in order to make your stuff moving:
- cd bin
- mv adl adl_lin
- mv adt adt_lin
Don’t ask, do it. Remember that you came here, searching for direction creating a HelloWorld app, right?
Add the new bin directory to your PATH again. My path contains PATH=$PATH:$HOME/bin:/home/lefteris/flex/bin:/home/lefteris/airsdk/bin. So we are almost done:
[lefteris@localhost helloworld]$ ls
HelloWorld-app.xml HelloWorld.mxml HelloWorld.swf
[lefteris@localhost helloworld]$ adl_lin HelloWorld-app.xml
error while loading initial content
[lefteris@localhost helloworld]$
What went wrong? What is “error while loading initial content” message mean. This is a known bug/issue to Adobe and is already resolved. You need to make the last change before you launch your application. Open your HelloWorld-app.xml file and change the line <application xmlns=”http://ns.adobe.com/air/application/1.0″> to <application xmlns=”http://ns.adobe.com/air/application/1.5“>.
Now run adl_lin HelloWorld-app.xml again and this is it. We are done.

Hello World from AIR and FLEX
Our application is up and running. It just prints a message to the screen however it is an application. Close it by pressing ‘x’ at the top right corner.
Do you want to go a little bit further? In a few steps your project can be turned from a binary file to a complete package. Take 5 more minutes and you will not regret it. Let’s package our application. Go to your prompt and create a certificate in order to sign your applications. This will inform your client about your identity.
adt -certificate -cn HelloWorld 1024-RSA certificate.pfx password
You just created a certificate.pfx file in the current directory. Now let’s package.
adt -package -storetype pkcs12 -keystore certificate.pfx HelloWorld.air HelloWorld-app.xml HelloWorld.swf
Once prompted enter the password. Your directory now contains
a file called HelloWorld.air. Let’s try to install it. Double click the .air icon to launch the installer. Just a note here. I faced some problems at the beginning with the permissions and I ran the installer like this
[lefteris@localhost 1.0]$ pwd
/opt/Adobe AIR/Versions/1.0
[lefteris@localhost 1.0]$ ls
Adobe AIR Application Installer Adobe AIR Application Installer.swf airappinstaller libCore.so Resources
[lefteris@localhost 1.0]$ sudo Adobe\ AIR\ Application\ Installer /home/lefteris/714/air/helloworld/HelloWorld.air
as a sudoer things are always easier. Anyway either by double click or with the above sudo command you will see the following
Click the install button
select the directory you want to store the files of the application and press the “Continue” button.
Agree with the terms and conditions. You are done. Your application is installed in the system. Go to the your Menu and launch it
In case you need to uninstall it use the Adobe Uninstaller from your Menu
You see that Hello World is there. You may receive this error message if you try to uninstall this package:
meaning that you need to be root to uninstall. (try to do it using sudo).
Conclusion: We started this small project from scratch. We gathered all the prerequisites in order to create an *.air package, ie AIR/FLEX sdks AIR runtime, we wrote two simple scripts and we finally created a signed package.
I hope you liked this small tutorial. Please send me feedback.
Regards,
Lefteris
I have a link (2)
Posted: September 9, 2009 Filed under: Break, FreeTime, ideas, ΕλεΧρονος, Linux | Tags: I_Have_A_Link, Link Leave a comment »1. National Flags Made out Of food,
http://www.toxel.com/inspiration/2009/09/08/national-flags-made-out-of-food/ (design)
2. play monopoly online with Google Maps, starts today
http://www.monopolycitystreets.com/ (games)
3. Loopa Scava meets Cayetano – Up And Down (feat. Pelina)
http://www.youtube.com/watch?v=xynA67houcY (music)
4. political group support gay marriage advertisement. Long live the marketing
http://dailyshite.com/2009/09/sineads-hand/ (politics)
5. linux in a usb distro
http://www.linux.com/learn/tutorials/43841-howto-create-a-live-usb-distro (linux)
6. be proactive
http://the99percent.com/tips/5902/beware-of-reactionary-workflow (@#$*374)
7. bug, OpenOffice.org won’t print on Tuesdays
http://mdzlog.alcor.net/2009/08/15/bohrbugs-openoffice-org-wont-print-on-tuesdays/ (coding)
8. the black snapper
http://www.theblacksnapper.com/ (photography)
9. ibm research spends time in social networking
http://ibmresearchnews.blogspot.com/2009/09/inventors-corner-us-patent-7519658.html (social nets)
10. GIT in one hour screencase
http://www.youtube.com/watch?v=OFkgSjRnay4 (oreilly webcast)
11. open cmd from the windows explorer
http://superuser.com/questions/33366/how-to-make-using-command-prompt-less-painful/33398#33398 (tip)
12. Hard drive rgb clock
http://hackaday.com/2009/09/07/hard-drive-rgb-clock/ (hack a day)
CrunchBang Linux, Live Linux
Posted: April 12, 2009 Filed under: Linux Leave a comment »Always seeking for a good live Linux distro to carry it on my flash drive. CrunchBang Linux mimics Ubuntu and it is a distro featuring the Openbox window manager. Critics say that CrunchBang Linux is a faster Ubuntu. I will download it tonight (it’s 23:00 in Athens) and I will follow up the next week. To read more just visit the official url of CrunchBang Linux.

CrunchBang Linux
In case you are not familiar with Linux Live Distros in a few words: An excerpt from Wikipedia “Live CDs are unique in that they have the ability to run a complete, modern operating system on a computer lacking mutable secondary storage, such as a hard disk drive. Live USB flash drives are similar to live CDs, but often have the added functionality of automatically and transparently writing changes back to their bootable medium.” Read the whole article here (WikiPedia Article).
The http://www.livecdlist.com/ contains ratings and complete listings of the most popular linux live distros. If you are not familiar with live CDs put this area in work TODO list. Allow me to see potential in this application area.
The LXR Project
Posted: April 1, 2009 Filed under: Προγραμματισμος, Linux Leave a comment »The LXR project is a source code indexer and cross-referencer which can be accessed via a web-browser.
Ελεύθερο και ωραίο. http://sourceforge.net/projects/lxr
ELF injection.
Posted: March 31, 2009 Filed under: Linux | Tags: Λειτουργικά, Linux Leave a comment »Αυτές τις ημέρες ασχολήθηκα μετά από πολύ καιρό με το format των ELF files. Είναι μια πολύ σημαντική πληροφορία και γνώση. Η αιτία για το ξεσκόνισμα αυτών των γνώσεων ήταν η ανάγκη για post link modification ενός εκτελέσιμου. Η εντολή objdump -p mybinary στέλνει στην οθόνη πληροφορίες για το εκτελέσιμο όπως για παράδειγμα:
objdump -p Server
Server: file format elf64-x86-64
Program Header:
PHDR off 0×00000040 vaddr 0×0000000000400040 paddr 0×000000400040 align 2**3
filesz 0x00000001f8 memsz 0x00000000000001f8 flags r-x
INTERP off 0×00000238 vaddr 0×0000000000400238 paddr 0×0000400238 align 2**0
filesz 0x0000000001c memsz 0x000000000000001c flags r–
LOAD off 0×00000000 vaddr 0×0000000000400000 paddr 0×0000400000 align 2**20
filesz 0x00015fb3a5 memsz 0x00000000015fb3a5 flags r-x
LOAD off 0x00015fc000 vaddr 0x0000000001afc000 paddr 0x00001afc000 align 2**20
filesz 0x000219a90 memsz 0x0000000000a96d48 flags rw-
…
Dynamic Section:
…
NEEDED libssl.so.0.9.8
NEEDED libserver.so
NEEDED libc.so.6
RPATH /tools/lib
RUNPATH /tools/lib
INIT 0x46ffb8
FINI 0×1732514
HASH 0×400290
STRTAB 0×425730
SYMTAB 0x408eb8
STRSZ 0x37e95
SYMENT 0×18
DEBUG 0×0
PLTGOT 0x1b079b8
PLTRELSZ 0xb0d0
PLTREL 0×7
JMPREL 0x464ee8
RELA 0x45fc80
RELASZ 0×5268
RELAENT 0×18
VERNEED 0x45fbd0
VERNEEDNUM 0×5
VERSYM 0x45d5c6
To ενδιαφέρον είναι τα RT_RPATH και RT_RUNPATH τα οποία μπαίνουν στο Linking me -rpath,/tools/lib. Το ζητούμενο είναι να βρούμε τον τρόπο να προσθέσουμε πληροφορία μετά το compile. Ένα project που λέει ότι κάνει ακριβώς αυτό είναι το http://www.eresi-project.org/ (Reverse Engineering).