1. baiovevo:


    (via edwardspoonhands)


  2. izs:

    Copyright (c) __AUTHOR_NAME__ (“Author”) and Contributors

    All rights reserved.

    The “Free as in Hugs” License

    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    1. Redistributions of source code must…


  3. edwardspoonhands:




    "We live in a world where losing your phone is more dramatic than losing your virginity"

    Um ok but I don’t recall my virginity having 16 GB of memory with all my contacts, music, photos, calendars, and apps or costing over $200.

    my phone is an expensive and important material object and not a useless social construct put in place to shame and commodify women

    Plus I remember where I lost my virginity.

    …joke about getting your phone wet goes here…

    backup your phones, sync your calendars, enable camera upload and for the love of god, enable remote-wipe, people!

    (Source: hiphopfightsplaque)



  5. nomoocows:

    "Sorry, your password has been in use for 30 days and has expired - you must register a new one."


    "Sorry, too few characters."

    pretty roses

    "Sorry, you must use at least one numerical character."

    1 pretty rose

    "Sorry, you cannot use blank spaces."


    "Sorry, you must…


  6. Did some giffing. #cuda works wonderfully on #linux


  7. How to build the best Coffee Table ever for 6.50€

    You’re gonna need:

    • IKEA Lack Table - 5.00€ (Link to IKEA Germany)
      IKEA Lack Picture
    • Your favourite beer case - about 1.50€
      Beer case Picture
    • an electric drill
    • a handsaw

    Step 1:

    Unpack your IKEA Lack table. We’re gonna drill some new holes on the underside of it.

    Mark for drilling holes on table underside:

    marking the drill holes

    marking the drill holes

    Step 2:

    Now, drill the holes. Use a 5mm drill.


    Take care not to drill all the way through, just pierce the bottom layer (the table is hollow inside).



    Step 3:

    Saw off the legs, about halfway. We will screw the side with a hole in it to the table later. Make sure that part is not longer than your beer case is high.



    Step 4:

    Put the screws for the legs into the leg stumps. Don’t just screw them in like the IKEA manual says – the table isn’t solid in the middle and the screws won’t hold. I used the drill for that, too, it is simply easier.



    Step 5:

    Put the beer case on the table and screw in the legs. I recommend screwing all of them on loosely first and then tightening them, so the case doesn’t move while tightening one of them.
    Remember: The beer case is not yours. It belongs to the brewery, so don’t modify or destroy it.





  8. Summer Field

    So I whipped out my phone and did a panorama.

    Ready-cut for your wallpaper needs:


  9. Madness

    I run a small private forum, which was (until now) running on phpBB, one of the most used software for forums.
    There were some problems with that.

    Let’s begin with the plugin system.
    What they call plugins is basically just a glorified search-and-replace mechanism which instantly fails if two plugins try to edit the same file. For me, this resulted in loud howls and some downtime as I tried to install a Thanks Mod.
    Another fun thing is the UI in general. Once you have found your favourite thread to read (you had to click through about 4 buttons just to get logged in, then tried to use the search, which unfortunately doesn’t search post titles or usernames) and now want to read the next page, you spend about 20 seconds just finding the next page option and then some more time clicking on this 4-pixel button, you tell yourself why pages? weren’t computers invented so I don’t have to turn pages anymore?. You gloss over that and want to insert your thoughts into the discussion. Pressing reply loads a new page with a very small input box, which cannot be extended in size. Why is it on another page if it’s that small? Why does it reload the page when I request a preview? Why do I have to click on next after publishing my post?

    All in all, phpBB just doesn’t feel like the twenty-first century. It more or less feels like a military submarine built for the World War I, but with a fresh layer of paint from 1950.


    After I have put about a trillion hours into trying to deal with stuff like likes, youtube/soundcloud embeds and other such trickery, I finally gave up.
    No! I found new hope! Discourse is the thing I have been looking for. It’s clean, it’s actively developed, it can moderate itself, it has notifications, it automatically converts any link you post into some useful representation of that link, and for the love of god, it is not built on a language that behaves like thinking putty (php is soft and easy to shape, but once you let it sit for a few minutes it flows back into a pile of mush; also, it falls apart when you try to make large structures).

    To read more on the philosophy of Discourse, here is a blog post from the founder, Jeff Atwood.


  10. …Yuup.


  11. some gifs.


  12. While signing up for some free education (it’s a bavarian thing), i took some pictures of my hood.
    It turned out pretty good, considering the sensor on the galaxy s3 is like half a centimeter big.

    wallpapers: 3840x1080 (2x16:9), 3840x1200 (2x16:10), 3200x1200(2x4:3)
    full-size: full-size 1:3.511 (10435x2972) 1:3.55 (2x16:9), 1:3.22 (2x16:10), 1:2,667 (2x4:3)


  13. first iteration
    second iteration
    wee hee

    everyday im blenderin’


  14. Java 7 and Files

    I was happy about the fact that Oracle decided to reiterate their grasp on handling Files in Java 7.

    So, there are mainly the new classes java.nio.file.Files and java.nio.file.PathFiles provides methods like isDirectory, exists, isReadable or copy. While the first of them are familiar from java.io.File, copy is new and allows for native-like performance when copying data. I haven’t performed any specific Benchmarks, but research suggests they are more lightweight when used heavily and use the native OS functions for copying stuff. Also, handling symlinks seems to be prettier now.

    Getting to the point: Beware of java.nio.file.Files.isReadable()! When converting tuSync to this new API, I noticed my code for checking my filebase had gotten really slow. Some profiling later, I found the culprit.
    When checking about 10,000 files for read access, my profiler showed me this:

    Method           —            Avg. time (ms)
    — 0.0333
    java.nio.Files.isReadable()    2.5679

    Which means it takes about 80 times longer for Files.isReadable() to return.

    According to this, which is my current system (Win7 x64), I am encountering a bug, which is already fixed. So if you run into this problem, either use the workaround path.getFileSystem().provider().checkAccess(path) or the old method, because it does exactly the same.

    If you are in the future and Java 8 is out, you can happily update your JDK and move along to, like, attending to serious problems.


  15. Music organizing philosophy, part 1

    Some general thoughts about how to store my music metadata.  

    Warning: rather long read. If you are into music and are interested in a real-life example of linear algebra, read along.

    Music is most fun when it’s surprising, but meets your taste. Music listening (marketing) systems like Last.fm are based on that principle. Underlying suitable algorithms thus need a formalization of aesthetical similarity and a concept of what kind of music it is.

    Music in a database should therefore, additionally to being ordered in Artist/Album/Genre, have attributes like mood, tempo, syntheticness or aggressivenessThe concept of tags, which I quite like, is an approach to this. Tags are boolean only, so they can’t always be precise. A song can have a tag or  well,  not have a tag. By having a ginormous amount of sub-genres, sub-sub-genres and sub³genres, you can still add some granularity, however giving a song such tags can be time-consuming and mostly inaccurate.

    Last.fm solved this by having each user tag his/her songs and display the most-used tags on a song first. For this to work, the song has to be listened to by many users. For less well-known music, there is never enough tag data for a song.

    How to solve this?

    With Math

    Woo, math. You could describe a song with a set of properties (see above) each having a value specifying to what extent that property applies. Assigning these values (for me) often requires more thinking time than just assigning genres (or subgenres). Genres are basically predefined sets of values for the abovementioned properties, and because they are easier to deal with (in your brain), let’s use a set of genres and a value for how much this song represents a genre.

    Mathematically, a song is just a point in the n-dimensional space of properties. Viewing it as a space where the genres are the dimensions (so just a different basis, linear algebra whee), we can assign it coordinates in that space. If we have the mappings from our genres to their properties, using a little geometry, we can derive properties from a song by transforming the (genre,value) tuples to the (property,value) basis. This basis change happens through a transformation matrix, let’s call it Mg→p.

    The number of dimensions is rather infinite, let’s limit it to the number of genres a user listens to.

    What now?

    So now that we have every song assigned a vector in our genre-basis, we can calculate the songs properties and also know, which tags (= genres) other users would assign to such a song.

    Using the data we gain about the song from the user, we can construct and correct the genres position in the property-room, assigning each genre a vector of properties. From that, we can also construct Mg→p.

    Going even further, since genres are often broad definitions, we can instead assign to a genre for each property a mean value and a standard derivation, which, when combined, gives us a definition of the variations (and fixed properties) of a genre.

    We need to go deeper

    Additionally, a user might react differently to a given song based on his current mood, situation or the time, giving it different ratings. So, when assigning values to a song, we need to compensate for how the user rated the other songs he listened to in the last few hours, comparing offsets and trends in specific properties.

    If we ask the user about his mood, we can even build a profile and, when there is enough data, tell him what genres he might like in his current mood.

    Conclusion: iTunes just isn’t good enough.

    Next time: How do we capture all that data and use it to play the user music to his liking?

    If you’re wondering: this post is a part of my attempt to design (and make) the best media-manager i could imaging. For updates on it, just follow https://github.com/cfstras/cfmedias