Tag Archives: Paul Tagliamonte

Paul Tagliamonte: The Deprecation of Google Latitude

I’m a bit disappointed Google is shutting down Google Latitude – I’ve been an avid user of latitude since it came out – I always found it really quite neat.

It was a bit creepy knowing the last few years of my exact location every day were sitting on a Google server, but at the same time, the API let me use this data for all sorts of personal projects. In fact, all my machines use my current latitude data in some form or another.

As a result, I’m looking for a replacement. Anyone know of a good Free Software application I can install on my Android (Nexus 4) phone, and push real-time latitude and longitude data to my server?

Any advice at all would be great.

…read more

Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Recent Hy developments

With some new patches from just oddles of interested hackers, there are some hot new changes, including a major mode for emacs and a hot new bot

I’m currently blocking stuff while I’m in the middle of the compiler, but new feature development will be wide open soon!

Check out Hy, play with the source, install it with pip, and consider doing awesome stuff!

Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Hy’s got a new home (and team!) As some of you interested…

Hy’s got a new home (and team!)

As some of you interested folks know, I’ve been hacking on Hy, and I’m proud to announce it’s new home at hylang.org and future deb repo at gethy.org.

I’ve posted this as an image for one very important reason – Hy is now a full community based project. There’s been in insane reaction to hy, and I’d like to keep it sustainable.

So, come hack with us on #hy on freenode, or just help us come up with more puns.

As always, try hy, and see if you don’t have some feature requests!

From: http://blog.pault.ag/post/47836768777

Stephen Michael Kellat: Changes in Ubuntu Ohio

It appears that as of 7 April 2013 I am the Point of Contact for Ubuntu Ohio and effectively Leader. In an e-mail to the community sent Sunday I wrote:

Good afternoon.

As of today the High Council of Ubuntu Ohio is taking a breather by ceasing to operate for the time being. The e-mail address for the High Council also no longer functions. It is time to give thanks to Cheri Francis, Michael Gilbert, Jon Buckley, Jacob Peddicord, and Paul Tagliamonte for their periods of service on that body over the past three years.

At this time I am the designated Point of Contact for our Local Community Team on Launchpad. The length of term for this is open-ended at this time. Ubuntu Ohio encompasses users of all flavors of the common core whether you favor Unity, KDE, Xfce, GNOME 3, or LXDE. I must reiterate that we have a big tent here and are not solely focused on the desktop environment named Unity but rather the unity that comes from the common core in software we all utilize.

Looking ahead, our near-term goal is to prepare for participation in Ohio Linux Fest 2013. In the long term we are going to need to strengthen the core of our community by mentoring members of our community so as to increase the number of Ubuntu Members that we have located here in the Buckeye State. Slowly but surely we will be looking forward to new horizons that will require new and interesting approaches.

Many adventures lay ahead. Let us move forward boldly as we near the end of the Raring Ringtail cycle and prepare for the Virtual Ubuntu Developer Summit in May.

Stephen Michael Kellat

The podcast known as The Burning Circle continues at this time. I’ve made updates to the relevant Launchpad pages to put the High Council into hibernation as I’m the sole member of it remaining. In due time it will return but we have some work ahead of us in the Buckeye State first.

While Ohio Linux Fest 2013 is five months away, we have some disadvantages. First off is that we do not have as much presence in the state capital as we once did. Our members are widely spread across Ohio and it will take some effort to get people to converge on Columbus. Second, we almost did not have a presence there in 2012. Extra effort will be needed to coordinate to ensure that we might be able to sponsor an UbuCon this year perhaps or at least get some speakers lined up. Third, their website was unreachable this weekend so I will need to invest some time to locate correct contacts. This all results in plenty of action items to cover the next five months.

New adventures await as 2013 continues ever onward…

…read more

Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Debian Stable (Or: When to switch)

I’ve noticed something funky when looking over the Release Critical page on the BTS

Look! There’s a cross-over between the Stable bug count and the Testing bug count around 6/2012. Since then, Stable has actually been more buggy the testing.

