Thursday, April 30, 2015

At about 30 minutes in, she starts hitting exactly the use case I'd want to start into graph databases...

At about 30 minutes in, she starts hitting exactly the use case I'd want to start into graph databases for.

Another important advance enabled by convolutional neural networks...

Another important advance enabled by convolutional neural networks...

Last fall, we made certain changes, most notably a move from starting Lafayettech Labs from 7pm to 6pm...

Last fall, we made certain changes, most notably a move from starting Lafayettech Labs from 7pm to 6pm. The argument was that this would align with Coffee and Code Jam, allowing people to more easily move between both parts. People aren't moving between both parts, LTL members generally showing up until around 7, so I'm thinking about moving the starting time back.

Is there interest in changing? Arguments for staying the same?

Another change was that we went from every other week to LTL on first and third Mondays, C&CJ on second and fourth, and ... something else, something social, for the fifth. That hasn't been a thing. I can blame the calendar, I can blame focus, but rather than blame, I'll ask what we should do with that Monday. Movie Night? Fight Club?

(Also sent to the Meetup mailing list)

Wednesday, April 29, 2015

There's data that we currently store in a flat-file database, which gets parsed and exported as a hash...

There's data that we currently store in a flat-file database, which gets parsed and exported as a hash. This is okay, but we've decided it'd be better as a database. 

Problem is, the original hash is not flat, it contains a sub-hash for services last used. So, there's SELECT * FROM TABLE1, which is fast, and SELECT * FROM TABLE2 WHERE user = user_from_table1, which is repeated 1000 times, and is slow, making a drop-in replacement unusable.

I have a functioning MongoDB database, and I'm thinking that slowly pushing the data structure into Mongo every once and a while and using that instead is possibly my solution. Will have to play with that.

Monday, April 27, 2015

I was 16 or 17 when I first heard this, which is exactly the sweet spot in the maturity/immaturity matrix...

I was 16 or 17 when I first heard this, which is exactly the sweet spot in the maturity/immaturity matrix to appreciate this.

HKN and the IEEE Computer Society will be hosting a workshop at 7pm April 28 in the EE building on the...

HKN and the IEEE Computer Society will be hosting a workshop at 7pm April 28 in the EE building on the Purdue Campus. This will focus on surface-mount soldering, but there will show thru-hole soldering to those new to the skill.

This is not an LTL-event, so RSVP through them. http://ift.tt/1Owae71

He started off making an AVR synthesized guitar, but [Erix] ended up with much more: a complete six-...

He started off making an AVR synthesized guitar, but [Erix] ended up with much more: a complete six-voice AVR wavetable synthesis song machine that’ll run on an ATMega328 — for instance, on an Arduino Uno. If you’re an AVR coder, or interested in…

Saturday, April 25, 2015

Trust me, you can't "handle" this bike. (grin)

Trust me, you can't "handle" this bike. (grin)

NEW PRODUCT - Adafruit HUZZAH ESP8266 Breakout http://ift.tt/1zWeS24 Add Internet ...

NEW PRODUCT - Adafruit HUZZAH ESP8266 Breakout
http://ift.tt/1zWeS24

Add Internet to your next project with an adorable, bite-sized WiFi microcontroller, at a price you like! The ESP8266 processor from Espressif is an 80 MHz microcontroller with a full WiFi front-end (both as client and access point) and TCP/IP stack with DNS support as well. While this chip has been very popular, its also been very difficult to use. Most of the low cost modules are not breadboard friendly, don't have an onboard 250mA 3.3V regulator or level shifting, and aren't CE or FCC emitter certified....UNTIL NOW!

The Adafruit HUZZAH ESP8266 breakout is what we designed to make working with this chip super easy and a lot of fun. We took a certified module with an onboard antenna, and plenty of pins, and soldered it onto our designed breakout PCBs. We added in:

 - Reset button,
 - User button that can also put the chip into bootloading mode,
 - Red LED you can blink,
 - Level shifting on the UART and reset pin,
 - 3.3V out, 250mA regulator,
 - Two diode-protected power inputs (one for a USB cable, another for a battery)

Two parallel, breadboard-friendly breakouts on either side give you access to:

 - 1 x Analog input (1.8V max)
 - 9 x GPIO (3.3V logic), which can also be used for I2C or SPI
 - 2 x UART pins
 - 2 x 3-12V power inputs, reset, enable, LDO-disable, 3.3V output

More information on the product page!

http://ift.tt/1zWeS24
In stock and shipping now!
#newproducts   #huzzah   #boards   #breakoutboards   #iot   #internetofthings  

Thursday, April 23, 2015

Wednesday, April 22, 2015

tldr: Bug in #MySQL or my query, but I can't tell which The TEDxIU Twitter user tweeted only once on...

tldr: Bug in #MySQL or my query, but I can't tell which

The TEDxIU Twitter user tweeted only once on a Sunday in the last year.

I know this because I wrote a program to put all their tweets into a database. And all the tweets from TEDxEast, TEDxPurdueU, and a bunch of others. It's still running, but I want to start getting the analysis going.

