Visual Studio und Linux

Nach „Windows kann Linux“ kommt konsequenter Weise dann natürlich „Visual Studio kann Linux“.

Im Beispiel unter dem Link wird gezeigt, wie beim Raspberry Pi mit Hilfe von Visual Studio eine LED zum Leuchten gebracht wird.

Ferner wird gezeigt, wie man eine Desktop-App für Ubuntu erstellen kann. Weiß eigentlich jemand, was da im Detail hinter der „Microsoft und Canonical“-Sache steckt?

Ubuntu in Windows 10

Neu ist auch bei Microsoft auf der Build 2016 jetzt, dass Ubuntu mehr oder minder in Windows 10 eingebettet wird. Anfangs nur in der Insider Preview und für Developer ausgelegt, später dann für jeden.

Grundsätzlich funktioniert das so:

Mehr Informationen gibt es bei Dustin Kirkland, der für Canonical tätig ist.

Wichtig ist: Es handelt sich um keine VM, keinen Container und ist nicht cygwin-artig aufgebaut. System Calls von Linux werden mehr oder minder nur für Windows übersetzt – eine Art umgedrehtes wine.

Derzeit basiert der Spass noch auf Ubuntu 14.04 und soll bald auf Ubuntu 16.04 hochgepatcht werden.

Compgen:Alle Befehle anzeigen

Was bei Powershell relativ einfach strukturiert ist (Get-Command), ist bei Linux manchmal nicht so hundert prozentig ersichtlich: Die Angabe aller verfügbaren Befehle. Hier hilft compgen.

Bei Linux kommt hier natürlich hinzu: Was habe ich installiert, …

Hier kommt bei Linux (und auch OS X) dann compgen zum Einsatz. Das Output sprengt hier den Rahemen, daher sei jeden nahegelegt, die Commands mal testweise auf seiner aktuellen Linux-Maschine zu testen:

  • compgen -c: Zeigt alle verfügbaren Commands an, die vorhanden sind.
  • compgen -a: Zeigt alle verfügbaren Aliase an, die vorhanden sind.
  • compgen -b: Zeigt alle verfügbaren Built-Ins an, die vorhanden sind.
  • compgen -k: Zeigt alle verfügbaren Keywords an, die vorhanden sind.
  • compgen -A function: Zeigt alle verfügbaren Functions an, die vorhanden sind.
  • compgen -A function -cabk: Zeigt alle oben einzeln abgefragten Informationen komplett an.

Wer jetzt ein spezielles Command oder einen Alias sucht, das zum Beispiel mit „find“ zusammenhängt, gibt folgendes ein:

compgen -ac | grep find

compgen ac grep find

Das Ergebnis sind alle Befehle und Aliase, die irgend etwas mit find zu tun haben. :) Fröhliches Testen.

Namebench

Man kennt es ja grundsätzlich so: Internet-Anbieter auswählen, die Kriterien können über Preis, Ping, Bandbreite und vieles anderes mehr gehen. Hardware besorgen, verkabeln und Internet genießen. Was aber, wenn der Anschluss bei manchen Anforderungen hakt? Wenn die Pingzeit zwar okay ist, Webseiten aber langsam aufgerufen werden? Hier kommt Namebench ins Spiel.

Namebench ist ein Tool, um Nameserver zu benchmarken. Normalerweise bekommt man den Nameserver über seinen Router mit und dieser wiederum vom Provider. Alternativ gibt es im Internet noch nahezu endlos viele DNS-Server und obendrein natürlich noch diese, die Google selbst hostet (z.B. 8.8.8.8 und 8.8.4.4). Diese lösen die zum Hostnamen (z.B. my-devnull.de) gehörige IP-Adresse auf (in diesem Beispiel 217.160.222.225). Kann man gerne selbst nachprüfen:

CMD öffnen, nslookup schreiben und nach der Leertaste noch die entsprechende Domain anfügen. Das sieht dann so aus:

nslookupmydevnull

