Two novelties around here. Musics to lift up the mood a little =].
Hope you enjoy! \^^
Bastille - Pompeii
Capital Cities - Safe And Sound
domingo, 20 de julho de 2014
domingo, 13 de julho de 2014
Showing my Linux Distro =D
A short post about my Linux Distro I've finished working yesterday (about a day to configure ArchLinux like I wanted).
It's Arch Linux, with Cinnamon (my favorite Linux desktop manager). I'm using Cinnamon since I met Linux Mint, and that's awesome for those who are tired from Unity, GNOME, KDE and others.
Very responsive and customizable. I'm still using Adwaita theme from GNOME, but I want to change it to Faenza icon theme and configure Conky like a system monitor on desktop area.
I've installed GNOME 3.12 tools available and gedit finally received a new and minimalistic design. With the gedit-plugins package is possible to convert gedit in a featurable programming IDE for Python and other languages (there are many syntax highlightning for each language). Browser and calculator that comes with GNOME 3 have the same visual theme and are fairly usable.
Sakura is a terminal based on Qt. and there is nothing, and I repeat NOTHING special about it, but is very lightweight (remembers XTerm but customizable).
ArchLinux allows having a top edge distro due constant repository updates.
Finally I gave up installing Windows on my notebook. Now it's just ArchLinux =]. Maybe will change in the future as usual, but for now, that's it.
Hope you enjoyed!
\o
It's Arch Linux, with Cinnamon (my favorite Linux desktop manager). I'm using Cinnamon since I met Linux Mint, and that's awesome for those who are tired from Unity, GNOME, KDE and others.
Very responsive and customizable. I'm still using Adwaita theme from GNOME, but I want to change it to Faenza icon theme and configure Conky like a system monitor on desktop area.
I've installed GNOME 3.12 tools available and gedit finally received a new and minimalistic design. With the gedit-plugins package is possible to convert gedit in a featurable programming IDE for Python and other languages (there are many syntax highlightning for each language). Browser and calculator that comes with GNOME 3 have the same visual theme and are fairly usable.
Sakura is a terminal based on Qt. and there is nothing, and I repeat NOTHING special about it, but is very lightweight (remembers XTerm but customizable).
ArchLinux allows having a top edge distro due constant repository updates.
Finally I gave up installing Windows on my notebook. Now it's just ArchLinux =]. Maybe will change in the future as usual, but for now, that's it.
Hope you enjoyed!
\o
terça-feira, 10 de junho de 2014
TED Weekly Spot #2
Two good TEDs that I watched recently. Both are a source of an alternative view about each subject.
Hope you enjoy it!
Hope you enjoy it!
quinta-feira, 1 de maio de 2014
SongSpot #7
Nothing better than good songs to forget your problems, unless this songs remembers you about those things.
This week, I'll avoid hearing these two from One Republic. But both are really good songs!
Hope you enjoy!
This week, I'll avoid hearing these two from One Republic. But both are really good songs!
Hope you enjoy!
quinta-feira, 24 de abril de 2014
The Essence of a Good Slide Set
Everyone knows that learning sometimes is a painly task, and is seen more as an obstacle for many students in more areas than can be cited in a bible-sized book.
Now I'm a Masters Student, and as expected, the load of work to each course I'm getting is way more huge than the "average graduation rhythm". Reading whole chapters to try to answer a not so nicely composed test is really demotivational, specially when you try to put all your efforts and get a low grade.
Books are great and is still the primary source of consistent knowledge on the world. Ebooks are great (true story...) but is still a book. No one have time to read a whole technic book during a course, and if you have, congratulations, you're one of the few that still have (patience and time, I mean).
That's where the Slide Set works. Reading slides is a practice over millions students, believe me, nothing is more rewarding to a college student than find a good set of slides that well explains all you need in few words (and with examples!).
Slides are a source of condensed knowledge, and if you know how to use it, is a good way to learn things the faster way possible. Many education professionals (in other words, teachers of all kinds), use it as a tool for his/her own sake - "It's a thing that helps me to organize my classes...".
I think the opposite. "Slides are tools not just for me to bring knowledge, but to share this knowledge in a simple and straight-forward way". Making a good slide set is more than a work, is an art. And don't think a slide with a figure is art, specially a picture of something that has no relation with what you're talking about in the rest of the set.
I intend to be a Teacher/Researcher in a near future (maybe next year if all goes right), but I'm still a student and have been thinking about how to organize a self-contained course, meaning that the material I use to give classes is the essential and is good enough to support my future students. This is a really tough task that demands time and hours of dedication (tried to make slides for a 30 min classes, consumed 6 to 8 hours of my time).
The thing is, who is going to give a class really needs to understand the real essence of each subject and do a travel-pack for anyone that wants to learn about that. And more, in a way that is not just words floating to the infinity and beyond. Things that are apparently linked to nothing are just ignored by most of people (including me).
Other important factor is, if you want to make good slides, having a good sense of colors and spacing is essential. A messy of fonts, colors, figures and GIFs is a children's playground, not a didatic material. Notions on transactions and using comments fields is a good way to organize your slides.
Too many words? BAD! Just an Image? BAD! An example without an explanation? Dispensable.
Exercises? At least a hint on how to solve is good too.
A good recipe to making a slide set (works for me at least):
- Use PowerPoint or Keynote : both have great "standard color schemes" that is way more adequate to all kinds of presentations. If you are not a design related professional, leave the work to the experts.
- If you don't know, learn to use TEMPLATES : templates are there to use, you want to put an Image with a sub, use the template for this, there are many of them to use.
- Present a Topics slide with the Agenda : presenting the schedule of what you will present on that slide set will improve your time synchronization during presentation and give a time notion for your target public.
- Shrinking is not an option : If you want to put a huge text/citation, don't reduce too much the font size, just cut it into smaller pieces and distribute in more slides, maintaining the main title.
- Animations are welcome : If you want to put some simulations (like an algorithm tracing, a network behavior, an industrial description) it's always very welcome. This kind of resource helps understanding specially iterative processes.
- Avoid complex transaction effects : You won't have the transaction resource if you export your slides to PDF, so, using animations like the running stickman on a block of paper is more adequate because it will not depend on effects.
That's more things to do and to know, but I will stop here.
Learn to use your own knowledge to express and share to another people is a great and rewarding task. Try it! =]
Hope you enjoyed!
Now I'm a Masters Student, and as expected, the load of work to each course I'm getting is way more huge than the "average graduation rhythm". Reading whole chapters to try to answer a not so nicely composed test is really demotivational, specially when you try to put all your efforts and get a low grade.
Books are great and is still the primary source of consistent knowledge on the world. Ebooks are great (true story...) but is still a book. No one have time to read a whole technic book during a course, and if you have, congratulations, you're one of the few that still have (patience and time, I mean).
That's where the Slide Set works. Reading slides is a practice over millions students, believe me, nothing is more rewarding to a college student than find a good set of slides that well explains all you need in few words (and with examples!).
Slides are a source of condensed knowledge, and if you know how to use it, is a good way to learn things the faster way possible. Many education professionals (in other words, teachers of all kinds), use it as a tool for his/her own sake - "It's a thing that helps me to organize my classes...".
I think the opposite. "Slides are tools not just for me to bring knowledge, but to share this knowledge in a simple and straight-forward way". Making a good slide set is more than a work, is an art. And don't think a slide with a figure is art, specially a picture of something that has no relation with what you're talking about in the rest of the set.
I intend to be a Teacher/Researcher in a near future (maybe next year if all goes right), but I'm still a student and have been thinking about how to organize a self-contained course, meaning that the material I use to give classes is the essential and is good enough to support my future students. This is a really tough task that demands time and hours of dedication (tried to make slides for a 30 min classes, consumed 6 to 8 hours of my time).
The thing is, who is going to give a class really needs to understand the real essence of each subject and do a travel-pack for anyone that wants to learn about that. And more, in a way that is not just words floating to the infinity and beyond. Things that are apparently linked to nothing are just ignored by most of people (including me).
Other important factor is, if you want to make good slides, having a good sense of colors and spacing is essential. A messy of fonts, colors, figures and GIFs is a children's playground, not a didatic material. Notions on transactions and using comments fields is a good way to organize your slides.
Too many words? BAD! Just an Image? BAD! An example without an explanation? Dispensable.
Exercises? At least a hint on how to solve is good too.
A good recipe to making a slide set (works for me at least):
- Use PowerPoint or Keynote : both have great "standard color schemes" that is way more adequate to all kinds of presentations. If you are not a design related professional, leave the work to the experts.
- If you don't know, learn to use TEMPLATES : templates are there to use, you want to put an Image with a sub, use the template for this, there are many of them to use.
- Present a Topics slide with the Agenda : presenting the schedule of what you will present on that slide set will improve your time synchronization during presentation and give a time notion for your target public.
- Shrinking is not an option : If you want to put a huge text/citation, don't reduce too much the font size, just cut it into smaller pieces and distribute in more slides, maintaining the main title.
- Animations are welcome : If you want to put some simulations (like an algorithm tracing, a network behavior, an industrial description) it's always very welcome. This kind of resource helps understanding specially iterative processes.
- Avoid complex transaction effects : You won't have the transaction resource if you export your slides to PDF, so, using animations like the running stickman on a block of paper is more adequate because it will not depend on effects.
That's more things to do and to know, but I will stop here.
Learn to use your own knowledge to express and share to another people is a great and rewarding task. Try it! =]
Hope you enjoyed!
quarta-feira, 23 de abril de 2014
VANETs and How can a vehicle chat to another one?
Me: "Can my car talk to my neighbors car?"
Tonimobile: Yes, I can! (on a robotic vintage voice)
Me: "WHAT?"
In a distant future, something like this dialog would be possible, but on a realistic near present, at least exchange some information between vehicles is a valid way of thinking.
On this days, where anything between a refrigerator and a drone have wireless access to networks like WiFi, WiMAX, 3G, 4G, GPS and others, thinking to have networks connected in cars, trucks and buses aren't absurd anymore. Think if you are on a highway, travelling, and on your car panel, information like weather forecasting, real-time news about your path and destiny, traffic mapping and many others. That would be great right? RIGHT! And more, if your car understand the information about an accident that occurred a few meters from you and prevent you to engage on that destructive and dangerous perimeter. Wow!
Someone could say: "Yeah, but with my iPhone I can get better things!". Of course you can, but using an iPhone driving is prohibited and dangerous. A clear LCD panel on the vehicle console would be a valid solution.
Another one could say: "OK, if I fix my tablet with one of those "tablet hangers" that stick to the glass is sufficient". Agreed, but Internet is not a structure available on each street, unless you have a satellite connection. Besides this, imagine the structure that a network of this kind, that covers all streets in your country would be (lot of antennas and cables mixed to the beautiful landscape of the mountains).
And this two "alternatives" still can't prevent you to crash your car in a truck.
That's where the concept of VANETs (Vehicle Ad-hoc Networks) lies. Use the cars, trucks and buses as the main transmission media. If every vehicle have an interface and a memory buffer, why not? Someone takes information from another vehicle, and pass to the next a few kilometers away. Simple? Conceptually, YES! On a real-word view? Definitely NO!
There are 2 basic modalities of communication on VANETs:
V2I - Vehicle to Infrastructure - Vehicle, this is Antenna. Antenna, this is Vehicle. Pretty simple. You can view it in a funny way, looking to a car as a huge smartphone with wheels. There is more complicated problems related, but is basically the same concept.
V2V - Vehicle to Vehicle - This is where the things get more interesting. Vehicle this ........ Vehicle th.... All right. How can I communicate with another vehicle and establish a solid link to pass my information timely, before I get miles and miles away. Now you're starting to see where's the problem.
There are many studies of the area, for great content distribution networks relying on car mobility models, simulators for vehicle network behavior, accident prevention, traffic monitoring, security and privacy issues..
How can I represent a network like this?
This VANETs are complex dynamic networks that varies during time. Let's imagine describing a network with circles and lines. Each circle is a car, each line represents a connection between cars. For a specific moment, there will be a set of circles related by lines. In another moment some of the cars could be turned off, and the lines that linked those cars will disappear. It's a random phenomena that can be described in a temporal way.
That's where the concept of Time-Varying Graphs fits. A graph is a mathematical formalism that allows to describe relations between thins. Avoiding a little bit the math things, let's rethink our problem.
Now we will name the circles as nodes, and the lines as edges. We have a very simple graph! Inserting information on the nodes and edges can describe a phenomenon like a network. On the example below, imagine 10 cars that can communicate with each other, and each connection takes the time that is represented to reach the other car. On "graph therms" 10 nodes, linked by weighted edges with integer values.
This representation is intrinsically static (does not change during time). How can we make it change during time? With some mathematic armory we introduce some parameters that allows us to change those edges over a variable (on our case, time).
On a simple way, each time will have a different "on demand" representation, according to the situation that the network is. Just imagine making a lot of graphs for each minute of the network and stacking all of those together, giving just a post-it with the timetag to another person search to a specific moment. That is pretty much what a time varying graph can represent in really simple therms.
Now we can describe a time varying chaos with a graph =]. This tool could solve many problems on mobility models if used adequately (specially one, the introduction of accidents on vehicle networks simulation - theme of my graduation work).
Of course there is a lot more to talk about it, but for a introductory post I will stop here. More posts on the subject coming soon.
Hope you enjoyed!
Tonimobile: Yes, I can! (on a robotic vintage voice)
Me: "WHAT?"
In a distant future, something like this dialog would be possible, but on a realistic near present, at least exchange some information between vehicles is a valid way of thinking.
On this days, where anything between a refrigerator and a drone have wireless access to networks like WiFi, WiMAX, 3G, 4G, GPS and others, thinking to have networks connected in cars, trucks and buses aren't absurd anymore. Think if you are on a highway, travelling, and on your car panel, information like weather forecasting, real-time news about your path and destiny, traffic mapping and many others. That would be great right? RIGHT! And more, if your car understand the information about an accident that occurred a few meters from you and prevent you to engage on that destructive and dangerous perimeter. Wow!
Someone could say: "Yeah, but with my iPhone I can get better things!". Of course you can, but using an iPhone driving is prohibited and dangerous. A clear LCD panel on the vehicle console would be a valid solution.
Another one could say: "OK, if I fix my tablet with one of those "tablet hangers" that stick to the glass is sufficient". Agreed, but Internet is not a structure available on each street, unless you have a satellite connection. Besides this, imagine the structure that a network of this kind, that covers all streets in your country would be (lot of antennas and cables mixed to the beautiful landscape of the mountains).
And this two "alternatives" still can't prevent you to crash your car in a truck.
That's where the concept of VANETs (Vehicle Ad-hoc Networks) lies. Use the cars, trucks and buses as the main transmission media. If every vehicle have an interface and a memory buffer, why not? Someone takes information from another vehicle, and pass to the next a few kilometers away. Simple? Conceptually, YES! On a real-word view? Definitely NO!
There are 2 basic modalities of communication on VANETs:
V2I - Vehicle to Infrastructure - Vehicle, this is Antenna. Antenna, this is Vehicle. Pretty simple. You can view it in a funny way, looking to a car as a huge smartphone with wheels. There is more complicated problems related, but is basically the same concept.
V2V - Vehicle to Vehicle - This is where the things get more interesting. Vehicle this ........ Vehicle th.... All right. How can I communicate with another vehicle and establish a solid link to pass my information timely, before I get miles and miles away. Now you're starting to see where's the problem.
There are many studies of the area, for great content distribution networks relying on car mobility models, simulators for vehicle network behavior, accident prevention, traffic monitoring, security and privacy issues..
How can I represent a network like this?
This VANETs are complex dynamic networks that varies during time. Let's imagine describing a network with circles and lines. Each circle is a car, each line represents a connection between cars. For a specific moment, there will be a set of circles related by lines. In another moment some of the cars could be turned off, and the lines that linked those cars will disappear. It's a random phenomena that can be described in a temporal way.
That's where the concept of Time-Varying Graphs fits. A graph is a mathematical formalism that allows to describe relations between thins. Avoiding a little bit the math things, let's rethink our problem.
Now we will name the circles as nodes, and the lines as edges. We have a very simple graph! Inserting information on the nodes and edges can describe a phenomenon like a network. On the example below, imagine 10 cars that can communicate with each other, and each connection takes the time that is represented to reach the other car. On "graph therms" 10 nodes, linked by weighted edges with integer values.
On a simple way, each time will have a different "on demand" representation, according to the situation that the network is. Just imagine making a lot of graphs for each minute of the network and stacking all of those together, giving just a post-it with the timetag to another person search to a specific moment. That is pretty much what a time varying graph can represent in really simple therms.
Now we can describe a time varying chaos with a graph =]. This tool could solve many problems on mobility models if used adequately (specially one, the introduction of accidents on vehicle networks simulation - theme of my graduation work).
Of course there is a lot more to talk about it, but for a introductory post I will stop here. More posts on the subject coming soon.
Hope you enjoyed!
Why I've changed from C/C++ to Python for my "creativity work"
I've learned C/C++ during my graduation, and this is my favorite programming language since than. I don't have much experience with Java, and I don't feel really confortable programming using Java.
Python allows you to "break the fifth wall" on programming. With tons of libraries - from data structures to machine learning, graphs, plotting and much more - you could transform programming into a really funny thing. Of course, Python isn't a heaven of the programmers. If you want performance, stay with C and Assembly, because Python is an interpreted language, like Java.
There is a "Virtual Machine" and the code is turned on bytecode. Very very similar! With the similarities, same problems come together. At least the garbage collector works very well ;D!
My first experience was with graph theory programming tasks. For that, I've used a library named NetworkX - there is a couple of posts talking about graph theory mixed over the blog. At the first time a weakly-typed language scares a lot at first, and you keep searching those primitive types (int, char, bool, etc) and the brackets to functions. Python don't use any of those, anything can be a vector, a list, a number, a symbol, you choose.
This freedom costs, but it's very worthy for fast programming facilities. Python is like a very large cloth hanger, where you append a lot of ready-to-use "clothes"(libraries) and start using. The only thing you have to do is install python, install whatever thing you want to solve your problem and start using it.
Many begginner's courses on computer programming are using Python instead another classic language because of this. Results comes way faster and it's more rewarding to a the user. Besides this, the learning curve is very fast when you adapt your vision to more straight-forward solutions and smarter functions that hides the dirty work from you.
But, everything has a but, if you know what I mean. Python is not a solution for every problem in the world. In my opinion, it's a great language for accelerate development throughput and a real motivational language to users that use classical languages.
For new programmers, maybe. I think C have a well-behaved syntax that helps to develop algorithmic knowledge and helps to discipline your mind when treating a problem. Python have to much ready-to-use facilities and if you don't use an IDE to help you, it's very difficult to maintain an order over lines and lines of code.
Well, if you want to learn programming Python this is my recommendations:
- READ THE MANUAL : No one reads the manual for nothing, but documentation is a really great source for solving problems. Google for Python Doc and be happy.
- Learn using examples : There is nothing more rewarding than programming with a greater objective in mind. Take a time to search for great applications (a game, for example) and learn the language to achieve your goals.
- Use an IDE : You want to be a hardcore coder? It's your problem. If you want to improove your code organization, use an IDE (NINJA-IDE is my recommendation). If not, at least use a text editor with syntax highlighting (gedit, Notepad++, Notepad!).
- "Don't worry about a thing, cause everything is gonna be alright"
Hope you enjoyed! If you liked, share!
This was the situation until I learned to program in Python.
Python allows you to "break the fifth wall" on programming. With tons of libraries - from data structures to machine learning, graphs, plotting and much more - you could transform programming into a really funny thing. Of course, Python isn't a heaven of the programmers. If you want performance, stay with C and Assembly, because Python is an interpreted language, like Java.
There is a "Virtual Machine" and the code is turned on bytecode. Very very similar! With the similarities, same problems come together. At least the garbage collector works very well ;D!
My first experience was with graph theory programming tasks. For that, I've used a library named NetworkX - there is a couple of posts talking about graph theory mixed over the blog. At the first time a weakly-typed language scares a lot at first, and you keep searching those primitive types (int, char, bool, etc) and the brackets to functions. Python don't use any of those, anything can be a vector, a list, a number, a symbol, you choose.
This freedom costs, but it's very worthy for fast programming facilities. Python is like a very large cloth hanger, where you append a lot of ready-to-use "clothes"(libraries) and start using. The only thing you have to do is install python, install whatever thing you want to solve your problem and start using it.
Many begginner's courses on computer programming are using Python instead another classic language because of this. Results comes way faster and it's more rewarding to a the user. Besides this, the learning curve is very fast when you adapt your vision to more straight-forward solutions and smarter functions that hides the dirty work from you.
But, everything has a but, if you know what I mean. Python is not a solution for every problem in the world. In my opinion, it's a great language for accelerate development throughput and a real motivational language to users that use classical languages.
For new programmers, maybe. I think C have a well-behaved syntax that helps to develop algorithmic knowledge and helps to discipline your mind when treating a problem. Python have to much ready-to-use facilities and if you don't use an IDE to help you, it's very difficult to maintain an order over lines and lines of code.
Well, if you want to learn programming Python this is my recommendations:
- READ THE MANUAL : No one reads the manual for nothing, but documentation is a really great source for solving problems. Google for Python Doc and be happy.
- Learn using examples : There is nothing more rewarding than programming with a greater objective in mind. Take a time to search for great applications (a game, for example) and learn the language to achieve your goals.
- Use an IDE : You want to be a hardcore coder? It's your problem. If you want to improove your code organization, use an IDE (NINJA-IDE is my recommendation). If not, at least use a text editor with syntax highlighting (gedit, Notepad++, Notepad!).
- "Don't worry about a thing, cause everything is gonna be alright"
Hope you enjoyed! If you liked, share!
SongSpot #6
This week, again ThePianoGuys. Awesome clips from two great medleys/mashups:
Let It Go (Disney's "Frozen") Vivaldi's Winter
Titanium / Pavane (Piano/Cello Cover) - David Guetta / Faure
Hope you enjoy it! \o
sexta-feira, 11 de abril de 2014
SongSpot #5
Remembering two french songs that I like for no special meanings, I think...maybe...I don't know at all uhauha
Both great songs feat. Joyce Jonathan and Gregòire. Hope you enjoy!
Joyce Jonathan - Je ne sais pas
Gregòire - Toi + Moi
Both great songs feat. Joyce Jonathan and Gregòire. Hope you enjoy!
Joyce Jonathan - Je ne sais pas
Gregòire - Toi + Moi
quarta-feira, 12 de fevereiro de 2014
How to compile a compiler? Clang! Let's do it!
On my MsC project, I wanted to use a compiler that was as powerful as GCC but not so loaded with unwanted things and efficient as well. GCC 4.8 has a very good performance and produces far-sized executables, but I needed an alternative. That's when I found CLANG. Clang is a C/C++/Objective-C front-end for LLVM Compiler (a stratified structured compiler with great performance - a really organized compiler, on simple therms).
Clang is known by its increased performance, low memory usage and is soft-spoken when talking about error (the messages are more accurate and simple for humans to understand). Compared to older version of GCC (until 4.6) Clang have an outstanding result.
This compiler is supported by a consortium, including Apple. It's a really new work in progress and worth trying.
Let's Start!
We will install Clang and LLVM on Fedora 19/20.
Make sure you have GCC (gcc, gcc-c++) packages and Perl (perl, perl-podlators) packages before you start the process.
# yum install gcc gcc-c++ perl perl-podlators -y
After that, create a directory named clang and a src directory inside of it
$ mkdir clang
$ mkdir clang/src
We will need libffi-devel too, so, to install it:
# yum install libffi-devel -y
And if you don't have SVN installed:
# yum install svn -y
$ cd clang/src
$ svn co http://llvm.org/svn/llvm-project/llvm/tas/RELEASE_34/final llvm
Now, the source code of Clang:
$ cd tools/
$ svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_34/final clang
We will need the extra packages from Clang:
$ cd clang/tools
$ svn co http://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_34 extra
And last, compiler-rt files:
$ cd ../../../projects
$ svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_34/final compiler-rt
$ mkdir ../build
$ cd ../build
And now, configure:
$ ../configure --enable-optimized --disable-assertions --enable-jit --enable-libffi --enable-shared
Wait a little/long time, depending on your machine, and let's start making it, literally:
$ make -j X
WARNING: You'll need to substitute X for a number in the command above! X is the number of cores you have on your machine + 1, so, if you have a dual core, X = 3.
Again, wait a little/long time, depending on your machine.
$ cd test
$ make
$ cd ../tools/clang/test/
$ make
$ cd ../tools/extra/test/
$ make
If a message like "UNEXPECTED FAILURE" doesn't appear, it's all ready to go.
$ ../../../../../
$ sudo make install
Maybe you'll need to reboot. Type clang on a terminal and you'll see:
[user@localhost ~]$ clang
clang: error: no input files
The syntax for compilation on clang is very similar to the gcc syntax, and if you are a GCC User, Clang will be a piece of cake.
Hope you enjoyed! \o
This is a modified and updated version from this tutorial.
Clang is known by its increased performance, low memory usage and is soft-spoken when talking about error (the messages are more accurate and simple for humans to understand). Compared to older version of GCC (until 4.6) Clang have an outstanding result.
This compiler is supported by a consortium, including Apple. It's a really new work in progress and worth trying.
Let's Start!
We will install Clang and LLVM on Fedora 19/20.
Installing Dependencies
I've compiled successfully Clang 3.4 (Final) on Fedora 19/20, both on x86_64 and ARM architectures (but take about 8 hours to compile on Pandaboard). I'll use on this tutorial the SVN version.Make sure you have GCC (gcc, gcc-c++) packages and Perl (perl, perl-podlators) packages before you start the process.
# yum install gcc gcc-c++ perl perl-podlators -y
After that, create a directory named clang and a src directory inside of it
$ mkdir clang
$ mkdir clang/src
We will need libffi-devel too, so, to install it:
# yum install libffi-devel -y
And if you don't have SVN installed:
# yum install svn -y
Retrieving SVN Code
Now we'll retrieve the source code of LLVM from the official trunk:$ cd clang/src
$ svn co http://llvm.org/svn/llvm-project/llvm/tas/RELEASE_34/final llvm
Now, the source code of Clang:
$ cd tools/
$ svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_34/final clang
We will need the extra packages from Clang:
$ cd clang/tools
$ svn co http://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_34 extra
And last, compiler-rt files:
$ cd ../../../projects
$ svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_34/final compiler-rt
Configuring Clang for the next steps
We will create a build directory and request the configuration of the packages via configure script:$ mkdir ../build
$ cd ../build
And now, configure:
$ ../configure --enable-optimized --disable-assertions --enable-jit --enable-libffi --enable-shared
Wait a little/long time, depending on your machine, and let's start making it, literally:
$ make -j X
WARNING: You'll need to substitute X for a number in the command above! X is the number of cores you have on your machine + 1, so, if you have a dual core, X = 3.
Again, wait a little/long time, depending on your machine.
Regression Tests
Clang and LLVM comes with a regression test suite, and is necessary for assuring Clang will execute perfectly. To run this test suite do:$ cd test
$ make
$ cd ../tools/clang/test/
$ make
$ cd ../tools/extra/test/
$ make
If a message like "UNEXPECTED FAILURE" doesn't appear, it's all ready to go.
Install it!
Now, all you need to do is install Clang:$ ../../../../../
$ sudo make install
Maybe you'll need to reboot. Type clang on a terminal and you'll see:
[user@localhost ~]$ clang
clang: error: no input files
DONE!
The syntax for compilation on clang is very similar to the gcc syntax, and if you are a GCC User, Clang will be a piece of cake.
Hope you enjoyed! \o
This is a modified and updated version from this tutorial.
terça-feira, 11 de fevereiro de 2014
SongSpot #4
Some J-Rock to inspire the rest of week. This time featuring ONE OK ROCK. Great songs and finally a vocalist saying clear english words huahua!
Hope you enjoy!
ONE OK ROCK - Clock Strikes
ONE OK ROCK - 完全感覚Dreamer (Full Sense Dreamer)
Hope you enjoy!
ONE OK ROCK - Clock Strikes
ONE OK ROCK - 完全感覚Dreamer (Full Sense Dreamer)
segunda-feira, 10 de fevereiro de 2014
TED Weekly Spot #1
I'll post some of my favorite TED Talks on this post series. If you don't know, TED is an initiative that brings important icons of the present times to transmit knowledge and discuss many topics. As the slogan says: Ideas Worth Spreading.
This week, Bill Gates (talking about teachers and how important is the feedback, not just for teachers, but for professionals in all areas of knowledge) and Stephen Wolfram (the creator of Wolfram Alpha and Mathematica).
Hope you enjoy it!
This week, Bill Gates (talking about teachers and how important is the feedback, not just for teachers, but for professionals in all areas of knowledge) and Stephen Wolfram (the creator of Wolfram Alpha and Mathematica).
Hope you enjoy it!
domingo, 9 de fevereiro de 2014
All the Linux Flavors!
I've been testing a lot of Linux "flavors" on the last months, and spent a huge amount of time trying to learn specific information from those. Besides all the distributions are indeed Linux, each one pass a different "sensation" when using it.
I will list below the distributions i've tried, and will talk about each one a little bit. This is not a RANKING, is a review! =D
Ubuntu
The distribution that I consider (not just me, of course) the responsible for popularize Linux to the masses, Ubuntu is the most straight-forward distribution available. Lots of enthusiasts, support, forums and all the crazy experiences possible were tested on this distro. It is a descendant of the ancient Debian.
This was the first version of Linux I had contact (without counting Kurumin Linux, a version created by Carlos Morimoto, also based on Debian - Debian is a father and grandfather of lots of distros available), and learned to use almost everything I know about Linux (that is not much XD) using Ubuntu.
With a really good interface until version 10 (Gnome 2 was the standard desktop manager - since Unity, I needed to change the interface to use Ubuntu, or use another "remix" (as named spin) with other desktop manager, like XFCE (Xubuntu), LXDE (Lubuntu) or KDE (Kubuntu)). Unity is a real problem for old-machines - I really recommend XFCE for most users.
Ubuntu has one specific remix to Multimedia users named Ubuntu Studio, that is worth trying for those searching for a Multimedia edition OS.
Changing the architecture, Ubuntu has an image of the LTS (Long Therm Support) version for ARM architectures with Hard Float Point - used on Raspberry Pi and Pandaboard, for example. I don't know if it's officially maintained by Canonical, but is functional and can open a path to your mobile/embedded development project also.
Mint
Mint is another Debian/Ubuntu descendant and is known for the stability and design of its interface. It uses Cinnamon - that is a really gorgeous desktop manager and also easy to use. If you have used Ubuntu and is used to the Debian-like commands, it's a great distro to try. And if you're a little nostalgic about the design of Gnome 2 (since Gnome 2 has been discontinued), Mint has a spin with MATE, that is a Gnome 2 clone (a resurrection from the ashes), as usual, a great desktop manager.
Debian
The grand-grand-grand-father of Linux distros, Debian is a safe-haven. If you need a hyper-stable version of Linux (i.e. for servers or mobile-nodes that you can't turnoff for maintenance when you want), this is your choice, but don't count with constant updates, since Debian is known to have really slow cycles of update. Of course, you still could update manually, but it can turn into a really tedious task. Compiling a new Kernel for Debian is worth trying and is very easy to do, just takes a considerable amount of time and patience, depending on your machine.
Debian is also known as the distro that can "run up in your fridge", and have compiled versions for most known architectures, including ARM. The ARM Image works really great, like a common x86 computer, but to install it, I needed to use a script written by a community user.
Gentoo
Known as a "Build from scratch" distro, Gentoo is a great flavor for those who have time, a huge amount of time and patience, since all you have ready to use is a live-cd from where you can prepare your system and build each part of your future OS. I've to stop trying to use this because I've passed a day trying to install it and at the end, that thing doesn't work as expected XD.
With a not so huge legion of users, who are known as "hardcore users", Gentoo still attract the crazy human beings that have an "insatiable thirst of knowledge", or not.
Slackware
Considered as the most PURE UNIX DESCENDANT (Linux Royalty), Slackware is also a grandfather, but doesn't have many grandchildren (I know just one, Zenwalk). It is a more complex and conservative distro, but have all the resources and specialization for desktop or servers - the customer's taste.
Also have a great legion of users, but Slackware is suffering from the same aging problem of Debian, with aggravating of just having ONE maintainer, Patrick Volkerding, an old-times developer.
For those who want to learn Linux with some depth, this will help you gain know-how for most system managers.
Slackware doesn't come with a standard Package Manager, but you can install yasm, that will help with this task. If you don't want to build your apps from scratch, there are sites like SlackBuilds, that offer pre-compiled and straight-forward installation for most common packages.
It comes with around 5 desktop managers included on the DVD, and you just need to choose (I really recommend using KDE if your machine allows, since it has a great appearance, but for most machines, XFCE is the choice).
ArchLinux
ArchLinux is great. You need to have some knowledge to install it (if you use ArchBang!, a spin based on ArchLinux, this problem is solved, as ArchBang! comes with a setup utility), an internet connection and a little patience. Lifehacker published a great tutorial to make your own ArchLinux installation (I use it when I need to install ArchLinux on a VM, since it's simple and useful).
You'll have the top edge software on the repositories, and a huge repository known as AUR (Arch User Repository) where you can find many specific packages not found on the official repositories.
The package manager for ArchLinux is pacman (you also use it for bring the dependencies when installing ArchLinux). If you want, you can install yaourt, that is capable to search also on AUR - piece of cake =].
ArchLinux doesn't have a standard desktop manager, again, taste of customer, but LXDE or XFCE is sufficient for most needs.
Fedora
Last, but not less important, Fedora. Fedora is currently supported by RedHat, and is a direct descendant from RedHat opensource initiative (together with CentOS - a corporative oriented opensource version of RedHat).
In my opinion, the better able to compete with Ubuntu, and also, my current OS.
It has a great stability and a huge repository, not as complete as Ubuntu, but this is avoided using RPMFusion (that add more repositories to the list and permit to install top edge applications via package manager).
The Fedora 20 comes with the newest GNOME 3.10, (the last of the Linuxhicans that comes with Gnome as standard desktop manager). A great visual experience and also easy to install extensions (Firefox is integrated with the Gnome Addons Site - One click installation).
Yum is the standard package manager and also a powerful one. From it, it's possible to install/remove/reinstall/purge and other tasks (similar to Debian's apt and ArchLinux's pacman). Fedora comes with a Softwares application, that is a GUI for Yum.
I'm testing the ARM Image of Fedora on Pandaboard, until now, no problems with it. The great part is that the Fedora for ARM is maintained by RedHat, and official updates come to it as soon as possible.
That's it for now. Hope you enjoyed! \o
I will list below the distributions i've tried, and will talk about each one a little bit. This is not a RANKING, is a review! =D
Ubuntu
The distribution that I consider (not just me, of course) the responsible for popularize Linux to the masses, Ubuntu is the most straight-forward distribution available. Lots of enthusiasts, support, forums and all the crazy experiences possible were tested on this distro. It is a descendant of the ancient Debian.
This was the first version of Linux I had contact (without counting Kurumin Linux, a version created by Carlos Morimoto, also based on Debian - Debian is a father and grandfather of lots of distros available), and learned to use almost everything I know about Linux (that is not much XD) using Ubuntu.
With a really good interface until version 10 (Gnome 2 was the standard desktop manager - since Unity, I needed to change the interface to use Ubuntu, or use another "remix" (as named spin) with other desktop manager, like XFCE (Xubuntu), LXDE (Lubuntu) or KDE (Kubuntu)). Unity is a real problem for old-machines - I really recommend XFCE for most users.
Ubuntu has one specific remix to Multimedia users named Ubuntu Studio, that is worth trying for those searching for a Multimedia edition OS.
Changing the architecture, Ubuntu has an image of the LTS (Long Therm Support) version for ARM architectures with Hard Float Point - used on Raspberry Pi and Pandaboard, for example. I don't know if it's officially maintained by Canonical, but is functional and can open a path to your mobile/embedded development project also.
Mint
Mint is another Debian/Ubuntu descendant and is known for the stability and design of its interface. It uses Cinnamon - that is a really gorgeous desktop manager and also easy to use. If you have used Ubuntu and is used to the Debian-like commands, it's a great distro to try. And if you're a little nostalgic about the design of Gnome 2 (since Gnome 2 has been discontinued), Mint has a spin with MATE, that is a Gnome 2 clone (a resurrection from the ashes), as usual, a great desktop manager.
Debian
The grand-grand-grand-father of Linux distros, Debian is a safe-haven. If you need a hyper-stable version of Linux (i.e. for servers or mobile-nodes that you can't turnoff for maintenance when you want), this is your choice, but don't count with constant updates, since Debian is known to have really slow cycles of update. Of course, you still could update manually, but it can turn into a really tedious task. Compiling a new Kernel for Debian is worth trying and is very easy to do, just takes a considerable amount of time and patience, depending on your machine.
Debian is also known as the distro that can "run up in your fridge", and have compiled versions for most known architectures, including ARM. The ARM Image works really great, like a common x86 computer, but to install it, I needed to use a script written by a community user.
Gentoo
Known as a "Build from scratch" distro, Gentoo is a great flavor for those who have time, a huge amount of time and patience, since all you have ready to use is a live-cd from where you can prepare your system and build each part of your future OS. I've to stop trying to use this because I've passed a day trying to install it and at the end, that thing doesn't work as expected XD.
With a not so huge legion of users, who are known as "hardcore users", Gentoo still attract the crazy human beings that have an "insatiable thirst of knowledge", or not.
Slackware
Considered as the most PURE UNIX DESCENDANT (Linux Royalty), Slackware is also a grandfather, but doesn't have many grandchildren (I know just one, Zenwalk). It is a more complex and conservative distro, but have all the resources and specialization for desktop or servers - the customer's taste.
Also have a great legion of users, but Slackware is suffering from the same aging problem of Debian, with aggravating of just having ONE maintainer, Patrick Volkerding, an old-times developer.
For those who want to learn Linux with some depth, this will help you gain know-how for most system managers.
Slackware doesn't come with a standard Package Manager, but you can install yasm, that will help with this task. If you don't want to build your apps from scratch, there are sites like SlackBuilds, that offer pre-compiled and straight-forward installation for most common packages.
It comes with around 5 desktop managers included on the DVD, and you just need to choose (I really recommend using KDE if your machine allows, since it has a great appearance, but for most machines, XFCE is the choice).
ArchLinux
ArchLinux is great. You need to have some knowledge to install it (if you use ArchBang!, a spin based on ArchLinux, this problem is solved, as ArchBang! comes with a setup utility), an internet connection and a little patience. Lifehacker published a great tutorial to make your own ArchLinux installation (I use it when I need to install ArchLinux on a VM, since it's simple and useful).
You'll have the top edge software on the repositories, and a huge repository known as AUR (Arch User Repository) where you can find many specific packages not found on the official repositories.
The package manager for ArchLinux is pacman (you also use it for bring the dependencies when installing ArchLinux). If you want, you can install yaourt, that is capable to search also on AUR - piece of cake =].
ArchLinux doesn't have a standard desktop manager, again, taste of customer, but LXDE or XFCE is sufficient for most needs.
Fedora
Last, but not less important, Fedora. Fedora is currently supported by RedHat, and is a direct descendant from RedHat opensource initiative (together with CentOS - a corporative oriented opensource version of RedHat).
In my opinion, the better able to compete with Ubuntu, and also, my current OS.
It has a great stability and a huge repository, not as complete as Ubuntu, but this is avoided using RPMFusion (that add more repositories to the list and permit to install top edge applications via package manager).
The Fedora 20 comes with the newest GNOME 3.10, (the last of the Linuxhicans that comes with Gnome as standard desktop manager). A great visual experience and also easy to install extensions (Firefox is integrated with the Gnome Addons Site - One click installation).
Yum is the standard package manager and also a powerful one. From it, it's possible to install/remove/reinstall/purge and other tasks (similar to Debian's apt and ArchLinux's pacman). Fedora comes with a Softwares application, that is a GUI for Yum.
I'm testing the ARM Image of Fedora on Pandaboard, until now, no problems with it. The great part is that the Fedora for ARM is maintained by RedHat, and official updates come to it as soon as possible.
That's it for now. Hope you enjoyed! \o
quarta-feira, 5 de fevereiro de 2014
Song Spot #3
This week, a little nostalgic post on Song Spot. Two of my favorite brazilian bands on the early 2000s: Skank and Kid Abelha.
Has been a while since I heard something from those two, but is really great to remember those songs. Hope you enjoy!
Kid Abelha - Lágrimas e Chuva (Tears and Rain)
Skank - Resposta (Answer)
Has been a while since I heard something from those two, but is really great to remember those songs. Hope you enjoy!
Kid Abelha - Lágrimas e Chuva (Tears and Rain)
Skank - Resposta (Answer)
quarta-feira, 29 de janeiro de 2014
NetworkX - Working with Graphs in Python #2 - Random Walks
This week we will work with the concept of Random Walks on Graphs.
A graph is, in very simple therms, a structure that associate Nodes with Edges. On example, think about a country, where the cities are connected with roads, so a City is a Node, and a Street that connects to another city is a Edge.
A random walk is a mathematic formalism of a path consisted of random "steps", a random choice of edges. For the statistical purpose, is a special case of a Markov Chain.
I've used a graph that is widely knows as Les Miserables, that connects the homonym book characters in order of apparition. The nodes are the characters and the edges are the amount of times that two characters appear together.
The code below executes 10 times the random walk with size 10000, starting on different nodes and random sorting the next path. The execution shows the 10 most visited vertex during the random walks. Don't forget to import NetworkX packages and MatPlotLib to plot the graphs on a window.
Random Walk Algorithm
#Reads the graph from a GML File, named lesmis.gml
G = nx.read_gml("lesmis.gml",relabel=True)
#Start the counter
contador = 0
#Start execution counter
execucoes = 0
#Execute 10 times this command sequence
while execucoes < 10:
#Choose a random start node
vertexid = rdm.choice(G.nodes())
#Dictionary that associate nodes with the amount of times it was visited
VisitedVertex = {}
print("Execucao #%d" % (execucoes + 1))
#Execute the random walk with size 10000 (10000 steps)
while contador < 10000:
#Accumulate the amount of times each vertex is visited
if vertexid in VisitedVertex:
VisitedVertex[vertexid] += 1
else:
VisitedVertex[vertexid] = 1
#Visualize the vertex neighborhood
Vertex_Neighbors = G.neighbors(vertexid)
#Choose a vertex from the vertex neighborhood to start the next random walk
vertexid = rdm.choice(Vertex_Neighbors)
#Iteration counter increment
contador = contador + 1
#Organize the vertex list in most visited decrescent order
mostvisited = sorted(VisitedVertex, key = VisitedVertex.get,reverse = True)
#Separate the top 10 most visited vertex
top_10 = mostvisited[:10]
print(top_10)
#Restart the cycle
execucoes = execucoes + 1
contador = 0
print("Feche a janela de exibicao para encerrar.")
#Draw graph to a window
nx.draw_circular(G)
plt.savefig('myfig')
plt.show()
This is useful to visualize the nodes that have more connections than others inside a graph. On a social network, this corresponds to a person that have many people connected to its profile.
Random Walks is a real complex concept, and you can check on Graph Theory books for more information. This is just a didatic sample to help you understand the concept.
Hope it's useful! Enjoy! \o
A graph is, in very simple therms, a structure that associate Nodes with Edges. On example, think about a country, where the cities are connected with roads, so a City is a Node, and a Street that connects to another city is a Edge.
A random walk is a mathematic formalism of a path consisted of random "steps", a random choice of edges. For the statistical purpose, is a special case of a Markov Chain.
I've used a graph that is widely knows as Les Miserables, that connects the homonym book characters in order of apparition. The nodes are the characters and the edges are the amount of times that two characters appear together.
The code below executes 10 times the random walk with size 10000, starting on different nodes and random sorting the next path. The execution shows the 10 most visited vertex during the random walks. Don't forget to import NetworkX packages and MatPlotLib to plot the graphs on a window.
Random Walk Algorithm
Random Walks is a real complex concept, and you can check on Graph Theory books for more information. This is just a didatic sample to help you understand the concept.
Hope it's useful! Enjoy! \o
terça-feira, 28 de janeiro de 2014
Song Spot #2
This week I've rummaged my music library once more, now searching for a song to play on my graduation ceremony (yeah \o). Inside those j-rock/j-pop mountain, I've remembered some of cool "semi-classic" musics non-related to oriental music. This week I brought The Piano Guys (they have a channel on YouTube with all the clips produced - click HERE!).
Two of my prefered are:
You can buy the album collection from Amazon and iTunes.
I hope you enjoy it as much as I =].
Two of my prefered are:
You can buy the album collection from Amazon and iTunes.
I hope you enjoy it as much as I =].
DX Review #1 - Xperia L Protective Cover
I was searching for a protective cover for my phone, since I'm not able to maintain its integrity for a long time without a protection. This king of things are a little difficult to find where I live, so I've used the mortal weapon to gadgets: DealeXtreme.
Most of you know what is DX, for those who do not, it's a chinese online shopping for everything (believe me). I usually buy electonic components - arduino, sensors, tools. This time, I've found a great cover for Xperia L.
This is very solid and fits perfectly on device, but is a little thicker than expected, making difficult to use the volume buttons, but not bad for the price.
Most of you know what is DX, for those who do not, it's a chinese online shopping for everything (believe me). I usually buy electonic components - arduino, sensors, tools. This time, I've found a great cover for Xperia L.
This is very solid and fits perfectly on device, but is a little thicker than expected, making difficult to use the volume buttons, but not bad for the price.
Also, I really recommend to buy the screen protector too. Right size, is very clear and you can use the touchscreen withouth prejudice.
Links for both products below:
Enjoy! =]
domingo, 19 de janeiro de 2014
NetworkX - Working with Graphs in Python #1
I'm a C/C++ programmer in essence (the language that I've most used during my graduation). Programming in C is essential for any human that will work with something related to IT, not just for learning a language, but to develop the "algorithmical intuition" on how to solve real-life problems.
C/C++ solves a huge amount of problems straight-forward but it can be a little boring to solve some problems, including working with "unconventional" paths. It's not impossible, but can be really painful and tedious.
During the course of Graph Theory I had the chance to work with Python (never programmed seriously in Python before - that's really natural and the learning curve is really fast) and NetworkX - a dedicated graph library for Python.
NetworkX eliminates all the worries with graph structures (nodes, edges, predetermined graphs) and allow to work with small to medium graphs with good performance. It have all support for graph files like GML and GraphML, and associated with MathPlot, can plot graphs directly from Python terminal. Really easy-to-use and straight-forward. The documentation is worth reading for more details.
Debian and Ubuntu have all the packages via repositories and you can install the necessary packages withouth trouble using aptitude or Synaptics, just search for python and networkx.
I recommend using an IDE for Python, specifically Ninja IDE. It will help you maintain your code clean and understandable for human-beings (because Python works with identation to isolate excerpts of code - it can turn into a real mess, believe me).
In the future I'll post some algorithms developed during my Graph Theory classes.
\o
C/C++ solves a huge amount of problems straight-forward but it can be a little boring to solve some problems, including working with "unconventional" paths. It's not impossible, but can be really painful and tedious.
During the course of Graph Theory I had the chance to work with Python (never programmed seriously in Python before - that's really natural and the learning curve is really fast) and NetworkX - a dedicated graph library for Python.
NetworkX eliminates all the worries with graph structures (nodes, edges, predetermined graphs) and allow to work with small to medium graphs with good performance. It have all support for graph files like GML and GraphML, and associated with MathPlot, can plot graphs directly from Python terminal. Really easy-to-use and straight-forward. The documentation is worth reading for more details.
Debian and Ubuntu have all the packages via repositories and you can install the necessary packages withouth trouble using aptitude or Synaptics, just search for python and networkx.
I recommend using an IDE for Python, specifically Ninja IDE. It will help you maintain your code clean and understandable for human-beings (because Python works with identation to isolate excerpts of code - it can turn into a real mess, believe me).
In the future I'll post some algorithms developed during my Graph Theory classes.
\o
Song Spot #1
Discovering new songs to update a little bit my overpast music library. This week, the japanese band Sakanaction. Cool selection of songs (mix of electronic and pop). Enjoy! =]
Sakanaction - Music (Original title: サカナクション - ミュージック)
Sakanaction - Yoru no Odoriko (Original title: サカナクション - 夜の踊り子)
Marcadores:
electronic,
japan,
jpop,
music,
sakanaction,
song,
spot
terça-feira, 14 de janeiro de 2014
Players, players, players! Music Players!
I've been searching for an app that could manage my music library (near 8000+ musics, not so much, but it is a pain to search on WMP or musikCube - musikCube is a dead project, but I like the player so much that sometimes I use it just for the nostalgia).
Searching around blogs and other sources, just one conclusion, there are many players and just a little have a good support to manage oriental music (yes, japanese, korean, chinese - I'm a japanese descendant, judge me huahuahua). But, I have to admit, the player that is near to my needs is iTunes. Neither I have an iPod or any iThing, but it is just fine to use as a player on Windows (on Linux, I'm using Rhythmbox or Banshee, two good choices, none available on Windows unfortunatelly, moreover, there are ports of those two for Windows using Qt and KDE for Windows, without success I have to say, sad =[ ).
I'm a Linux and Android enthusiast, but Linux don't have a good support for games and multimedia yet (SteamOS, please, get out of this beta version ASAP!!), so I'm still locked on Uncle Bill's Windows for multimedia. On Linux, as I said, I'm using Rhythmbox or Banshee (Debian and ArchLinux, respectivelly), and those meet my needs. On Android, I was using Sony WALKMAN Player App, but it just messed all the infos about the songs on SDCard and after a little rage attack, I started to search for a new music player.
Many options: WINAMP, Real Player, BSPlayer - great names coming from the x86 to the Android domains. Any of those are tablet oriented - GUI messed and stretched to the limit of your screen, rotating menus ad infinitum if you tap your device. OK, must have millions of players - AAhnn NO! A tablet oriented player is a luxury on Google Play, but I found one. It's great and FREE - the (not) so famous doubleTwist Player. Good support for all the songs I had, connection to live radios and can manage even Podcasts!
Music Player Problem solved, at least for now. Links for most important apps below.
http://musikcube.com/
http://www.apple.com/itunes/?cid=OAS-US-DOMAINS-itunes.com
http://banshee.fm/download/
http://sourceforge.net/projects/rhythmbox/
http://www.doubletwist.com/
\o
Searching around blogs and other sources, just one conclusion, there are many players and just a little have a good support to manage oriental music (yes, japanese, korean, chinese - I'm a japanese descendant, judge me huahuahua). But, I have to admit, the player that is near to my needs is iTunes. Neither I have an iPod or any iThing, but it is just fine to use as a player on Windows (on Linux, I'm using Rhythmbox or Banshee, two good choices, none available on Windows unfortunatelly, moreover, there are ports of those two for Windows using Qt and KDE for Windows, without success I have to say, sad =[ ).
I'm a Linux and Android enthusiast, but Linux don't have a good support for games and multimedia yet (SteamOS, please, get out of this beta version ASAP!!), so I'm still locked on Uncle Bill's Windows for multimedia. On Linux, as I said, I'm using Rhythmbox or Banshee (Debian and ArchLinux, respectivelly), and those meet my needs. On Android, I was using Sony WALKMAN Player App, but it just messed all the infos about the songs on SDCard and after a little rage attack, I started to search for a new music player.
Many options: WINAMP, Real Player, BSPlayer - great names coming from the x86 to the Android domains. Any of those are tablet oriented - GUI messed and stretched to the limit of your screen, rotating menus ad infinitum if you tap your device. OK, must have millions of players - AAhnn NO! A tablet oriented player is a luxury on Google Play, but I found one. It's great and FREE - the (not) so famous doubleTwist Player. Good support for all the songs I had, connection to live radios and can manage even Podcasts!
Music Player Problem solved, at least for now. Links for most important apps below.
http://musikcube.com/
http://www.apple.com/itunes/?cid=OAS-US-DOMAINS-itunes.com
http://banshee.fm/download/
http://sourceforge.net/projects/rhythmbox/
http://www.doubletwist.com/
\o
domingo, 12 de janeiro de 2014
How to Install DSpace 3.1 on Ubuntu 12.04 LTS
Once upon a time (just kidding), i needed to install DSpace (an webapp that manage academic content - books, papers and other things) on a server running Ubuntu 12.04. Since the documentation don't have a straight-forward explanation about the installation, after some research on internet and some experimentation, I've compiled a guide to make DSpace work. This is a little modificated version of the tutorial on http://linuxhalwa.blogspot.com.br/2013/06/installing-dspace-3x-on-ubuntu-1204.html.
1)
Installing Dependencies
Open
a Terminal and execute the following commands (Those will install
some dependencies):
$
sudo apt-get install openjdk-6-jdk -y
$
sudo apt-get install tasksel -y
|
Wait
for the end of setup and execute:
$
sudo tasksel
|
A
menu will appear with a list of packages. Select the following
packages using spacebar and the directionals:
[*]
LAMP server [*] PostgreSQL database [*] Tomcat Java server
Press
tab to select OK,
and enter. Packages will start to install.
If
MySQL ask for a password, define a standard password (i.e. dspace).
Now,
install Ant and Maven.
$
sudo apt-get install ant maven -y
|
2)
Creating a database and users for DSpace
Log
as postgresql standard user:
$
sudo su postgres
|
And
execute
$
createuser -U postgres -d -A -P dspace
|
Enter
the password for the new role (define it as dspace) and respond the
question with 'n'.
Exit
from the postgres user prompt:
$
exit
|
You
will need to allow the dspace database user to connect to the
database. Type in the command line:
$
sudo vi /etc/postgresql/9.1/main/pg_hba.conf
|
Go
to the end of the file and insert:
local
all dspace md5
|
Save
and exit (on vi, :wq!).
Now,
restart the PostgreSQL database service:
$
/etc/init.d/postgresql restart
|
DSpace
requires an UNIX user. Create this executing:
$
sudo useradd -m dspace
$
sudo passwd dspace
|
Define
a password for dspace user (i.e. dspace)
Create
a directory for dspace user:
$
sudo mkdir /dspace
$
sudo chown dspace /dspace
|
Create
the dspace database:
$
sudo su dspace
$
createdb -U dspace -E UNICODE dspace
|
Configure
Tomcat to know about the dspace webapp location:
$
sudo vi /etc/tomcat6/server.xml
|
Insert
the following text above the </Host> tag:
<!--
Define a new context path for all DSpace web apps -->
<Context path="/xmlui" docBase="/dspace/webapps/xmlui" allowLinking="true"/> <Context path="/sword" docBase="/dspace/webapps/sword" allowLinking="true"/> <Context path="/oai" docBase="/dspace/webapps/oai" allowLinking="true"/> <Context path="/jspui" docBase="/dspace/webapps/jspui" allowLinking="true"/> <Context path="/lni" docBase="/dspace/webapps/lni" allowLinking="true"/> <Context path="/solr" docBase="/dspace/webapps/solr" allowLinking="true"/> |
Save
and close the file.
3)
Downloading and Installing DSpace
Open
a Terminal and execute the following commands:
$
sudo mkdir /build
$
sudo chmod -R 777 /build
$
cd /build
$
wget
http://downloads.sourceforge.net/project/dspace/DSpace%20Stable/3.1/dspace-3.1-release.tar.bz2
$
tar -xvjf dspace-3.1-release.tar.bz2
$
cd /build/dspace-3.1-release
$
mvn -U package
|
Wait
for Maven bring the dependencies. After that execute:
$
cd dspace/target/dspace-3.1-build
$
sudo ant fresh_install
|
Ant
will build all the directory structure and prepare DSpace
installation.
After
Ant exits, fix Tomcat permissions and restart Tomcat Server,
executing the following commands:
$
sudo chown tomcat6:tomcat6 /dspace -R
|
Creating
an Administrator for DSpace:
Type
the following commands and fill the required fields:
$
/dspace/bin/dspace create-administrator
|
4)
Testing Dspace
Open
a browser and type one of the following addresses (from the Host
machine – where DSpace is installed):
Tomcat
runs on 8080 port. The localhost refers to the local machine where
DSpace is installed. XMLUI and JSPUI are two interfaces from DSpace
application.
If
you want to access DSpace from a remote computer (from internet, as
an example), change 'localhost' to the IP Address that forward to the
DSpace host machine. You will need to check your firewall rules about
the 8080 port to make Tomcat webapps visible from network.
Assinar:
Postagens (Atom)