Sunday, February 16, 2014

The end...

This blog is officially out of service. I finished my phd, although it was not my opinion. 



I wanted to write at the blog every week, but usually the time pressure and the necessity to do other things, such as hanging out with friends or socialize, made me to spend less time time on the screen. Anyway, the journey to the end was really once in a lifetime experience. All the trouble, all the trips i did, all the people i met.. so many nice and bad memories. I will miss the traveling, the excitement for walking on new grounds, new places and of course i will miss many good friends that are now scattered around the world!

For those that are in the middle or at the end of getting their phd, i wish them good luck. It is not an easy journey... and still after 4 years, i 'm not sure if it was 100% worth. But one thing is for sure: don't be afraid to travel, to push your self to the limits (ok if you over-burn then you should rest.. but i guess you know your self :)).


Maybe i should write down one day my experiences... it maybe worth reading them.

Good luck to the remaining phd students!! You will make it...  

Tuesday, March 12, 2013

An all time classic for shrinking the paper from here. True story and unfortunately it is happening now :(

Tips and tricks for reducing the number of pages in a research paper from PhD Comics.
Tips and tricks for reducing the number of pages in a research paper from PhD Comics.


Valve 's handbook for new employees & Half-Life 3

I recently came up with the handbook for new employees in valve. You can find it here.  Except describing the wonderful way of working at valve,  i noticed this:
A Valve employee discuss with another employee wearing a Half-Life 3 T-Shirt.
A Valve employee discuss with another employee wearing a Half-Life 3 T-Shirt.

I think it is time for new version of Half Life.. 3! It will happen.. soon!

Sunday, October 28, 2012

Compiler books for optimizations

Compiler books are an important asset during the course of phd, not only as a reference book but also as a inspiration source. Sometimes you just have to apply a number of old and well know techniques to your topic to achieved the desired results. I recently started looking for a number of compilers books that i had access to a number of books from the university's library. Some of them are:





Optimizing Compilers for Modern Architectures: A Dependence-based Approach. One of the best compiler books that covers current state of art optimizations. A phd student must first start reading this book before starting working with transformations and optimizations. The book covers classic topics of compiler optimization such as: vectorization, parallelization, enhancing find and coarse grain parallelism, memory hierarchy management, and instruction scheduling. The book contains a large number of examples for explaining the performance impact  and drive the programmer to write their programs for obtaining best possible performance. (Amazon)






Front Cover
The Compiler Design Handbook. There are two versions of the books. The first edition focus mostly on well know transformation techniques, such as instruction scheduling, data flow analysis SSA form, register Allocation etc. On the other hand the second editions refresh for the new advances in the compiler regions, such as Worst-Case Execution Time, energy analysis static program, energy-aware compiler optimizations, analysis for security, and dynamic compilation. Each chapter is self-contained and treats its topic in depth. The book offers a unique opportunity for researchers to refresh and update their knowledge, refine their skills, and prepare for future innovations.






Front Cover
Compiler Construction: Principles and Practice. This book is introductory to the compilers. The authors use mostly the C-like language in their examples. If you are curious to understand how the theory about compilers applies to the C language, then this is your book!  (Amazon)






 

Engineering a Compiler:  Mostly for introduction, but also some advance topics, such as  object-oriented languages, construction of static single assignment forms, instruction scheduling, and graph-coloring register allocation.









Compilers: Principles, Techniques, and Tools. The classic dragon book. I studied a bit during the undergraduate course. Only introductory and a bit outdated. However, it still remains a reference point for newcomers. (Amazon)









Programming Language Pragmatics: Comprehensive programming language textbook. Taking the perspective that language design and language implementation are tightly interconnected. Includes topics and comparison between many languages including: Java 7, C++, C# 3.0, F#, Fortran 2008, Ada 2005, Scheme R6RS, and Perl 6.














Advanced Compiler Design & Implementation. This book is a step ahead from the introductory books. It starts describing more realistic implementations and gived a coverage for the optimization techniques. It gives good detail on all major approaches and is up-to-date on important techniques like SSA form and partial redundancy information. The downsize is the size of the book. (Amazon).


Friday, September 7, 2012

Conferences for compilers

Here is my list with the conferences suitable for submitting compiler papers, with an approximation of the deadline:


CS                               Deadline: ~January 10
Computing Frontiers  Deadline: ~January 10
PACT                           Deadline: ~March 10
Supercomputing          Deadline: ~April 20
HiPEAC                       Deadline: ~June 10  
POPL              
                Deadline: ~July 1
ASPLOS                      Deadline: ~July 10
PPoPP                         Deadline: ~August 10
CGO                            Deadline: ~September 10
IPDPS                          Deadline: ~September 25
CC Deadline: ~October 1st
PLDI                             Deadline: ~November 10



Workshops:

LCPC 2012                  Deadline: ~May 20



Tuesday, July 31, 2012

Getting your songs from grooveshark!


gd_logo.png (128×128)
Grooveshark is an search engine, and streaming service for music. Users can stream and upload music that can be played immediately or added to a playlist. I 'm using grooveshark quite offen during my working hours. However, one day i decided to find a way to download music to my laptop for playing music offline or transfer them to my phone. After Googling a bit, i came up with the Groovedown. It is a java application and it is well mantainated. In linux you can run the application using this command:
java -jar GrooveDown.jar
Everything worked fine without a problem, and in a few minutes i had my entire playlist downloaded.


Wednesday, July 25, 2012

Skype 4

Last days i had some serious problems with the Skype. Either was not working, either the applicaiton was crashing. The version i was using was 2.2, quite old. So i though it was time to update to the latest version. So i did it:



What i like: fixed the issue with the v4l1compat.so library, now works out of the box; new icons, they look much more fresh. Of course the stability of the application improved as expected.  What i don't like: the new conversation window, although i believe i will get used it; and the longer load time, although the disk usage is lower than before (at least i think so).

Bottom line: give it a try, it is worth it. Even for the stability reasons or because you want to change the view!