Okay soweit? In diesem Fall ist das relativ unschön angezeigt: speedport.ip steht für meinen Router, dieser fragt dann beim Provider weiter und der dann ggfs. noch weitere Nameserver. Was aber, wenn in dieser Kette einer der Nameserver langsam ist und dann – Flaschenhalsprinzip! – alles ausbremst? Hier kommt nun Namebench.

Grundlegend gilt zu Namebench zu sagen: Namebench wurde von Thomas Strömberg in seiner 20%-Zeit entwickelt. Das ist die Zeit, die Google seinen Mitarbeitern für eigene Programmierprojekte zur Verfügung stellt. Namebench wird nicht mehr aktiv weiterentwickelt, erfüllt seinen Zweck aber nach wie vor.

Tool herunterladen: Windows, Linux, OS X werden untersützt. GUI und Commandline sind zwei Möglichkeiten. Als Nameservers wird mein Router, sowie die Server von Google angegeben, um gegeneinander zu benchmarken. Ebenso kommt noch OpenDNS und UltraDNS, sowie andere ins Spiel.

namebench

Sobald das Tool gestartet ist, läuft der Vorgang automatisch durch. Etwas Zeit sollte mitgebracht werden versteht sich. Je nach Settings sind wir hier mit 10-30 Minuten unterwegs. Am Ende kommt eine ausführliche Website als Ergebnis heraus. In diesem Fall ist mein Speedport als „schnellster DNS-Server“ angegeben. Alternativen und ausführliche Informationen werden entweder im HTML-File oder als .csv zur Verfügung gestellt.

namebench_result

Make Primary in Yoast Seo deaktivieren.

Das Yoast SEO Plugin wartet mit Version 3.1 auf und bringt einige Neuerungen mit sich. Die Aktualisierung geht – soweit eingestellt – in WordPress automatisch. Alternativ kann das Plugin natürlich auch manuell aktualisiert werden. Nach dem Update-Vorgang steht im Dashboard als Willkommen folgende Meldung:

yoast_31_update

Unter den Neuerungen ist die Funktion Make Primary, die hinter den Kategorien die Möglichkeit bietet, die Kategorie zur primären zu machen.

primary-category-600x473[1]
Quelle: https://yoast.com/yoast-seo-3-1/
Sofern mehrere Kategorien für einen Beitrag ausgewählt worden sind, konnte das Plugin bisher keine Gewichtung für die Kategorien bieten. Dies ist mit der Funktion Make Primarymöglich.

Wenn man dies nicht wünscht oder aus anderen Gründen deaktivieren will, gibt es folgende Option:

Im Theme muss die Datei functions.php editiert und um folgende Zeile am Ende ergänzt werden:

add_filter( ‚wpseo_primary_term_taxonomies‘, ‚__return_false‘ );

Danach ist die Funktion wieder verschwunden. Für mehr Informationen kann auch die entsprechende Diskussion aufgesucht werden.

Raspberry Pi 3 Leistung

Nach dem Artikel zum Raspberry Pi 3, in dem ich die Hardware für das finanzielle Budget als ausreichend bezeichnet habe, gibt es von den c’t Labs nun den Test bezüglich Performance und Leistungsaufnahme.

Bezüglich der CPU-Leistung beziffert c’t dies mit (Quelle)

Raspi-Version Coremark 1 Thread / 8 Threads
Raspberry Pi 3 B 3504 / 13.717 Punkte
Raspberry Pi 2 B 2278 / 8910 Punkte

Die Stromaufnahme ist von 3 Watt auf 4,7 Watt gestiegen. Dies ist im Verhältnis eine relativ krasse Steigerung. Die Single Core-Performance hat sich dennoch verbessert, während der Raspberry Pi 2 in der Multicore-Performance mehr Leistung pro Watt erzielt als der Raspberry Pi 3.

Im Vergleich zu meinem vorhergehenden Thread finde ich auch folgenden Satz von c’t interessant:

Bei längerer Volllast auf allen Kernen erwärmt sich der Chip BCM2837 kräftig, nämlich auf mehr als 80 Grad Celsius.

Wenn der Bastelknecht daheim immer mehr Leistung liefern soll, wirkt sich dies auch auf die Temperatur aus. Die Konkurrenz schickt ebenso schon Octa-Core Geräte ins Rennen, die dann aber mit einem aktiven Kühler aufwarten. Ab hier ist dann meiner Meinung nach wieder die Grenze zwischen vollwertigem Desktop/Server und Bastelrechner erreicht.

Die Specs des Raspi sind noch vertretbar:

SoC: Broadcom BCM2837
CPU: 4× ARM Cortex-A53, 1.2GHz
GPU: Broadcom VideoCore IV
RAM: 1GB LPDDR2 (900 MHz)
Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless
Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy
Storage: microSD
GPIO: 40-pin header, populated
Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)

Dass der Raspberry Pi 3 deutlich mehr Strom benötigt und die Leistung in Watt und Hitze gezahlt wird, ist auch auf Raspberrypi.org bekannt. Unter dem Punkt power draw wird hier ersichtlich, dass der Pi3 im Vergleich zu den Vorgängern teilweise den dreifachen Stromverbrauch selbst im Idle hat.

Powerdraw
Quelle: https://www.raspberrypi.org/

Der Raspberry Pi 3 ist aus meiner Sicht die Grenze zwischen „Bastelrechner“/“Miniserver“ und einem größeren Formfaktor wie dem Intel NUC. Wenn mehr Leistung erzielt werden soll, würde dies den Einsatzzweck von vielen Raspberry Pi’s grundlegend neu definieren.

Raspberry Pi 3

Nachdem ich jetzt schon einige Posts über den Raspberry Pi 3 gelesen habe, bin ich mit der meist vorherrschenden Meinung nicht ganz konform. Grundsätzlich scheinen die Gemüter über die „mangelnde“ Leistung des Raspberry enttäuscht und man hat mehr erwartet. Gerade auf heise  liest sich die News so, als ob der Verfasser enttäuscht wäre.

Zitat:

[…]waren die Erwartungen an den Raspi 3 hoch: 2 GByte RAM, 2 GHz Takt, 64 Bit, USB 3.0, GBit-Ethernet, eMMC-Flash und SATA onboard, 4K-Video und HEVC-Dekodierung in Hardware, und so weiter und so fort.

Im Weiteren ist bei Heise von einem enttäuschenden Kompromiss die Rede. Warum dies so ist, ist mir jedoch nicht ganz verständlich. Wenn ich die Seite mit den Vergleichen der Raspberry Pi-Modelle aufrufe, sind in fast allen Bereichen Verbesserungen getätigt worden:

  • 64Bit-Unterstützung
  • von 900MHz auf 1,2GHz (Quad Core, versteht sich)
  • Spannung von 1,8A@5V auf 2,5A@5V erhöht
  • Gänzlich neu sind Bluetooth und Wifi

Die Punkte die gleich geblieben sind, sind 4x USB 2.0, die GPU, der RAM und andere weniger aussagekräftige Komponenten.

Nun ist mir nicht ganz klar, worin die Enttäuschung besteht, ist der Raspberry doch eher als Rechner zu Bastel- und Lernzwecken gedacht und nicht als vollwertiger Desktop oder Server.

