Regexp (not in string) in perl - regex

Okie, I have the following files:
total 32
drwxr-xr-x 12 al staff 408B Feb 28 11:36 ./
drwxr-xr-x+ 40 al staff 1.3K Feb 28 10:07 ../
drwxr-xr-x 3 al staff 102B Oct 19 20:38 Install OS X Yosemite.app/
-rw-r--r-- 1 al staff 7B Dec 15 13:35 file1
-rw-r--r-- 1 al staff 4B Dec 15 13:35 file2
-rw-r--r-- 1 al staff 11B Dec 15 13:35 file3.part
-rw-r--r-- 1 al staff 0B Feb 28 11:36 file4.art
-rwxr-xr-x 1 al staff 1.9K Feb 28 11:35 show.pl*
drwxr-xr-x 2 al staff 68B Feb 28 10:07 test1/
drwxr-xr-x 6 al staff 204B Feb 28 10:12 test2/
drwxr-xr-x 3 al staff 102B Feb 28 10:07 test3/
drwxr-xr-x 3 al staff 102B Feb 28 10:12 test4/
Now I need a regexp that will do the following:
3 or more characters (to omit . and ..) of any type NOT ending in the string .part (but ending in anything else is OK).
The following almost works, but it will not match .app and .art (which it should).
print $file =~ m/^.{3,}[^(\.part)]$/i;
And please believe me when I say... I have TRIED (for a loooong time)

You need to use a negative lookahead assertion at the start.
print $file =~ m/^(?!.*\.part$).{3,}/i;
DEMO
Asserts that the string going to be matched won't contain .part string at the last. If yes, then match the string which has three or more characters. $ asserts that we are at the end.

Related

python bindings for gstreamer: how to import typelib