What should we (as a project) do? Why is stable so unloved during the freeze? Do we have too long a freeze?

Hilariously, this makes me think I should be suggesting users to switch from stable to testing when the “crossover” happens during the release cycle.

Has there been previous discussion of this?

…read more
Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Debian as part of the GNOME OPW

As some may have seen, zack put out a note about the GNOME OPW.

The GNOME OPW program, as some of you may know, is the GNOME Outreach Program for Women. Debian has been considering participating this year, and I think it’s something we should focus on this year.

So, please, if you have ideas, please feel free to send along ideas on that thread — it’d be amazing to get this going (in conjunction with) GSoC this year.

Also, if you have any GSoC ideas, please do also add those!

GNOME OPW allows for things that are non-technical, so feel free to post non-technical things too (publicity team, www team, I’m looking at you!)

…read more
Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Hy: The joke just got pretty serious

(btw, the source is on github)

During the sprints at PyCon in a spare moment after some awesome OpenGov hacking, I ended up doing the unthinkable:

rpython support in Hy.

Yes. That’s right. Lisp —> Python —> C —> x86 instructions.

The thanks here goes to Romain Guillebert – who is a really funny rpythonista and took the time to sit down and help me with this frankly insane idea.

It works, though. I filed a bug on shipping rpython bits from PyPy’s Debian package (hi, tumbleweed!), which should make building this a skitch easier.

Finally, and unrelatedly, I also just got a .hy —> .pyc compiler working (huzzah!) which means no one will ever know we wrote anything in Lisp, ever.

As always, play with the REPL, star the code or have a laugh with it.

Let me know what you hack up!

I’ll post the lightning talk I gave after it’s posted 🙂

…read more
Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: hilariously debuggable lisp: Hy

If anyone wants to check out some new Hy stuff, check out the REPL 3.0 at hy.pault.ag

Also, check out the GitHub Repo, and star it, or consider contributing to it.

Hang tight, this is technical — Hopefully you’re a rockn’ Pythonista already. If not, hang on!

Right, so, here’s the Hython we’re working with:

;;;; testing.hy
(import-from sunlight openstates)


(defn get-legislators [state]
  "Get some Legislators from a state"
  (kwapply (.legislators openstates) {"state" state}))


(defn print-legislator-count [state]
  "Print the Legislative count for a state"
  (print (len (get-legislators state))))

And a Python script to run it:

#!/usr/bin/env python

import hy
import testing
# import pdb; pdb.set_trace()

testing.print_legislator_count("ma")

Which outputs (correctly): 198.

Now, let’s try and debug this sucker:

I added import pdb; pdb.set_trace() to the top of the Pythonic script (after the imports), to drop into a pdb shell:

> /home/tag/tmp/invoke.py(8)()
-> testing.print_legislator_count("ma")
(Pdb) 

Here’s where we are:

(Pdb) l
  3     import hy
  4     import testing
  5     
  6     import pdb; pdb.set_trace()
  7     
  8  ->  testing.print_legislator_count("ma")
[EOF]

OK. Let’s step into it.

(Pdb) s
--Call--
> /home/tag/tmp/testing.hy(12)print_legislator_count()
-> (defn print-legislator-count [state]

Whoh! Right! We’ve just invoked Lisp. Let’s step through the Lisp code:

> /home/tag/tmp/testing.hy(14)print_legislator_count()
-> (print (len (get-legislators state))))
(Pdb) 
--Call--
> /home/tag/tmp/testing.hy(7)get_legislators()
-> (defn get-legislators [state]
(Pdb) 
> /home/tag/tmp/testing.hy(9)get_legislators()->[ (SNIP) ]
-> (kwapply (.legislators openstates) {"state" state}))
(Pdb) l
  4     (import-from sunlight openstates)
  5     
  6     
  7     (defn get-legislators [state]
  8       "Get some Legislators from a state"
  9  ->    (kwapply (.legislators openstates) {"state" state}))
 10     
 11     
 12     (defn print-legislator-count [state]
 13       "Print the Legislative count for a state"
 14       (print (len (get-legislators state))))