Der Fokus des Raspberry Pi 3 war in der Kompatibilität zu den Vorgängermodellen: Lediglich die LED’s mussten den Platz wechseln, um der neuen Antenne für die kabellose Konnektivität Platz zu machen. Das Zubehör für vorhergehende Raspberry-Modelle sollte noch nahtlos funktionieren.Raspberry Pi 3Die Größe, der Preis und die Konnektivität des Raspberry lassen eigentlich keinen Grund für Enttäuschung offen. Die Hardware ist aus meiner Sicht für das Gesamtpaket ausreichend. Wünschenswert wäre für die Zukunft bezüglich Server-Dienste und Heim-Automation allenfalls noch eine unterbrechungsfreie Stromversorgung für den Raspberry Pi 3. Eigenbau-Konstrukte haben bei Vorgängerversionen zwar ihren Dienst verrichtet (Stichwort: Passthrough-USB-Powerbank), aber der Raspberry war im Falle eines Stromausfalles immer zu einem kurzen Reboot genötigt worden. Für mich wäre daher die Erweiterung der Funktionen hin in den Server-Bereich eine wünschenswerte Entwicklung, die aber kein zwingendes Must-have ist. Ein Bastel-Rechner ist eben ein Bastel-Rechner und kein Desktop-, Server- oder Sonstwas-Ersatz. Kostenpunkt für den Bastel-Rechner sind somit auch derzeit akzeptable 35 US-Dollar.

wttr.in – Wetterbericht in ASCII

Stolzer OS X-Benutzer und Interesse an Spielereien? Wetterbericht mal anders im Terminal (auch *NIX)? Igor Chubin hat hier eine tolle Spielerei bereitgestellt.

Grundsätzlich muss man nur folgenden Befehl eingeben:

curl http://wttr.in/AUFENTHALTSORT

Das http ist optional und kann bei Bedarf auch weggelassen werden.

Für „Calw“ im schönen Schwarzwald sieht dies so aus:

wttr.in/calw

Sofern keine Stadt angegeben ist, nimmt wttr.in automatisch einen Punkt in der Nähe. Die Zielgenauigkeit lässt aber etwas zu wünschen übrig, da Leinfelden-Echterdingen ein wenig von Calw differiert. :)

wttr.in nochoice

Wer den Wetterbericht in ASCII auch für Windows sehen will, kann sich nun auch freuen: Igor hat bekannt gegeben, dass dies auch mit der Powershell möglich ist.

wttr.in powershell

Allerdings scheine ich hier mit der Codierung einige Probleme zu haben. Diese möchte ich aber nicht weiter vertiefen, da wttr.in grundsätzlich funktioniert und ich es auf der Powershell – wenn überhaupt – wohl nie nutzen werde.

In diesem Sinne: Happy ASCII’ing.

 

Update:

Gerade bekam ich eine Mail von Igor Chubin, in der er mein Problemchen mit dem Abruf von wttr.in in Powershell angesprochen hat. Hier muss ich doch ein wenig um Absolution bitten, da ich dem Thema mit der Powershell wohl zu wenig Gewicht beigemessen habe. In der Mail wurde ich auf Twitter verwiesen, dort ist wiederum ein Link zu Github hinterlegt, der ANSI-Sequenzen in der Powershell aktiviert. Nachdem dies fehlerlos durchgelaufen ist, kann ich Erfolg vermelden, die Abfrage mit der Powershell klappt nun auch schön, schnell und fehlerlos. Danke für die kurze Rückmeldung Igor. :)wttr.in powershell working

 

CTB-Locker befällt Websites

Mit zunehmender Verbreitung von sogenannten Crypto-Trojanern werden die Ziele auch immer breiter gefächert. Die neue Version des CTB-Lockers ( CTB-Locker ) befällt nun auch Websites.

Besser gesagt: Der Angriffsweg ist noch nicht ganz klar, es wird vermutet, dass der CTB-Locker (ein PHP-Script) auf Webserver, die eine Sicherheitslücke haben, geschleust wird. Der Quellcode des Trojaners sowie infizierte Seiten sind unter kernelmode.info ersichtlich.

Der CTB-Locker befällt den Webserver, verschlüsselt Dateien mit bestimmten Endungen und gibt ein Zeitlimit, bis zu diesem eine Summe in Bitcoins zur Entsperrung gezahlt werden muss. Ist eine Website befallen, sieht dies wie folgt aus:

ctb-locker