Here's a query:

    SELECT  '' 
    ,   DAYOFWEEK(b.datestamp) dw 
    ,   HOUR(b.datestamp) h
    -- ,       count(master.id) 'master'
    ,       count(tedxiu.text) 'tedxiu'

    FROM base_week b

    LEFT OUTER JOIN tedx_master tedxiu
        ON ( tedxiu.screen_name = 'tedxiu' 
        AND DAYOFWEEK(tedxiu.created) = DAYOFWEEK(b.datestamp)
        AND      HOUR(tedxiu.created) = HOUR(b.datestamp) )

    -- LEFT OUTER JOIN tedx_master master 
    --     ON ( DAYOFWEEK(master.created) = DAYOFWEEK(b.datestamp)
    --     AND      HOUR(master.created) = HOUR(b.datestamp) )
    WHERE DAYOFWEEK( b.datestamp ) = 7
    GROUP BY dw , h 
    ORDER BY dw , h
    ;

And when I run it, it tells me they tweeted once at 7pm.

dw h tedxiu
7 0 0
7 1 0
7 2 0
7 3 0
7 4 0
7 5 0
7 6 0
7 7 0
7 8 0
7 9 0
7 10 0
7 11 0
7 12 1
7 13 0
7 14 0
7 15 0
7 16 0
7 17 0
7 18 0
7 19 0
7 20 0
7 21 0
7 22 0
7 23 0

When I un-comment the "master" join, I get this output.

dw h tedxiu
7 0 0
7 1 0
7 2 0
7 3 0
7 4 0
7 5 0
7 6 0
7 7 0
7 8 0
7 9 0
7 10 0
7 11 0
7 12 18
7 13 0
7 14 0
7 15 0
7 16 0
7 17 0
7 18 0
7 19 0
7 20 0
7 21 0
7 22 0
7 23 0

The results from "master" are bleeding out into "tedxiu". Which is stupid. 

YES! http://ift.tt/1bgMNfX

YES!
http://ift.tt/1bgMNfX

Tuesday, April 21, 2015

If logos were designed by doctors.

If logos were designed by doctors. 

I have "Hello World" working on my +Adafruit Industries Trinket, aka blink. Things load weird -- you...


I have "Hello World" working on my +Adafruit Industries Trinket, aka blink.

Things load weird -- you need to press a button on it to tell it to listen to the installer. If I was teaching new users, I'd definitely go with the Arduino Uno, because that's about as plug-and-play as these things get.

It does Arduino "Hello World", blinking when having power, but it doesn't have my "Hello World", typing "HelloWorld" as a HID when plugged in. We'll work on that.

I have a working theory that Perl developers are always working, and when they stop, the become !Perl...

I have a working theory that Perl developers are always working, and when they stop, the become !Perl devs to find the next job.

I learn a thing and I don't trust my feelings about it. The shock of the new can work both ways: both...

I learn a thing and I don't trust my feelings about it. The shock of the new can work both ways: both attracting and repelling. There's a ton of great ideas that people didn't connect to for stupid reasons, and there's another ton of stupid ideas we've bought into because they're new and modern.

I write Perl modules for work, and I use Exporter. Our @EXPORT= qw{ names of functions } is my tendency. I like it because it's very clear what I'm exporting.

A coworker has started using 

_my $functs_pod =<<'=cut';
=item B<names>   - description

=item B<of>   - description

=item B<functions>   - description

=cut

our @EXPORT= $functs_pod =~ m/item\s+.\<(.*?)>/g;_

The benefit is that it nearly forces you to write POD to make it work, but it makes the vgrep to find the module names a more difficult thing. I don't like it. I don't like it at all. I like it more than EMACS, but less than Python, to put it in my discomfort scale. But, as I said above, I don't trust that feeling.

So, I went to my perlbrew lib directory and ran grep -sh  '@EXPORT' `find . | grep \.pm` | sort | uniq | less. Nobody else is using that style either. 

So, what do other #Perl  mongers think? Is it a valid and neat thing we should start using, and I should just get over myself? Is it more a problem than it's worth? Are others hitting that point of being unsure, too?

Monday, April 20, 2015