I was building gstreamer latest version on my raspberry pi. I wanted to have python bindings, hence I installed gobject-introspection-1.0 and pygobject-3.18.2 before compiling the gstreamer and its plugins.
At the end of the build of gstreamer and all of its plugins, I see these files:
pi#raspberrypi:~/kurento $ ls -ltr /usr/local/lib/girepository-1.0
total 580
-rw-r--r-- 1 root staff 214076 Mar 28 19:28 Gst-1.5.typelib
-rw-r--r-- 1 root staff 43712 Mar 28 19:28 GstBase-1.5.typelib
-rw-r--r-- 1 root staff 6500 Mar 28 19:28 GstController-1.5.typelib
-rw-r--r-- 1 root staff 6272 Mar 28 19:28 GstNet-1.5.typelib
-rw-r--r-- 1 root staff 13116 Mar 28 19:29 GstCheck-1.5.typelib
-rw-r--r-- 1 root staff 14460 Mar 28 20:23 GstTag-1.5.typelib
-rw-r--r-- 1 root staff 2508 Mar 28 20:23 GstFft-1.5.typelib
-rw-r--r-- 1 root staff 27460 Mar 28 20:23 GstRtp-1.5.typelib
-rw-r--r-- 1 root staff 24160 Mar 28 20:23 GstSdp-1.5.typelib
-rw-r--r-- 1 root staff 32856 Mar 28 20:23 GstRtsp-1.5.typelib
-rw-r--r-- 1 root staff 75268 Mar 28 20:23 GstVideo-1.5.typelib
-rw-r--r-- 1 root staff 46800 Mar 28 20:24 GstAudio-1.5.typelib
-rw-r--r-- 1 root staff 25764 Mar 28 20:24 GstPbutils-1.5.typelib
-rw-r--r-- 1 root staff 5732 Mar 28 20:24 GstApp-1.5.typelib
-rw-r--r-- 1 root staff 1876 Mar 28 20:24 GstAllocators-1.5.typelib
-rw-r--r-- 1 root staff 17736 Mar 28 22:37 Nice-0.1.typelib
Then I compiled gst-python-1.7.1 and then I see the following at appropriate location:
pi#raspberrypi:~/kurento $ ls -l /usr/local/lib/python2.7/site-packages/gi/overrides/
total 640
-rw-r--r-- 1 root staff 15002 Mar 28 18:11 Gdk.py
-rw-r--r-- 1 root staff 14996 Mar 28 18:11 Gdk.pyc
-rw-r--r-- 1 root staff 14996 Mar 28 18:11 Gdk.pyo
-rwxr-xr-x 1 root staff 1141 Mar 29 22:19 _gi_gst.la
-rwxr-xr-x 1 root staff 56124 Mar 29 22:19 _gi_gst.so
-rw-r--r-- 1 root staff 2240 Mar 28 18:11 GIMarshallingTests.py
-rw-r--r-- 1 root staff 2428 Mar 28 18:11 GIMarshallingTests.pyc
-rw-r--r-- 1 root staff 2428 Mar 28 18:11 GIMarshallingTests.pyo
-rw-r--r-- 1 root staff 8147 Mar 28 18:11 Gio.py
-rw-r--r-- 1 root staff 8176 Mar 28 18:11 Gio.pyc
-rw-r--r-- 1 root staff 8075 Mar 28 18:11 Gio.pyo
-rw-r--r-- 1 root staff 33233 Mar 28 18:11 GLib.py
-rw-r--r-- 1 root staff 31701 Mar 28 18:11 GLib.pyc
-rw-r--r-- 1 root staff 31656 Mar 28 18:11 GLib.pyo
-rw-r--r-- 1 root staff 26255 Mar 28 18:11 GObject.py
-rw-r--r-- 1 root staff 23401 Mar 28 18:11 GObject.pyc
-rw-r--r-- 1 root staff 23401 Mar 28 18:11 GObject.pyo
-rw-r--r-- 1 root staff 2785 Mar 29 22:19 GstPbutils.py
-rw-r--r-- 1 root staff 2584 Mar 29 22:19 GstPbutils.pyc
-rw-r--r-- 1 root staff 2584 Mar 29 22:19 GstPbutils.pyo
-rw-r--r-- 1 root staff 11570 Mar 29 22:19 Gst.py
-rw-r--r-- 1 root staff 16602 Mar 29 22:19 Gst.pyc
-rw-r--r-- 1 root staff 16602 Mar 29 22:19 Gst.pyo
-rw-r--r-- 1 root staff 56202 Mar 28 18:11 Gtk.py
-rw-r--r-- 1 root staff 64602 Mar 28 18:11 Gtk.pyc
-rw-r--r-- 1 root staff 64602 Mar 28 18:11 Gtk.pyo
-rw-r--r-- 1 root staff 12820 Mar 28 18:11 __init__.py
-rw-r--r-- 1 root staff 13128 Mar 28 18:11 __init__.pyc
-rw-r--r-- 1 root staff 13070 Mar 28 18:11 __init__.pyo
-rw-r--r-- 1 root staff 1705 Mar 28 18:11 keysyms.py
-rw-r--r-- 1 root staff 1137 Mar 28 18:11 keysyms.pyc
-rw-r--r-- 1 root staff 1137 Mar 28 18:11 keysyms.pyo
-rw-r--r-- 1 root staff 1679 Mar 28 18:11 Pango.py
-rw-r--r-- 1 root staff 1727 Mar 28 18:11 Pango.pyc
-rw-r--r-- 1 root staff 1727 Mar 28 18:11 Pango.pyo
With this setup, I expect to see Gst module being loaded from gi repository.
>>> sys.path
['/usr/local/lib/python2.7/site-packages', '', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-arm-linux-gnueabihf', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7']
>>> import gi
>>> from gi.repository import Gst
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name Gst
>>> gi.require_version('Gst','1.5')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/gi/__init__.py", line 102, in require_version
raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gst not available
>>>
But this is not happening. Please, your help is needed to import the Gst modules into python. Has anyone come across similar situation?
Thanks!
GObject instrospection need type descriptions located at /usr/lib/girepository-1.0
In my case I have:
/usr/lib/girepository-1.0$ ls Gst*1.5*
Gst-1.5.typelib GstFft-1.5.typelib GstRtp-1.5.typelib
GstAllocators-1.5.typelib GstGL-1.5.typelib GstRtsp-1.5.typelib
GstApp-1.5.typelib GstInsertBin-1.5.typelib GstSdp-1.5.typelib
GstAudio-1.5.typelib GstMpegts-1.5.typelib GstTag-1.5.typelib
GstBase-1.5.typelib GstNet-1.5.typelib GstVideo-1.5.typelib
GstCheck-1.5.typelib GstPbutils-1.5.typelib
GstController-1.5.typelib GstPlayer-1.5.typelib
Try installing typelib files there.
I don't have any Gst*.py files installed, with the types description is enough.
Edit
Defining GI_TYPELIB_PATH pointing it to the directory containing the typelib files, in your case /usr/local/lib/girepository-1.5, also solves the problem.