Bei Bedarf ist sogar ein Video eingebettet, in dem der Erwerb von Bitcoins beschrieben wird. Wenn an die entsprechende Website (z.B. http://hier-eine-testsi.te) eine Endung angegeben wird, kann man zum Test zwei beliebige Dateien kostenlos entschlüsseln. (im Beispiel: http://hier-eine-testsi.te/?page=freepage )

Die Dateiendungen, die umbenannt werden, sind folgende:

264 3g2 asf asx avi bik dash dat dvr flv h264 m2t m2ts 3dm 3ds 3gp 7z a3d aa aac ace adp ai amr ape apk apng arj asm asp aspx aws bas bat bbc blend bml bmp btm bzip2 c c4d cab cdr cfm cgi cgm clear clf cmd coff cpio cpp cpt cs csv dds deb dgn dicom dif dll djvu doc docx dta dvi dwg dxf edi elf emf eps exe fbx fig flac gif gpx gzip h ha hdr htm html iff ihtml phtml img inf iso jar java jpe jpeg jpg js jsp lav lha lib lwo lws lzo lzx m3d ma mac maf max mb md mdf mdl mds mhtml midi mkv ml mmf mng mod mov mp3 msi mxf nrg obj ods odt ogg out pas pcl pcx pdf pdn php pkg pl png pos prg prt ps psd py pz3 rar raw rb rib rpm rtf sai sd7 sdxf sgml sha shtml sldasm sldprt smc smil spr stdf stm stp svg swf sxc tar tex texinfo tga tgz tif tiff troff txt u3d unity uts vob vsm vue wav wif wire wlmp wma wmf wmv x x3d xhtml xls xlsx xmi xml xpm xz zip zoo m4v mp4 mpeg mpg mswmm mts ogv prproj rec rmvb tod tp ts webm 3ga aiff cda dvf gp4 gp5 logic m4a m4b m4p pcm snd sng uax wpl dib dng dt2 ico icon pic thm wbmp wdp webp arw cr2 crw dcr fpx mrw nef orf pcd ptx raf rw2 csh drw emz odg sda abr ani cdt fla icns mdi psb pzl sup vsdx 3D 3d dwfx lcf pro pts skp stl x_t eot otf ttc ttf woff aww chm cnt dbx docm dot dotm dotx epub ind indd key keynote mht mpp mpt odf ott oxps pages pmd pot potx pps ppsx ppt pptm pptx prn pub pwi rep sdd sdw shs snp sxw tpl vsd wpd wps wri xps 1st alx application eng log lrc lst nfo opml plist reg srt sub tbl text xsd xsl xslt azw azw3 cbr cbz fb2 iba ibooks lit mobi sdc xlsm accdb accdt mdb mpd one onepkg pst thmx big hi lng pak res sav save scn scx wotreplay wowpreplay g64 gb gba mbz n64 nds nes rom smd srm v64 ova ovf pvm vdi vhd vmdk vmem vmwarevm vmx ashx atom bc class crdownload css dlc download eml gdoc gsheet gslides json part partial rss torrent xap ldif msg vcf app com cpl gadget lnk scr tmp vbs bin drv ocx sys vxd 002 003 004 005 006 007 008 009 010 7zip a00 a01 a02 a03 a04 a05 air arc asec bar c00 c01 c02 c03 cso gz hqx inv ipa isz msu nbh rar r00 r01 r02 r03 r04 r05 r06 r07 r08 r09 r10 sis sisx sit sitd sitx tar.gz webarchive z01 z02 z03 z04 z05 bak bbb bkf bkp dbk gho ipd mdbackup nba nbf nbu nco old sbf sbu spb tib wbcat 000 ccd cue daa dao dmg mdx tao tc toast uif vcd crypt ipsw npf pkpass rem rsc gdb ofx qif db dbf fdb idx msmessagestore sdf sql sqlite wdb kml kmz map appx appxbundle blf dump evtx kext mui sfcache swp cnf contact deskthemepack ics ifo lrtemplate m3u m3u8 pls skn svp template theme themepack trm wba plugin safariextz xpi inc jad o rc scpt src cfg ini usr dmp ksd pfx ut adadownload cache temp 3dr cal dct dic gbk md5 prj ref upd upg

 

Um einer Infektion zu entkommen, wird empfohlen, sämtliche CMS auf dem aktuellen Stand zu halten, die Sicherheit eigener Skripte zu überprüfen und auch Webserver wie Apache, nginx, sowie den Server an sich abzusichern.

Linux Mint – Schadensbilanz

Wie ich neulich in meinem Post über den Hack auf die Website von Linux Mint geschrieben habe, wurden dort die .iso-Dateien verändert und das Forum gekapert. Wie dies mit solchen Fällen so ist, beginnt danach die Aufräumaktion. In Sachen Linux Mint scheint diese jedoch auch auf fehlerhafte Konfiguration und mangelndes Sicherheitsbewusstsein zurückzuführen zu sein.

Interessant ist zuerst der Post auf heise.de, dass Linux Mint über WordPress gehackt worden sei – und zwar gleich doppelt. Clement (Clem) Lefebvre hat die Ursache auf einen Angriff auf WordPress zurückgeführt. Keine Zero Day-Exploits, sondern ein custom theme und lasche Sicherheitseinstellungen haben den Angreifern Tür und Tor geöffnet.

No plugins, latest WP, but a custom theme and lax file permissions for a few hours. The security experts will probably find the exact cause. At the moment there’s no indication it’s related to WP core (we’d probably see a lot more sites being hacked right now, this seems to be targeted specifically at us).

Nun stellt sich natürlich die Frage, wie so etwas bei einem Entwickler von einer Linux-Distribution passieren kann, da man mit der Materie an sich schon eine gewisse Affinität aufweisen sollte. Hier ist ein anderer Beitrag relativ interessant. Zu finden ist dieser auf lwn.net und verfasst von glaubitz. Alleine der eröffnende Satz ist schon sehr vernichtend formuliert:

Well, Linux Mint is generally very bad when it comes to security and quality.

Da grundsätzlich im Internet sowieso getrollt wird, ist normales „Gejammer“ schon zum Hintergrundrauschen geworden. Glaubitz präzisiert seine Anschuldigungen jedoch:

  • Fehlende Security Advisories (im Gegensatz zu anderen Distributionen kann ein User nicht anhand von CVE’s sehen, ob er von Sicherheitsproblemen betroffen ist). siehe auch
  • Linux Mint mischt eigene Pakete mit denen von Ubuntu und Debian, wodurch ein im Fachjargon sogenanntes Frankendebian entsteht. Um Fehler zu umgehen, werden manche Packages auf die Update-Blacklist gesetzt, wodurch für den User zwar ein funktionierendes Linux Mint resultiert, die Sicherheit als solche aber weiter gesenkt wird.
  • Linux Mint übernimmt Pakete (z.B. gdm2) und benennt diese selbständig um (in mdm = Mint Display Manager). Da Debian bereits ein anderes Paket namens mdm enthält, kann dieses somit unter Mint nicht installiert werden.
  • Andere Beispiele sind rigorose Benamungen wie z.B. bei xedit, wo Linux Mint den Namespace eines anderen Packages hijacked.
  • Als finales Beispiel werden Packages wie z.B. Flash und Codecs genannt, die gegebenenfalls geltendes Recht verletzen und dennoch ausgeliefert werden. Ferner wird die Professionalität der Mint-Developer in Frage gestellt.

Als kleiner positiver Ausblick (2) hat das Mint-Team dennoch zeitnah reagiert und ein neues Update (4.9.9.1) heraus gebracht, in dem nach potenziell infizierten Dateien nach dem Hack gesucht wird.

Das Forum ist mittlerweile auch wieder online – wahrscheinlich mit sicherer konfigurierten Servern im Hintergrund. Ob sich die Philosophie von Linux Mint hierdurch ändert und das Projekt durch den großen Rückschlag eventuell etwas mehr erwachsen wird, wird sich in der Zukunft zeigen.