(Pdb) 

Rockn’. This worked hilariously well.

-> (kwapply (.legislators openstates) {"state" state}))
(Pdb) state
'ma'

Whoh, right there. Look at that! Python’s pdb has access to Hy’s bits! Neat 🙂

(Pdb) openstates

(Pdb) s

And. just to prove it’s actually Python 🙂

(Pdb) s
198
--Return--
> /home/tag/tmp/testing.hy(14)print_legislator_count()->None
-> (print (len (get-legislators state))))
(Pdb) s
--Return--
> /home/tag/tmp/invoke.py(8)()->None
-> testing.print_legislator_count("ma")

Whoo! From Python to Lisp and back!

Now, for fun, here’s some pudb action:

And, now, some bpython voodoo:

Hopefully this is the start of something wicked neat! 🙂

…read more
Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Firehose – wanna hack?

As folks know, I’ve been hacking on Firehose. I’ve been debating doing some work to modify / extend / replace DACA, and I could use some help writing new wrappers around static check code, so, who wants to hack?

Any UI folks? I could use a UI to view Firehose data, something spiffy and colorful.

Hackers? Send in some wrappers for your favorite static checking code. Send in pull requests or email me with a pointer to the repo 🙂

Hack on, folks!

…read more
Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Here was a talk I gave at Boston Python a few weeks ago. Check…

Here was a talk I gave at Boston Python a few weeks ago. Check it out, and feel free to follow along with the slides, and take a look at the source.

Sorry about the major futzup at 40 seconds in, and small mistakes throughout — first time giving this talk!

(link to the video for those on the planets)

…read more
Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: GSoC Project Idea: Debian Android app

Hello, World!

There are details coming out soon with regards to GSoC:2013, so all this is without any official hat of any sort on.

However, I had an idea, and I was wondering if there were people interested in mentoring it.

For a long time, I’ve wanted a Debian android application — one that will use API calls to fetch PTS info, BTS info, and intercept bug URLs to display Debian related information on the native interface.

It’d also be neat to set a profile (e.g. my emails) and get notifications when things happen that I care about.

Anyone know how to code for android and interested in GSoC?

…read more
Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Linting with Firehose

Hey y’all,

As some may have seen, I’ve taken a shine to a project called Firehose, and plan on helping this format support Debian. I really enjoy how it’s looking so far, and plan on slowly building out scripts to output this format.

The idea here is I’d use it to help with debuild.me, and eventually support larger archive runs.

More to come.

…read more
Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: Hy: The Next Generation

As many of you know, I’ve been spending some time hacking on a Lisp variant that’s fully hosted in Python. If you want to read more about it, check out the slides I prepared for Boston Python’s meetup — in particular, pay attention to the “magic REPL”.

I’ve been pondering what to do next, and the natural instinct is for me to take a step back, and properly implement a few things I’ve forgotten. Namely: Macros. Yes. Macros. It’s a Lisp without Macros.

I’ve hit a few stumbling blocks in it’s implementation, and it’s been holding me up. I’m mostly concerned with how Hy should treat quoted forms, in particular I’m concerned about loosing the distinction between a vector and a list, since both convert into Python lists.

There is of course the option to encode Lists as:

`(list foo bar baz)

but that seems wrong.

I’ve also got some concerns about “derefing” values in a quoted form — I think this is just going to result in a lot of special casing for Macros.

More to come soon.

Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: adventures in hy, part III

Over the last few days, I’ve made some incremental improvements to Hy, but I’ve been mostly preparing it for a small talk later on this next week.

I am, however, already considering a bit of a rewrite — there is a lot of code sitting in the Hy tree that was intended to use the old “modfaker” method of Python module generation (which sucked)

I’m most interested (I think) in bootstrapping Hy in Hy (no small task) and getting macros in early (really really needed), so, dear lazyweb:

Has anyone split rpython out of PyPy yet? Are there any sort of docs on this?

The idea of rHy is pretty intriguing, I’d like to make it happen.

More to come soon (including the slides!)

Source: FULL ARTICLE at Planet Ubuntu

Paul Tagliamonte: The most horrifying thing i've done — or: hymenoptera

Hang tight folks, this is a trippy one:

As many have noted in my most recent post, I’ve taken a shine to lisps hosted in Python.

While clojure-py is badass, it’s not fit for using from python. I hit some problems in the way it handles atomic variable access (well “atomic”, it’s actually not 😉 ), so I’ve decided to give it a shot myself.

That’s right. I wrote a Lisp.

A very basic, unmacroed lisp, but a lisp.

So, let’s take a look a trivial hy file pair

The first file (really_lisp.hy), is as follows:

; vim: tabstop=2 expandtab shiftwidth=2 softtabstop=2 filetype=lisp
; Copyright (c) Paul Tagliamonte, in sofar as any of this is at all
; copyrightable.

(def hello “World!”)

(def square (fn [arg]
(* arg arg)))

(def factorial (fn [n]
(if (
Source: Planet Ubuntu

Paul Tagliamonte: Scripting Python in Clojure

Yeah, wait, what?

No, really!

I took a look through clojure-py, and found out something pretty rad. In order to get clojurepy scripts to load other clojurepy, it had to shim out and add a new importer for clojure scripts.

What this really means, is that you can import Clojure from Python, which is pretty sweet. I abused the internals here, and added it to dput-ng as a quick hack.

Basically, I just had to import clojure.main, and let the main function set up the sys shim. I would set it up in dput, but I’d have to import that module anyway.

Remember, when doing this, the namespace ((ns …)) needs to match the filename.

So, I present the first Clojure hook for dput-ng:

; Copyright (c) Paul R. Tagliamonte , 2012, under the
; terms of dput-ng itsself.

(ns clojtest
(:require dput.core
dput.exceptions))

(defn log [x] ; for debug output
(.debug dput.core/logger x))

(defn dput-checker [changes profile interface]
(cond (>= (-> changes (.get “maintainer”) (.find “arno@debian.org”)) 0)
(throw (dput.exceptions/HookException. “Maintainer’s Arno. Aborting upload”))
:else
(log “Nah, it’s not arno, we’re good”)))

This, of course, checks if the maintainer is Arno, and throws a fit if it is. Gist is over on gist.github.

After, Algernon added his own checker, which throws a fit if you have a package in the B-Ds that you aught to not use (such as depatch)

; Copyright (c) Gergely Nagy , 2012, under the
; terms of dput-ng itself.

(ns bd-blacklist
(:require dput.core
dput.exceptions
dput.dsc))

(defn prune-build-deps
“Prune a string representation of the build-depends so that only a
list of packages remain.”
[bd-string]

(map #(first (-> % (.strip) (.split ” “))) (.. bd-string (split “,”))))

(defn has-blacklisted?
“Given a dsc file and a blacklist, check if any of the
build-depencencies are in that list. Throws an error if there are
matches.”

[dsc-file blacklist]

(let [dsc (dput.dsc/parse_dsc_file dsc-file)
build-deps (prune-build-deps (.. dsc (get “build-depends”)))]
(if-let [bad-bd (some blacklist build-deps)]
(throw (dput.exceptions/HookException. (str “Blacklisted build-dependency found: ” bad-bd)))
(-> dput.core/logger (.trace “Build-Dependencies do not have anything on the blacklist”)))))

(defn blacklist-checker
“Checks whether the dsc has blacklisted build-dependencies, ignores
the check when no dsc is to be found.”

[changes profile interface]

(if-let [dsc-file (.. changes (get_dsc))]
(has-blacklisted? dsc-file (set (get profile “bd-blacklist”)))
(-> dput.core/logger (.trace “No .dsc found, build-dependencies cannot be checked”))))

You can check that out in the git tree

Hacks welcome!

Source: Planet Ubuntu