Mutt shows folders with permissions - how do I stop that?

I'm using mutt. My problem at the hand is, that whenever I press "c" to change the folder and mutt allows me to press "?" to choose the folder I want to go to, it shows all folders complete with permissions. I don't need those. I'll attach a sample.
Can anyone please tell me how to disable the listing of permissions? Or at least, tell me what specifically to search on the web? Googling "mutt folder list permission disable" didn't turn up anything useful.
Thank you for taking the time to read and think about this.
Sample:
1 drwxr-xr-x 5 damait06 damait06 4,0K Sep 06 22:53 ../
2 drwx------ 5 damait06 damait06 4,0K Aug 18 17:56 INBOX/
3 drwx------ 5 damait06 damait06 4,0K Sep 13 16:13 INBOX.abuse
4 drwx------ 5 damait06 damait06 4,0K Sep 06 22:48 INBOX.
5 drwx------ 5 damait06 damait06 4,0K Sep 06 22:48 INBOX.
6 drwx------ 5 damait06 damait06 4,0K Sep 06 22:48 INBOX.
7 drwx------ 5 damait06 damait06 4,0K Sep 09 09:19 INBOX.
8 drwx------ 5 damait06 damait06 4,0K Sep 10 12:57 INBOX.
Okay, I'm officially too dumb to use a manual correctly. If anyone else stumbles over this: see here and make sure you delete "%F" from the string you put in your .muttrc

How to solve the "Push rejected, no Cedar-supported app detected" on Heroku when pushing a Django project?

I followed all the steps indicated in the heroku site and each time I get the same error:
$ git push heroku master
Counting objects: 11, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (11/11), 4.12 KiB, done.
Total 11 (delta 0), reused 0 (delta 0)
! Push rejected, no Cedar-supported app detected
To git#heroku.com:glacial-mountain-3911.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git#heroku.com:glacial-mountain-3911.git'
I've looked for other solutions, some of them have a bit differences, but none of them have run :(
Here's the structure of my project:
drwxr-xr-x 9 marcpou staff 306 28 jul 22:07 .
drwxr-xr-x 17 marcpou staff 578 28 jul 00:52 ..
drwxr-xr-x 13 marcpou staff 442 28 jul 22:09 .git
-rw-r--r-- 1 marcpou staff 24 28 jul 01:05 .gitignore
-rw-r--r-- 1 marcpou staff 32 28 jul 00:57 Procfile
drwxr-xr-x 10 marcpou staff 340 28 jul 00:58 hellodjango
-rw-r--r-- 1 marcpou staff 254 28 jul 00:56 manage.py
-rw-r--r-- 1 marcpou staff 154 28 jul 22:08 requeriments.txt
drwxr-xr-x 6 marcpou staff 204 28 jul 00:56 venv
And the content of the requeriments.txt file
Django==1.5.1
distribute==0.6.34
dj-database-url==0.2.2
dj-static==0.0.5
django-toolbelt==0.0.1
gunicorn==17.5
psycopg2==2.5.1
static==0.4
wsgiref==0.1.2
And that's the content of the Procfile
web: gunicorn hellodjango.wsgi
I see that the file "hellodjango.wsgi" don't exist on my project. What should be the content? These are the files of my project.
-rw-r--r-- 1 marcpou staff 0 28 jul 00:56 __init__.py
-rw-r--r-- 1 marcpou staff 155 28 jul 00:57 __init__.pyc
-rw-r--r-- 1 marcpou staff 5869 28 jul 01:02 settings.py
-rw-r--r-- 1 marcpou staff 2876 28 jul 00:58 settings.pyc
-rw-r--r-- 1 marcpou staff 571 28 jul 00:56 urls.py
-rw-r--r-- 1 marcpou staff 293 28 jul 00:58 urls.pyc
-rw-r--r-- 1 marcpou staff 1557 28 jul 01:04 wsgi.py
-rw-r--r-- 1 marcpou staff 1059 28 jul 00:57 wsgi.pyc
The test the Push process on heroku, I've created an application, but I haven't edited anything, that means that I haven't set any database connection.
Does anybody have any idea? I suppose that the error is trivial, but I'm unable to see the error.
Thanks in advance!
I'm pretty sure that correct the spelling of requirements.txt will fix this. Then on to the next problem of adding the postgres db and PROMOTING it.
https://devcenter.heroku.com/articles/heroku-postgresql.

