postifx в SuSEconfig
В openSUSE 12.1 postfix был откручен(750685) от SuSEconfig, поэтому запускать тот самый волшебный скрипт теперь надо так:
MD5DIR=/var/adm/SuSEconfig/md5 /usr/sbin/SuSEconfig.postfix
Все остальное работает как раньше: /etc/sysconfig/postfix, /etc/sysconfig/mail остаются в силе. Базы алиасов пересобираются сами при rcpostfix restart.
Установка openSUSE 12.1 c флешки
Недавно попробовал установить новую версию моего любимого дистрибютива с флешки.
Так как свободной флешки больше 4 гигабайт в наличии не оказалось, установку делал с образа LiveKDE 12.1 — с планами доустановить необходимый софт позже через интернет.
В версии 11.4 весь необходимый софт ( openSUSe studio и все прилагающиеся необходимые пакеты) были установлены, запись дистрибютива на флешку прошел без сучка и задоринки. И сама установка прошла как по маслу, тем более что с флешки установка идёт быстрее, чем с СД или ДВД. Установил, настроил, добавил необходимые русификационные пакеты — и вот, всё работает, все замечательно. Новая версия пока у меня нареканий не вызвала, правда, в ней я работаю не часто
Meeting the Incas in memory of Jane Morffew
C++ vector iterators, why over-use?
I understand that it can be seen as nice and orthogonal that all kinds of containers have a uniform paradigm to access them sequentially. Or something similarly sublime.
But in the specific case of vectors, in a method of a class that has a vector as a private field (and said method thus knows that it is implemented as a vector), what does one win by accessing the vector through iterators and not indexing?
I mean, using indexing is much safer.
Case in point:
Klass::Method()
{
VectorMemberType::iterator it = vectorMember::begin();
while (it != vectorMember::end()) {
VectorElement el = *it;
if (SomeTest(el))
DoSomethingToTheVectorThatMightPushBack();
++it;
}
}
Now, as it happens increasing a vector size (for instance by push_back()) does not always make iterators open on it de facto invalid with GCC, it seems, the code just silently does something slightly wrong or whatever. Apparently it does make the iterator really invalid much more easily with MSVC, leading to a crash.
Working around that while still using iterators gets pretty ugly, doesn't it? You have to restart the iteration and skip the number of elements already handled. Or change the code structure completely.
Compare to simply using indexing:
Klass::Method()
{
size_t it = 0;
while (it < vectorMember::size()) {
VectorElement el = vectorMember[it];
if (SomeTest(el))
DoSomethingToTheVectorThatMightPushBack();
++it;
}
}
No stateful iterator that might get invalidated when the vector is resized. Just a simple integer index. What is so wrong and ugly with this? That it, shock horror, looks more like C?
Ανοικτός κώδικας και στο GDC 2012
Αυτή την εβδομάδα διεξάγεται το Συνέδριο Προγραμματιστών Παιχνιδιών, Games Developer Conference, στο Moscone Center, στο Σαν Φρανσίσκο. Η RIM είναι χορηγός, καθώς και κατέχει ένα περίπτερο στην Expo και έχει αρκετές συνεδρίες.
Τα ανοικτού κώδικα project μας(όπως ακριβώς αναφέρει ο pelegri)αποτελούν βασικό τμήμα των συνεδριών. Μερικά από τα repos που θα αντικρίσετε στις συνεδρίες του RIM στο GCD περιλαμβάνουν τα ακόλουθα:
- Gameplay – το δικό μας ανεξάρτητο πλατφόρμας 3D native framework παιχνιδιών
- NDK-Δείγματα – δείχνει τις δυνατότητες της πλατφόρμας Native PlayBook, συμπεριλαμβανομένων των κοινωνικών παιχνιδιών που χρησιμοποιούν BBM και Scoreloop.
- Όλα τα HTML5 repos, συμπεριλαμβανομένων WebGL-Δείγματα (w/ TunnelTilt), WebWorks, WebWorks-TabletOS, WebWorks-Δείγματα, WebWorks-Community-APIs, Ripple, AliceJS, bbUI.js.
- Κοινωνικά παιχνίδια σε WebWorks και σε BlackBerry Smartphones
- Το καταπληκτικό μας Webkit-based πρόγραμμα περιήγησής μας (τόσο για PlayBook και για τα πιο σύγχρονα BlackBerry smartphones)
- και άλλα …
Είναι ένα ενδιαφέρον συνέδριο για τους παιχνιδάδες και κυρίως για αυτούς που πειραματίζονται με τον προγραμματισμό παιχνιδιών. Επίσης, μία “ξενάγηση” σε όλα τα παραπάνω θα ήταν μία υπέροχη, διασκεδαστική και εκπαιδευτική hμέρα… Ελπίζω όποιος παρευρεθεί να απολαύσει όλες τις συνεδρίες.
Δείτε περισσότερες λεπτομέρειες, συμπεριλαμβανομένου του πλήρους καταλόγου των συνεδριών.
Πληροφορίες αντλήθηκαν από άρθρο της ιστοσελίδας openbbnews.wordpress.com
Κάτι το Διαφορετικό! Kony 2012…
“Kony 2012”, ένα τριαντάλεπτο online βίντεο(μπορείτε να το δείτε στο τέλος του άρθρου) που προβάλει την στυγερότητα και φρικαλεότητα του Joseph Kony, επικεφαλής του Στρατού Αντίστασης της Ουγκάντα, Lord’s Resistance Army. Πλέον, με αρχή αυτό το βίντεο έχει συγκεντρώσει την υποστήριξη σε όλο τον κόσμο για να επιτευχθεί η απομάκρυνσή του.
Το 2004, ο Kony κατηγορήθηκε για εγκλήματα πολέμου από το Διεθνές Ποινικό Δικαστήριο της Χάγης, μετά από δεκαετίας βάναυσων ενεργειών απέναντι σε ανθρώπους – και κυρίως παιδιά – σε αρκετές χώρες, συμπεριλαμβανομένου των Ουγκάντα, Λαϊκή Δημοκρατία του Κονγκό, Κεντροαφρικανική Δημοκρατία, Νότιο Σουδάν και το Σουδάν.
Όλες αυτές οι ιστορίες μετά την είδηση, έχουν καταγράψει φρικιαστικές πράξεις, όπως για παράδειγμα η απαγωγή μικρών παιδιών και η στρατολόγησή τους στον στρατό του και η μετατροπή( με την βοήθεια απαγωγής) των κοριτσιών σε σκλάβες του…σεξ. Ο “αντιστασιακός” στρατός του έχει ακρωτηριάσει έναν υπερογκώδη αριθμό θυμάτων και σύμφωνα με τις πληροφορίες έχει καταλήξει και στον κανιβαλισμό.
Ποτέ, όμως, δεν υπήρξε τόσο μεγάλη κατακραυγή για την σύλληψή του όσο είναι τώρα – και αυτό οφείλεται στο βίντεο, δημιούργημα των Invisible Children, μια σχεδόν άγνωστη ομάδα στήριξης που εργάζεται για την καταπολέμηση και την απομάκρυνση του Kony.
57 εκατομμύρια Views
Το βίντεο, που βρίσκεται στο YouTube, έχει πάνω από 57 εκατομμύρια views. Πρόκειται για μια καταπληκτική και αξιέπαινη δουλειά, ξεκινώντας με μία σειρά από εικόνες του γιου του σκηνοθέτη – ένας σκηνοθετικός τρόπος με σκοπό να συνδεθούν οι θεατές με τα παιδιά της Αφρικής, προβάλλοντας την ανησυχία οποιουδήποτε γονέα για το παιδί του.
Ωστόσο, χρειάστηκε κάτι παραπάνω από έναν καλό σκηνοθέτη και δημιουργό για να φτάσει αυτό το βίντεο σε όλες τις γωνιές του πλανήτη. Διασημότητες και, γενικά, γνωστά πρόσωπα προσφέρθηκαν να μιλήσουν περί του θέματος τούτου, καθώς η εταιρία που το ξεκίνησε αυτό το βίντεο επιδοτήθηκε από μία ισχυρού περιεχομένου ιστοσελίδα και ίσως, ως επί το πλείστον σημαντικότερο, αυτό προκαλεί μία πρόκληση για συμμετοχή για τον θεατή.
Το βίντεο ζητά από τους θεατές να βάλουν αφίσες που ζητούν την απομάκρυνση του Kony στις 20 Απριλίου. Καλεί, επίσης, τους ανθρώπους να δώσουν μία υπόσχεση ότι θα τον φέρουν ενώπιον της δικαιοσύνης το 2012.
Ένα εκπληκτικό ξεκίνημα
“Ο Kony είναι πολύ πιθανόν πλέον να συλληφθεί, χάρη στο βίντεο,” δήλωσε ο Paul Levinson, καθηγητής των επικοινωνιών και μέσων ενημέρωση του Πανεπιστημίου Fordham.
“Έχει πραγματοποιήσει ένα εκπληκτικό ξεκίνημα”, τόνισε το TechNewsWorld. “Τριάντα εκατομμύρια από τα 57 εκατομμύρια views έχουν πραγματοποιηθεί μόλις την τελευταία μέρα. Η ταχύτητα με την οποία προβάλλεται είναι εκπληκτική.”
Η έκκληση για κινητοποίηση ήταν ένα σημαντικό βήμα, και θα έχει να κάνει αρκετά με την σύλληψή του, έστω και αν οι αφίσες είναι πιθανό να βρίσκονται σε χώρους όπως το Σαν Φρανσίσκο, το Λονδίνο ή την Φρανκφούρτη – δύσκολα σημεία όπου μπορεί να εντοπιστεί ο Kony.
Όμως, δεν είναι αυτό το σημαντικότερο σημείο, είπε ο κ. Λέβισον. “Αυτό δείχνει το πώς οι άνθρωποι έχουν συνηθίσει στην πίεση για αλλαγή πλέον. Υπάρχει μία έκκληση για ένα είδος κινητοποίησης στα κοινωνικά μέσα μαζικής ενημέρωσης, και συνεχίζεται και στον υπόλοιπο πραγματικό κόσμο.”
Τόνισε, επίσης, πως το βίντεο και οι αφίσες θα ασκήσουν πίεση στους πολιτικούς και στους ηγέτες σε όλο τον κόσμο, με αποτέλεσμα να δραστηριοποιηθούν και να κάνουν κάτι για αυτό.
“Είναι δύσκολο για τον κόσμο να επιτρέψει να συνεχίζεται αυτά που κάνει”, επισήμανε ο ίδιος.
Ο σκηνοθέτης βάζοντας τον, μόλις 5 χρονών, γιο του, Gavin, στο βίντεο έχει επικριθεί από ορισμένους, αλλά ο Levinson πιστεύει ότι αυτό ήταν το πιο αποτελεσματικό τμήμα της εκστρατείας. “Δεν υπάρχει τίποτα πιο ελκυστικό από ένα παιδί να δώσει ένα ηχηρό μήνυμα”, είπε.
“Κατά κάποιο τρόπο, είμαστε τόσο αδαείς – σαν τα 5χρονα παιδιά – για αυτά τα γεγονότα”, σχολίασε ο κ. Λέβινσον.
“Το θέμα δεν είναι ότι οι τέτοιου είδους ιστορίες μπορούν να ειπωθούν μέσω ενός βίντεο χαμηλού προϋπολογισμού. Αλλά το σημαντικό είναι ότι, οι ιστορίες που να διανεμηθούν σε ένα κλάσμα του κόστους και να καταλήξουν σε ένα παγκόσμιο ακροατήριο.”
Η γνώμη μου περί του θέματος είναι πως μέσω του Ίντερνετ και γενικά της τεχνολογίας μπορούμε να αντιμετωπίσουμε πολλά πράγματα, είτε αυτά είναι πόλεμοι, αρρώστιες, κυβερνήσεις κτλ. Οι γνώμες και οι προτάσεις είναι καλές. Πρέπει, πλέον να βάλουμε ορισμένες σε εφαρμογή. Οι πολιτικοί και οι ηγέτες (πολιτικοί ηγέτες = καταργήθηκε η λέξη πιστεύω στη Ελλάδα!) δεν θα ενδιαφερθούν για τόσο “απλά” και “αδιάφορα” ζητήματα. Καιρός να χρησιμοποιήσουμε εμείς οι ίδιοι τα μέσα μαζικής ενημέρωσης και κυρίως τη Δύναμη του Ίντερνετ. Μπορούμε μέσω facebook, twitter, blogs και ιστοσελίδες να δραστηριοποιηθούμε και να αντιμετωπίσουμε πολλές δυσκολίες, αρκεί να μην τα καταδικάζουμε όλα. Να “πολεμήσουμε” διαδικτυακά και να συμβάλλουμε. Δεν πρέπει να μετατραπούμε σε έρμαια της τεχνοφοβίας!
Πληροφορίες αντλήθηκαν από το άρθρο της Erika Morphy της ιστοσελίδας www.technewsworld.com
MIDI-Eingabe in openSUSE 12.1
Da kommt man nach langer Zeit endlich mal wieder dazu seine Hercules DJ Console MK2 anzuschließen, und dann findet /dev/snd nur noch für den Nutzer root und die Gruppe audio verfügbar. Die Lösung: Den eigenen Nutzer der Gruppe audio hinzufügen, neu anmelden und schon geht es wieder. :)
Persistent IUCV Network Devices
On mainframes, Inter User Communication Vehicle provides a means to exchange data between two guests in z/VM. Some time ago, this has been one of the preferred networking methods between two Users (virtual machines) on z/VM. From a linux perspective, IUCV is not a supported networking method anymore, although it actually still works quite nicely.
Setup as a pointopoint connection, IUCV needs a special machine that is run as a pointopoint partner and routes to the rest of the network if needed. With linux, it is quite easy to setup IUCV interfaces. The problems arise when you have more than one IUCV interface and must make sure that the IP configuration in /etc/sysconfig/network/ifcfg-iucv* is setup for the correct User.
In SLES11 and later, the hardware configuration of IUCV interfaces is done with udev rules. For each available connection, there is an extra file with a ruleset below /etc/udev/rules.d. By default, such a rules file looks like this:
# cat /etc/udev/rules.d/51-iucv-LINUX001.rules
ACTION=="add", SUBSYSTEM=="subsystem", KERNEL=="iucv", RUN+="/sbin/modprobe netiucv"
ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="netiucv", ATTR{connection}="LINUX001"
The issue is, that during network device setup, all of the devices are simply setup as they are found. This is unfortunately not persistent and commonly results in connecting a User (virtual machine) with the IP address of a completely different machine. In the end, networking is simply broken.
For example, if you look at the netiucv0 user, the following is found:
# cat /sys/devices/iucv/netiucv0/user LINUX001
However the actual device is configured in /etc/sysconfig/network/ifcfg-iucv36. To solve this, a special iucv device below the netiucv device must be configured. This is a task for udev. The above udev rule needs an extra line at the end:
ACTION=="add", SUBSYSTEM=="subsystem", KERNEL=="iucv", RUN+="/sbin/modprobe netiucv"
ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="netiucv", ATTR{connection}="LINUX001"
ACTION=="add", SUBSYSTEM=="net", KERNEL=="iucv*", SUBSYSTEMS=="iucv", ATTRS{user}=="LINUX001", NAME="iucv36"
After this, the netiucv0/user is still LINUX001. In this case, an extra iucv36 is configured like this:
# cat /sys/devices/iucv/netiucv0/net/iucv36/device/user LINUX001
and now, the iucv36 device, like it is found in /proc/net/dev is the one that is configured with ifcfg-iucv36, really uses LINUX001 as pointopoint partner. For the sake of completeness, here is the configuration as it is found in /etc/sysconfig/network/:
# cat ifcfg-iucv36 BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='192.168.0.127/24' MTU='' NAME='' NETWORK='' REMOTE_IPADDR='192.168.0.67' STARTMODE='auto' USERCONTROL='no'
Note, that it is possible to use the same IPADDR for all of the configured IUCV interfaces. Only the pointopoint partners that are configured with REMOTE_IPADDR must have their own unique addresses.
When configuring the partner User, IPADDR and REMOTE_IPADDR are swapped of course.
openSUSE with Gnome 使用Box的網路空間
最近的活動:
『Now through Friday, March 23, 2012, log in to receive a free 50GB account upgrade!』
Box App :https://market.android.com/details?id=com.box.android
相關詳細文章可以參考: Box.net 送 Android 用戶終生免費 50 GB 檔案上傳空間
如此一來有Andriod手機的使用者可以得到了50G的空間.
由於Box有提供Webdav的服務,
openSUSE 11.4 (with Gnome) 上你可以從
Nautilus(檔案總管) 的 [File] (檔案) - [Connection to Server..] (連線到服務...)
設定如下:
Server: www.box.net/dav
User name: [Your Box.net account ]
你也可以勾選[Add bookmark],這樣這個設定就會被保存在Nautilus(檔案總管) 的Bookmarks中
填完之後按下[Connect]
然後會出現:
你可以選擇要如何保存你的密碼,
選擇完選項,鍵入密碼之後就可以按下Connect連線了。
在openSUSE 12.1 (with Gnome3 ) 上你可以從
Nautilus(檔案總管) 的 [File] (檔案) - [Connection to Server..] (連線到服務...)
設定如下:
Server: www.box.net/dav
User name: [Your Box.net account ]
Password:[Your password]
如此就可以讓Box空間被掛載起來.
再來就是隨意使用啦!
Reference:老兵不死,為什麼有 Dropbox 我還在用 Box.net?







