« first day (74 days earlier)      last day (3731 days later) » 
03:00 - 21:0021:00 - 00:00

3:22 AM
@Undo Did your bug (not yours and Manish's) get fixed yet?
 
 
2 hours later…
5:10 AM
@hichris123 I don't think I have a bug that Manish doesn't know.
the one that I got a private room with Oded for was one Manish knows.
and if you're talking about how I got into Dev.so, that got fixed long ago.
 
 
2 hours later…
7:02 AM
@Undo there used to be a pii leak on dev. Now there isn't. That's a known bug, reported it a while back
At one point using the originalâ„¢ HTML manip for private betas trick I was able to break into dev and it assigned me a different user somehow (unregistered account). I could see the email address and whatnot. But iirc that got fixed, or at least Shog did something to remove the PII. I told Oded about the possible PII leak of the bug chris just discovered, but I don't think there is a leak there since it didn't get fixed.
There was a time when one could roam around on dev without getting destroyed :p
 
7:17 AM
You guys probably should use your knowledge of breaking the dev tier and apply it to production
There's a lot of stuff that's not validated server side. Not crucial stuff (afaict), but fun stuff
Like the custom helpful thing (which might be intentional)
And the suspension/mod message thing
I think you can use old (retired) close reasons as well
 
@Undo I got an idea for another Charcoal app
Darkness. An app that lets you categorize close reviews with extra kewords. Like "easy", "not sure", "domain knowledge required", etc. Then others can go through them.
The current close process is a bit jerky because the workflow for easy closes and li-shall-have-to-read-through-the-entire-thing closes are different. This might be slowing things down
Basically, something to help expedite the close vote reviews would be nice.
(Darkness because it's dark when you close a room :P)
 
 
4 hours later…
11:44 AM
OK, not that soon
 
 
3 hours later…
3:01 PM
I awake :P
@ManishEarth the close reviews are AJAX'd in, right? So in theory one could get ones hands on those AJAX URLs, and...
reviews some close votes to get the URLs
@ManishEarth I've been trying to post 'sandwiches!' to TL, if that counts :P
 
@Undo Ratelimit iirc
Also, you can't review a post after it has been reviewed
 
@ManishEarth Everything's rate limited :P
test again
 
This used to be possible, because you may have kept the review open for a long time, but not anymore. Now it just fails silently
 
huh
 
@Undo How? Server side validation will be there for that.
@Undo They removed it because of some meta post, forgot where
 
3:06 PM
@ManishEarth I found that out :P
I have to wonder what would happen if I did manage to post something to TL...
 
@Undo sandwiches for everyone. ban for you :p
 
Oh, @ManishEarth, I figured out how to use PhantomJS to track the most recent questions coming in. I'm applying Doorknob's spam-checker to them. Now I just need to figure out how to post them to the Tavern, and I'm done.
 
@Undo btw, swag should be sent out this weekish
@Undo GitHub?
 
yay!
@ManishEarth Yah, somewhere. looks for link
 
Charcoal it if possible
Also, do you speak Python?
 
3:09 PM
@ManishEarth Uhmm... with much help from Google I can :P
 
If you ever do, I'll add you to ChatExchange.
 
^ spam-detector-izer.
I can speak Ruby though! :P
I should probably commit my most recent stuff.
Oh, I have.
@ManishEarth Have any idea how to post to the Tavern in JS?
 
@Undo Use the network monitor in chrome
 
@ManishEarth I know the request and everything. I just need to know how to send a POST request with cookies specified in it, really.
(and how long do cookies last?)
I think I might just do the whole thing in PHP, actually.
(the tavern-posting part)
I'm planning to have these spam posts pushed to my iPhone, too.
 
@Undo Um, that's automatic
From the browser
 
3:20 PM
@ManishEarth Even in Phantom?
 
From python or something; you need to use a library that lets you do that
phantom=server side?
 
yeah. headless JS
 
Depends on phantomjs then
@Undo look like it's automatic for phantom
 
ok
I'll just do it in PHP.
 
I would just do it in python mechanize :p
Easier to daemonize, runs everywhere
 
3:23 PM
But... but... this is almost done! :P
And I can only speak Python on Tuesdays!
 
But .... but .... full python API!
 
hmmm...
Well I want to see it work first. Then maybe :P
 
I'll expedite the API
Though I have like 10 firefox bugs I need to keep an eye on too
/might apply for GSoC under Mozilla this year. Been contributing for a while
 
@ManishEarth Oooooh!
 
Though I do want to get started on a write API windows phone app
 
3:25 PM
hehe
 
So.... dunno what to expedite
 
I'd like to see that.
 
I want the app to come out when the api does :p
 
Meh, whatever you're most excited about :P
@ManishEarth Then you'd better work on it like now.
 
I know
Most probably this weekend
There's a hackathon, not exactly participating, but I can spare-time hack during it
 
3:26 PM
hehe
 
4:07 PM
@Undo my chat script now logs in to SE openid
 
4:30 PM
@ManishEarth Oooooh!
 
5:00 PM
It logs in to stackexchange.com! Much easier than I had expected
 
@ManishEarth Hmmm... so I'll be able to take it and tell it to log in with a certain username and password then enter a room and post something?
 
Now, to caaarefully look at the chat login code :p
 
Me likes.
@ManishEarth Why? What's careful-needing about it?
 
@Undo stackexchange.com, not yet chat.stackexchange.com
@Undo because it may use postMessage() magic
 
@ManishEarth oh. c.se can't be much different, right?
 
5:04 PM
probably not
@Undo I might have a simple wrapper for you to use for posting ready in an hour
 
@ManishEarth wow, thanks!
 
Basically, a login() function and a post()/get() function
 
Ooooh. Shiny.
 
no, basic :p
For now it will only work for chat.SE though, gotta teach it how to log in to chat.mso. May not be as simple :s
 
fine. Ooooh. Basic.
meh, we can set up a special spam-fighting room, open to all.
Yeah, chat.mso uses the shiny new login thingy too ;(
 
5:10 PM
@Undo not that big a deal, really, but I'd have to mess with the URLs and post requests
 
ah
I'm currently looking up how to connect phantom and python :P
I'm thinking something like we run the Phantom code from within Python, and the phantom code prints the site, postid, and title in a predictable form when it finds spam. Then we somehow detect these printings from Python and send them to the spam room.
Would that work?
 
5:29 PM
IT WORKS
 
Yay!
 
@Undo See, I can provide a wrapper that lets you login to and get/post from python
 
@ManishEarth Yay!
 
Why use JS at all? Make the whole thing python!
 
@ManishEarth Can you go to the realtime questions page and have them come in automatically?
Because then yes.
 
5:38 PM
@Undo I think websockets with python is easy
test
anuzza test
This was sent by ChatExchange
YAAAAAAAAAAAY
 
Ooooh!
 
happy dance
Lookit
its so pretty
 
I see!
Yay!!!
Watch, they're going to announce an official chat API in like a week :P
 
hah
 
It worksgit add *pygit add *py
^ Intentional? :P
 
5:48 PM
@Undo check out test.py, it uses the ChatBrowser object
 
ok
I'm gonna clone it down.
 
why clone?
 
so that I can play with it :P
 
ah. It's going to be rather volatile right now though
 
r@server1:~/ChatExchange$ python test.py
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from ChatBrowser import *
  File "/home/parker/ChatExchange/ChatBrowser.py", line 3, in <module>
    from BeautifulSoup import *
ImportError: No module named BeautifulSoup
 
5:52 PM
@Undo btw, all that os.environ crap in test.py is so that the script can remember passwords for me. Just for testing, all it does is take the stuff from environment variables and use it instead of prompting
 
@ManishEarth ah, ok
 
@Undo you need to apt-get install python-beautifulsoup
 
ok
@Manish So username is my SE login email, right?
 
Currently, the sendMessage() and postSomething()/getSomething() (sends a GET/POST request with in-built fkey management) are the three methods that you need. If you're going to run it for a long time, run updateFkey() every now and then
@Undo yeah, it only does SE openid for now
 
tries to remember SE login details
 
5:55 PM
.
.....
@Undo say something
 
I'm trying to.
oh
hiya!
me@server1:~/ChatExchange$ python test.py
Username:
e*******k@me.com
Username:
Password:
Traceback (most recent call last):
  File "test.py", line 19, in <module>
    a.loginChat()
  File "/home/parker/ChatExchange/ChatBrowser.py", line 31, in loginChat
    authToken=chatlogin.find('input',{"name":"authToken"})['value']
TypeError: 'NoneType' object has no attribute '__getitem__'
me@server1:~/ChatExchange$
^ Bad?
 
um, that means that it couldn't find the page
 
uh oh
meaning....?
 
works for me. Hmm
 
r@server1:~/ChatExchange$ python --version
Python 2.7.3
 
5:59 PM
try this:
wait no
hmm
 
lemme make sure my passwords and stuff are right.
Oh @ManishEarth, I'm running this on a not-ever-logged-in machine. Make a difference?
 
didn't think so
 
@Undo in ChatBrowser.py, right before that line, put print chatlogin.prettify()
 
ok
 
6:01 PM
then try
 
@ManishEarth wait, which line?
 
chatlogin=self.getSoup("http://stackexchange.com/users/chat-login")
authToken=chatlogin.find('input',{"name":"authToken"})['value']
 
oh
 
between those two
For ease of use, you can set the ChatExchangeU and ChatExchangeP environment variables to your credentials so that you don't have to enter them every time
 
oooh
 
6:03 PM
Oh, and, log the output
What's the html say?
 
It contains this:
</footer>
  <noscript>
   <div id="noscript-warning">
    Stack Exchange works best with JavaScript enabled
   </div>
  </noscript>
  <script type="text/javascript">
:P
 
That's the footer
that's okay
 
oh
 
I don't use javascript
What does the rest of the html say?
 
lemme put it in a pasty thing
 
6:05 PM
Ah, somehow the SE didn't log in
@Undo correct credentials?
 
@ManishEarth I'm sure.
 
openid.se.com
 
Just a minute, I've got to go.
give me 20 minutes.
 
omg
logging into chat.SO and chat.MSO is super easy
no intermediate chat-login
:D:D:D
@Undo basically, I've not added any error handling yet, if it fails it will fail silently :p
@Undo alright, getting the same error on my server. Hmm
 
6:20 PM
@ManishEarth whoa. :D
@ManishEarth FWIW, I'm on 32-bit Ubuntu Server 12.04.
 
@Undo not yet implemented, though, lemme first fix the bug
Think I know the issue
 
@ManishEarth yay for bug-squashin'!
 
hmm, taking too long
 
;(
Too long is not short enough.
 
No, the request is taking too long
 
6:23 PM
And Python is timing out?
 
oh, I hadn't set the env properly
AH
somehow the thing on my local machine takes redirects, but the server one doesn't
 
ah?
huh wha?
 
well, that wasn't it
 
huh
 
Some issue with content length
 
6:38 PM
Eh?
Odddddd....
@ManishEarth Oooh GitHub bounty program! bounty.github.com
 
6:54 PM
This was sent by ChatExchange
 
oooh
Looky!
 
@Undo your python-requests is old. Run pip install requests --upgrade
All this for a !@# version mismatch
 
ok
hehe
@ManishEarth Can you give Odnu write access?
 
I'm just trying it with my main :p
 
test
oh, hmm
 
6:59 PM
@Undo hello!
is that via the API?
 
@ManishEarth No. Via Incognito :P
I'm trying to find some credentials that work :P
 
ah. use the api!
 
This was sent by ChatExchange
 
Haha!
Yay!
happy dance
 
yay
 
7:02 PM
This was sent by ChatExchange
 
That doesn't get old :P
The room does not exist, or you do not have permission
 
@Undo I plan to write a ChatWrapper.py that uses ChatBrowser and has a million methods for doing all kinds of magic
Trying TL?
 
Drat. It still won't let me post to TL ;(
 
hahaha
Undo gets access to an API, first thing he does is try to post to TL
3
 
@ManishEarth So does the get thing work?
@ManishEarth Of course.
 
7:04 PM
which?
getSomething()? Yes.
 
yay
 
You could implement your own wrapper with that, really
 
I'm going to.
 
Chat wrapper. For other get requests you don't really need all that
@Undo For now, I suggest you convert the spam detector to python. Use the normal urllib or whatever methods to get request
In the meantime I'll have a more stable API ready
 
@ManishEarth How does the getSomething() method work?
I wanna see if I can fetch from TL
 
7:07 PM
@Undo give it a relative URL, it will return the HTML
 
@ManishEarth So I need to know the URL of a chat message?
 
yeah
 
ah, ok
So, now I must figure out how to translate this :P
 
I don't think I'm good enough in Python to do that :P
 
Alright, I'll do it later
 
 
1 hour later…
8:31 PM
@Undo If you have time, try to create a python function that takes in question text and spits out spamminess
 
@ManishEarth Huh? Why?
 
As in spits out gibberish, or spits out the likelyhood of it being spam?
 
The latter
Could just be true/false
 
@ManishEarth Hah, awesome name!
 
8:32 PM
Whatever you want. I'll work on the websockets thing later
 
ok, I will once I find the time. Currently have paying consulting project :D
 
grumbles about my inability to make a simple checkbox become disabled in Rails
 
wow.
Hiya @hichris123
 
8:34 PM
@hichris123 a lot has happened!
 
Stuff has happened apparently.
 
Yeah
 
reads transcript
 
Good idea
 
So many messages. :(
 
8:35 PM
@hichris Python says hello!
 
:P
Manish is forcing Python upon us :P
 
@ManishEarth Your chat bot?
 
Yep
@Undo phantomjs is heavy and cumbersome
 
@ManishEarth But it worky!
 
Python -- pretty easy to run headless, anywhere
@hichris123 know any python?
 
8:36 PM
I can't get over how awesome that name is
 
@ManishEarth A bit, I did build that script thingy in Python. :P
@Undo Reminds me of Nest. :P
 
hehe
 
@hichris123 See if you can convert the spam-detecting magic in Undo's spam detector to python
 
Okay, I'll try.
 
It's just RegEx, actually.
 
8:37 PM
@Undo You didn't have Beautiful Soup installed? :D
 
@hichris123 Nope :P
 
Yeah, with beautiful soup the regex is wished away
 
@Undo READ THE ERROR! :P
 
@hichris123 I did, but I didn't know how to install it ;(
 
Another easy way is just to download the package and run python install setup.py or whatever.
@ManishEarth Is this it: github.com/Undo1/SE-spam-detectorizer?
 
8:39 PM
yeah
Undo probably knows where it is
 
@hichris123 yeah
Doorknob made it
 
So what am I converting? The phantomscript.js part? @Manish
 
I think so. Ask manish :P
@ManishEarth @hichris123 know any Ruby/Rails?
 
Easier to edit than repost. :P
 
@hichris123 just the function that takes in text and spits out if it is spam
 
8:42 PM
@Undo Nope.
 
;(
 
@Undo just a note, adding a deploy key to SmokeDetector
 
@Undo I don't see where the part comes in with detecting bad kewords... I just see 'JAVA - Bad keyword': function(el, qTitle) { return /\d{10}|jquery|java/i.test(qTitle) },. Is it different from Doorknob's?
167
Arduino

Proposed Q&A site for developers of open-source hardware and software that is compatible with Arduino

Currently in commitment.

^ 167 committers!
 
@hichris123 Heh, yeah, that was for testing. Posts with java in the title are somewhat more common than real spam.
The sites hiccuped there for a minute
 
8:50 PM
@Undo You mean the servers? I got that too...
 
yeah
 
@Manish Is this getting added to Smoke Detector, the regex part?
 
@ManishEarth Whazzat for?
 
@Undo So basically you're just doing a regex to detect certain phrases/words? Hmm...
 
@hichris123 Yeah. See Doorknob's for the current ones.
 
8:52 PM
28
A: Python - Check If Word Is In A String

Hugh Bothwellif 'seek' in 'those who seek shall find': print('Success!') but keep in mind that this matches a sequence of characters, not necessarily a whole word - for example, 'word' in 'swordsmith' is True. If you only want to match whole words, you ought to use regular expressions: import re def f...

@Undo Will that work ^? It seems like it just needs to be phrases, and not whole words, so that should work...
 
@hichris123 Yup, should work.
 
@Undo One more question, what is the /\d{10} in /\d{10}|vashikaran|baba/i.test(qTitle)?
 
uhmmm...
 
@Undo lets me commit from a server without needing to put my privkey on it
Basically, a key attached to a single repo
@hichris123 good at threading in python?
 
@ManishEarth Ahhh
 
8:56 PM
@hichris123 annoying spammer
 
@ManishEarth Multi-threading? No.
 
bleh
@hichris123 Yes. Please add it in some form, preferable as a class with a static method so that I can import it
 
The main thing I multithread with is AsyncTask. :P
 
doesn't know what AsyncTask is, much less why it's bad
 
@ManishEarth In the title?
@Undo It's good. It makes long tasks not go on the UI thread in Android.
 
Oh. On iOS we have GCD.
 
didn't configure the settings properly, committed as a nonexistant user :p
 
@ManishEarth ooooooohhh
I did it wrong once and it showed up as root as the committer :P
 
hah
 
03:00 - 21:0021:00 - 00:00

« first day (74 days earlier)      last day (3731 days later) »