Getting Fabric to work on Mountain Lion using Homebrew and PIP

I can't seem to get Fabric running correctly. I found this article which doesn't solve the issue for me Getting Fabric Python Library to Work
I installed Python using Homebrew brew install python (this also installs PIP):
Running which python I get:
/usr/local/Cellar/python/2.7.3/bin/python
I then installed fabric pip install fabric
Requirement already satisfied (use --upgrade to upgrade): fabric in /usr/local/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): ssh>=1.7.14 in /usr/local/lib/python2.7/site-packages (from fabric)
Requirement already satisfied (use --upgrade to upgrade): pycrypto>=2.1,!=2.4 in /usr/local/lib/python2.7/site-packages (from ssh>=1.7.14->fabric)
The other article suggests that fabric will be located at /usr/local/Cellar/python/2.7.1/bin/fab
Doing an ls on the above (but 2.7.3 in my case) gets the following (no fabric).
lrwxr-xr-x 1 darron staff 80 Oct 26 17:37 2to3 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/2to3
lrwxr-xr-x 1 darron staff 82 Oct 26 17:37 2to3-2 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/2to3-2
lrwxr-xr-x 1 darron staff 84 Oct 26 17:37 2to3-2.7 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/2to3-2.7
-r-xr-xr-x 1 darron staff 422 Oct 26 17:37 easy_install
-r-xr-xr-x 1 darron staff 430 Oct 26 17:37 easy_install-2.7
lrwxr-xr-x 1 darron staff 80 Oct 26 17:37 idle -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/idle
lrwxr-xr-x 1 darron staff 81 Oct 26 17:37 idle2 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/idle2
lrwxr-xr-x 1 darron staff 83 Oct 26 17:37 idle2.7 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/idle2.7
-r-xr-xr-x 1 darron staff 380 Oct 26 17:37 pip
-r-xr-xr-x 1 darron staff 388 Oct 26 17:37 pip-2.7
lrwxr-xr-x 1 darron staff 81 Oct 26 17:37 pydoc -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/pydoc
lrwxr-xr-x 1 darron staff 82 Oct 26 17:37 pydoc2 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/pydoc2
lrwxr-xr-x 1 darron staff 84 Oct 26 17:37 pydoc2.7 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/pydoc2.7
lrwxr-xr-x 1 darron staff 82 Oct 26 17:37 python -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/python
lrwxr-xr-x 1 darron staff 89 Oct 26 17:37 python-config -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/python-config
lrwxr-xr-x 1 darron staff 83 Oct 26 17:37 python2 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/python2
lrwxr-xr-x 1 darron staff 90 Oct 26 17:37 python2-config -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/python2-config
lrwxr-xr-x 1 darron staff 85 Oct 26 17:37 python2.7 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x 1 darron staff 92 Oct 26 17:37 python2.7-config -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
lrwxr-xr-x 1 darron staff 83 Oct 26 17:37 pythonw -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/pythonw
lrwxr-xr-x 1 darron staff 84 Oct 26 17:37 pythonw2 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/pythonw2
lrwxr-xr-x 1 darron staff 86 Oct 26 17:37 pythonw2.7 -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
lrwxr-xr-x 1 darron staff 84 Oct 26 17:37 smtpd.py -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/smtpd.py
lrwxr-xr-x 1 darron staff 87 Oct 26 17:37 smtpd2.7.py -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/smtpd2.7.py
lrwxr-xr-x 1 darron staff 85 Oct 26 17:37 smtpd2.py -> /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/bin/smtpd2.py
I've located the actual install at /usr/local/lib/python2.7/site-packages
drwxr-xr-x 14 darron staff 476 Oct 26 17:41 Crypto
drwxr-xr-x 9 darron staff 306 Oct 26 17:41 Fabric-1.4.3-py2.7.egg-info
drwxr-xr-x 10 darron staff 340 Oct 26 17:37 distribute-0.6.28-py2.7.egg
-rw-r--r-- 1 darron staff 237 Oct 26 17:37 easy-install.pth
drwxr-xr-x 10 darron staff 340 Oct 26 17:41 fabfile
drwxr-xr-x 41 darron staff 1394 Oct 26 17:41 fabric
drwxr-xr-x 7 darron staff 238 Oct 22 08:13 git_remote_helpers
lrwxr-xr-x 1 darron staff 93 Oct 22 08:13 git_remote_helpers-0.1.0-py2.7.egg-info -> ../../../Cellar/git/1.8.0/lib/python2.7/site-packages/git_remote_helpers-0.1.0-py2.7.egg-info
drwxr-xr-x 4 darron staff 136 Oct 26 17:37 pip-1.2.1-py2.7.egg
drwxr-xr-x 7 darron staff 238 Oct 26 17:41 pycrypto-2.6-py2.7.egg-info
-rw-r--r-- 1 darron staff 144 Oct 26 17:37 setuptools-0.6c11-py2.7.egg-info
-rw-r--r-- 1 darron staff 34 Oct 26 17:37 setuptools.pth
-rw-r--r-- 1 darron staff 1224 Oct 26 17:37 sitecustomize.py
-rw-r--r-- 1 darron staff 600 Oct 26 17:37 sitecustomize.pyc
drwxr-xr-x 72 darron staff 2448 Oct 26 17:41 ssh
drwxr-xr-x 8 darron staff 272 Oct 26 17:41 ssh-1.7.14-py2.7.egg-info
My question is how do I get it working? Running fab at the prompt gets me:
-bash: fab: command not found
Note - my paths are set in /etc/paths like so:
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
The link you posted is outdated. fab should be located in the /usr/local/share/python directory -- that's where Homebrew's Python puts scripts from installed modules. Add /usr/local/share/python to your PATH.