Been wanting to make a graph of all all the people I follow on Twitter (a far better indicator of quality...

Been wanting to make a graph of all all the people I follow on Twitter (a far better indicator of quality than "people" who follow me), and use that to determine grouping (these are my Perl friends, these are my Music friends, these are my Lafayette friends, etc) and discern who I'm not following in certain social circles.

I can fairly easily, for each user, get a list of everyone they follow and everyone who follows them. I can also go by last-status-update and cut out anyone who hasn't tweeted in a month -- really, if they aren't active on Twitter, why follow them? -- but there's a raft of graph-related problems I don't begin to understand that are sure to come up.

Anyone have pointers to good sources on groking graphs?

Table contains user_id, process_id, and datestamp of when user last used process. I want to back-fill...

Table contains user_id, process_id, and datestamp of when user last used process.

I want to back-fill lots of old dates, but I think the function I write should just have user_id and process_id, using SQL to set on update.

Lists in Net::Twitter confuse me: my $list_feed = $twit->get_list() ; You must specify either a list...

Lists in Net::Twitter confuse me:

my $list_feed = $twit->get_list() ;

You must specify either a list ID or a slug and owner. at twitter_full.pl line 96

my $list_feed = $twit->get_list( $l->{ id } ) ;

Net::Twitter::Role::API::RESTv1_1::get_list(): get_list expected 0 args at ./twitter_full.pl line 96

List ID is an arg, I think...

So cool. Wonder why there is an arrow on the top.

So cool. Wonder why there is an arrow on the top. 

This is more and more something we need to do

This is more and more something we need to do

I know I can write these waves with Perl and SVG (or JavaScript and Canvas) but now I want to build ...

I know I can write these waves with Perl and SVG (or JavaScript and Canvas) but now I want to build this one. 

Thursday, April 16, 2015

Template vs Text::Handlebars A previous attempt at supporting Handlebars In the comments of Where To...

Template vs Text::Handlebars

A previous attempt at supporting Handlebars In the comments of Where To Generate the HTML? , Tom Molesworth points out that, if you're going to be having a template that generates both on the client and server side, having two templates instead of one leads...




Wednesday, April 15, 2015

We Have The Facts And We're Voting Arduino.cc You've seen my posts on Arduino before. It's a microcontroller...

We Have The Facts And We're Voting Arduino.cc

You've seen my posts on Arduino before. It's a microcontroller, released with an Open Source license, that finally allowed me to transition from programming bits to programming atoms. OK, I need to gear up and get a servomotor or something, but the point re...




Subroutine Signatures and Multimethods in Perl, Oh My! This is a question I asked about on Google+ a...

Subroutine Signatures and Multimethods in Perl, Oh My!

This is a question I asked about on Google+ a while ago : How do you have multiple subroutines responding to the same name, distinguished only by the subroutine signature? It isn't yet a part of the experimental "signatures" feature that came in for 5.20 (t...




The new episode leaked the lunch lady's emails. So we made 5 cocktails based on the lunch lady's emails...

The new episode leaked the lunch lady's emails.



So we made 5 cocktails based on the lunch lady's emails.




I'm finding more and more things I'm interested in doing which require or enable other users, which ...

I'm finding more and more things I'm interested in doing which require or enable other users, which means I need to use third-party authentication. I do NOT want to handle my own passwords for these uses.



I want to be able to authenticate against Google, Twitter, etc. Maybe even Facebook, but not my preference. I'd like to use this with standalone CGI-style web tools, and my preference is Perl, but that's my least significant priority.



Pointers to where I can learn this?




Tuesday, April 14, 2015

Where to generate the HTML? A Test. I was in a conversation during a developers event yesterday, and...

Where to generate the HTML? A Test.

I was in a conversation during a developers event yesterday, and the other guy said something that surprised me. Sometimes, he said, he generates HTML on the server side, sends it to the client via AJAX (or XMLHttpRequest, or XHR, or however you refer to it...




Usually, when writing richer web applications, I generate the base thing on the server, bring in Javascript...

Usually, when writing richer web applications, I generate the base thing on the server, bring in Javascript, have it pull in whatever data in JSON over AJAX/XHR (whatever term you use), and use either jQuery or Mustache to generate new HTML as needed.



I talked with another developer yesterday, and he said he sometimes generates new HTML on the server side and imports it with AJAX. My thought was that increasing the size of the thing being moved over the wire was a greater speed killer than generating the HTML on the client side, while he asserted the opposite.



(Honestly, I feel he reacted like I was attacking him and his methodology, while I was just curious about a way of doing things I didn't really understand, so it wasn't as productive a conversation as I would've hoped.)



Seems worth a few tests, but such tests would have to be fairly macro scale. If the size of the rendered content is akin to <div>adding something small like this</div>, it just wouldn't matter.



Any thoughts? #webdev




Friday, April 10, 2015

Chrome Extensions/Apps using the File System Provider¹ API can now be easily installed thanks to a brand...

Chrome Extensions/Apps using the File System Provider¹ API can now be easily installed thanks to a brand new "Add new services" button in the Files App in Chrome OS Dev Channel.



Once you click on it, you'll be presented available services directly from the Chrome Web Store you can install in a matter of seconds. Since this API is relatively new, I'm sure you know some² of³ them for now. Expect more in the future!



¹ http://ift.tt/1qJ7mHF

² http://ift.tt/1AGcKuE

³ http://ift.tt/1DLraeM



Source: http://ift.tt/1z19M47




Thursday, April 9, 2015

Great timing, releasing this so close to Table Top Day.

Great timing, releasing this so close to Table Top Day.




Cindy Lee Berryhill came out of the Anti-Folk movement. Imagine expecting Freewheeling Bob Dylan and...

Cindy Lee Berryhill came out of the Anti-Folk movement. Imagine expecting Freewheeling Bob Dylan and finding Blood on the Tracks. That's what I felt hearing this song, and I still love it.




Thursday, April 2, 2015

Wednesday, April 1, 2015