Can I remove the "sudo" necessity in a django project on OSX

I am doing a django project with Sublime Text 2 on OSX-Lion. I have installed virtualenv, so my project is in "/Users/myname/Virtualenvs/"
I need to use a 'sudo' for each command (syncdb, runserver), can I change these rules whithout moving my project and is it normal ?
These are parameters after a "sudo python manage.py startproject"
Chmod infos :
drwxr-xr-x 17 root staff 578 10 jul 23:24 Platform
-rw-r--r-- 1 root staff 155648 10 jul 23:24 database.sqlite3
-rw-r--r-- 1 root staff 251 10 jul 23:09 manage.py
and in Platform :
drwxrwxr-x# 9 Nicolas staff 306 10 jul 23:13 Templates
-rw-r--r--# 1 Nicolas staff 0 4 jul 16:53 __init__.py
-rw-r--r--# 1 Nicolas staff 144 4 jul 16:54 __init__.pyc
-rw-rw-r--# 1 Nicolas staff 123 10 jul 23:13 admin.py
-rw-r--r-- 1 root staff 321 10 jul 23:24 admin.pyc
-rw-rw-r--# 1 Nicolas staff 1706 10 jul 23:13 models.py
-rw-r--r-- 1 root staff 2603 10 jul 23:22 models.pyc
-rw-r--r--# 1 Nicolas staff 5309 10 jul 23:06 settings.py
-rw-r--r-- 1 root staff 3058 10 jul 23:22 settings.pyc
-rw-r--r--# 1 Nicolas staff 639 10 jul 23:06 urls.py
-rw-r--r-- 1 root staff 784 10 jul 23:24 urls.pyc
-rw-rw-r--# 1 Nicolas staff 1895 10 jul 23:06 views.py
-rw-r--r-- 1 root staff 2745 10 jul 23:24 views.pyc
-rw-r--r--# 1 Nicolas staff 1138 10 jul 23:05 wsgi.py
-rw-r--r-- 1 root staff 1047 10 jul 23:24 wsgi.pyc
You'll need to change ownership of all the root-owned files to yourself, but otherwise there shouldn't be any need for sudo here.