Programming

Discussion in 'General Chatter' started by Morven, Feb 26, 2015.

  1. ADigitalMagician

    ADigitalMagician The Ranty Tranny

    Before my time, but I'm going to more or less guarantee that it is being viewed through rose tinted glasses.
     
  2. Morven

    Morven In darkness be the sound and light

    It was a more homogeneous and less anonymous culture, and more likely to share common values, which meant for less strife in general and greater understanding, though that of course was far from complete. It's worth remembering that, before cheap dialup ISPs, your Net access was costing someone serious money -- either you or your employer or your school -- and it was much more easy to track down who someone was even if they were trying to hide, which most people didn't. The world was just so much smaller.

    That part started to fall apart from about 1993 as more people came online and anonymizing services became available.

    It's worth noting, though, that "fedora crowd" attitudes were always somewhat fringe. The Net's founding culture was more mainstream left-liberal-open, in general.
     
  3. albedo

    albedo metasperg

    Huh. Interesting. That totally makes sense; thank you!
     
  4. Fish butt

    Fish butt Everything is coming together, slowly but surely.

    So I'm not a programmer, I'm terrible at it actually, but I have a slightly programme related question. The thing is that I need to have someone help me design a website, but I have very little clue where to look for. A lot of companies have beautifully designed and slick websites, but they make me very anxious approaching them as I'm just an individual and something tells me they only accept commissions from Actual Companies (their portfolios never feature individual commissions). I really need advice, and none of my own contacts can really help me with that, or refer me to someone who can. I'm not asking to hire someone here, more like advice on who to approach, and what I should look out for, and hell, even what prices I can expect.

    The project/site itself is basically a kind of 'choose your own adventure' but about fracking. It's a huge map you can navigate through and each screen has an interactive element in it, that when clicked on triggers a little movie explaining an aspect of the fracking process. It's designed to be a maze-like structure where you can get lost in (but I do provide a map, and buttons to help you get back on track) and it has built-in tangents that can lead the viewer away from the central subject (the process of fracking) to related subjects - i.e. seismology, alternative energies, petrofinances, etc.

    My ex coded the site a year ago for my thesis, but it did not work well at all and crashed pretty soon after I graduated. I've always wanted to have it up and running, but well, abusive husband took away a year of my life so I've only gotten down to looking at it now. As it was originally designed, my ex used canvas for making this, and I believe all the drawings were loaded onto one page. Of course that's why it crashed.

    Here is a walkthrough video of how the site should work:



    (The hand's a cute little addition of mine, showing how the site would work if it was on a touchscreen)

    And here's another demo video explaining how it works:



    And finally the actual code on git:

    https://github.com/sophiekaars/Fracking

    So the question is mainly: what kind of company or person can I go to, to make this happen? Would any of you know people or referrals who would be willing to help me with this? What prices should I expect?
     
    • Like x 1
  5. ADigitalMagician

    ADigitalMagician The Ranty Tranny

    I can put out some feelers for people learning stuff. Actually, I have a friend who doesn't currently know javascript who might need a project to help learn it.

    As for costs, if you're hiring a freelancer/professional, I can only speak to what I would charge. This is a fairly large project looking at the number of screens you need. If I were building from scratch I'd charge give or take 25 bucks an hour and work in two week blocks, with a focus on making the basics work, and adding features after the prototype is working. I don't know exactly how many of these blocks I'd need at full time, but I'd guess in the range of two at full time. So 4000 on the high end.

    I'm going to guess that's outside your price range for a project like this, so the second option is either people who will give you a deep discount for whatever reason (Either they agree with what you're doing and want it in the world, willing to help because it's a side project/non-commercial project) or find a student who is trying to learn to do a project like this.

    Just speaking as a developer and what I'd need to take on a side project. Hope it's helpful?
     
    • Like x 1
  6. Fish butt

    Fish butt Everything is coming together, slowly but surely.

    Actually, 4000 IS within my price range. I've set aside and saved a sum of money for the purpose of making this, and this is actually a lot better what I'd be hoping for than what I was actually expecting. :D

    If you know someone willing to take it on, that would be lovely! As a graphic designer I barely know anyone who is profficient at js, and the ones I do know is my mainly my ex - not someone I would like to ask for referrals!
     
  7. ADigitalMagician

    ADigitalMagician The Ranty Tranny

    Not going to lie, if I wasn't so busy, I'd consider doing this. At a reduced rate for a bunch of reasons. I've got a few friends in mind, I'll let you know.
     
    • Like x 1
  8. ADigitalMagician

    ADigitalMagician The Ranty Tranny

    So, got two newer programmers who might be interested. Do you have a deadline yet? (One of them is at the Recurse Center/HAcker School, her program doesn't end until July).
     
  9. Fish butt

    Fish butt Everything is coming together, slowly but surely.

    I don't really have a deadline, as I don't know how much time to expect for this. It would ideal if it could get finished by mid summer (End of July, beginning/mid of August) but I have NO idea if I'm actually being realistic!! I have all the screens, gifs, and movies all ready and available, so that makes life a little easier - so at least they won't have to wait for my content.
     
  10. ADigitalMagician

    ADigitalMagician The Ranty Tranny

    The Old:

    Code:
            if fan_tags is not None:
                tags = ' '.join(fan_tags.replace(',', ' ').split()).split(' ')
    
                if fan_tags != '':
                    if not set(tags).issubset(set(avail_fan_tags)):
                        return self.render_error('500 - Tags must be from the list of available fan tags (case sensitive).')
                    pack_data['fan_tags'] = list(set(tags))
                else:
                    pack_data['fan_tags'] = []
           
            if neg_fan_tags is not None:
                tags = ' '.join(neg_fan_tags.replace(',', ' ').split()).split(' ')
    
                if neg_fan_tags != '':
                    if not set(tags).issubset(set(avail_fan_tags)):
                        return self.render_error('500 - Tags must be from the list of available fan tags (case sensitive).')
                    pack_data['neg_fan_tags'] = list(set(tags))
                else:
                    pack_data['neg_fan_tags'] = []
    
            if fan_tags and neg_fan_tags and (set(pack_data['fan_tags']) & set(pack_data['neg_fan_tags'])):
                return self.render_error('500 - Fan Tags and Negative Fan Tags cannot overlap.')
    
    The New:

    Code:
            try:
                pack_data['fan_tags'], pack_data['neg_fan_tags'] = queries.process_fan_tags(fan_tags, neg_fan_tags, self.db_conn)
            except InvalidTagError:
                return self.render_error('500 - Tags must be from the list of available fan tags (case sensitive).')
            except TagOverlapError:
                return self.render_error('500 - Fan Tags and Negative Fan Tags cannot overlap.')
    
    (Okay, so technically it's not just this. But this is the handler code, the messiness is not in another module, and it's NOT THAT MESSY.)

    Code:
    def process_fan_tags(fan_tags, neg_fan_tags, db_conn):
        """
        Return a list of fan tags and a list of negative fan tags.
    
        :param fan_tags: string
        :param neg_fan_tags: string
        :param db_conn:
        :return: list of strings, list of strings
        :raises: OverlapError
        """
    
        available_fan_tags = set(preferences.by_code(db_conn, 'fan_tags'))
        rv_fan_tags = _format_tags(fan_tags, available_fan_tags)
        rv_neg_fan_tags = _format_tags(neg_fan_tags, available_fan_tags)
    
        if set(rv_fan_tags) & set(rv_neg_fan_tags):
            raise TagOverlapError
        return rv_fan_tags, rv_neg_fan_tags
    
    
    def _format_tags(tags, available):
        """
        Return list of formatted tags.
    
        :param tags: string
        :param available: set
        :return: list
        :raises: InvalidTagError
        """
        if tags != '' and tags is not None:
            tags = set(' '.join(tags.replace(',', ' ').split()).split(' '))
            if not tags.issubset(available):
                raise InvalidTagError
        else:
            tags = []
    
        return tags
    I'm proud of myself.

    (This is technically only step one. I now need to make a similar change in another handler, and add these functionalities to two OTHER handlers. But that's the easy part.
     
  11. Morven

    Morven In darkness be the sound and light

    Nice! Both concise and readable.
     
  12. BPD anon

    BPD anon Here I sit, broken hearted

    People who have been programming since forever, how fast has it changed? I'm worried that if I start learning a language, by the time I have a good grasp it will be obsolete because of how fast technology is advancing.
     
  13. ADigitalMagician

    ADigitalMagician The Ranty Tranny

    It was two years from me picking up a programming language to my first job.

    Languages that are arguably "obsolete" are still out there doing cool stuff.

    Currently popular (And likely to remain popular): Java, Python, Ruby, Javascript

    Up and coming: Swift, Go

    Timeless: C and C++

    If you're starting from scratch, any of these will give you useful skills.

    If you want to be really capable, pick one of Ruby, Python or Javascript and then any one of the others besides Swift and you'll be able to pick up ANYTHING in the future.
     
  14. albedo

    albedo metasperg

    Idle curiosity... Does anybody have a recommendation on a good, free/opensource webcrawler?

    This is for work, so I don't want to link the domain in searchable locations. (PM/Skype me if it seems relevant.)

    But basically, we want to crawl several subsites of our domain, which we don't have direct control over - other parts of the company manage them.

    We're going to shove the crawler results into our Solr search platform/data storage; the business use is to create a search engine that works on the whole site. Our current search is application-dependent, so you have to go to the correct subsite and THEN search, which is obviously super confusing for users.

    Just a vanilla Google custom search box won't work for our business case; we need the advanced search faceting that Solr provides. And it really feels like reinventing the wheel to roll our own webcrawler. :P

    I'm looking into Apache Nutch, because that's an Apache product and Lucene-compatible, but... Still in preliminary stages here, so I thought I'd bug y'all. I don't think we can get authorization to opensource our entire subsite, so I think it needs to be Apache/MIT/etc. licensing, not GPL.

    There's about a thousand pages, spread over about a dozen subsites/applications. (Yes, the subsite sprawl is slightly nuts.) Moderate traffic. I'm planning to run a crawl daily, overnight, but weekly would probably work fine too - it doesn't need to be anything like realtime.
     
    Last edited: Jul 21, 2015
  15. Morven

    Morven In darkness be the sound and light

    I'm not sure why the license of the software would cause issues there; the license doesn't attach to the data the spider indexes. The GPL doesn't apply to the data searched, nor to the indexes produced. The only cases where GPL'd output is itself GPL'd is when the output contains GPL'd content, and that was confined to a couple of code generators (GNU Bison was the one I remember) which output code routines written by humans in addition to the generated ones.

    So you should be fine there.
     
  16. albedo

    albedo metasperg

    ... oops. Thanks! Got my wires crossed. Our original plan was to incorporate some modified elements of an external webspider into our own codebase, which I think would require opensourcing the codebase. (I admittedly haven't read all the fine print of the GPL licensing, so I'm slightly fuzzy on the details.)

    But you're right, that doesn't make sense if we're using it as an external tool, and just consuming the output.

    Bleeeh, complexity. Thank you!
     
  17. seebs

    seebs Benevolent Dictator

    Depends. If you aren't distributing the code, it is not obvious that you are affected. Except maybe by the new crap in GPLv3.
     
  18. Morven

    Morven In darkness be the sound and light

    Which is why lots of corporates are OK with GPLv2 but won't touch GPLv3 with a long pole, lest it infect them. So long as you're not distributing the software, the GPL doesn't apply, because the GPL uses the fact that permission to distribute is by default denied to make its license stick. The only way you have permission to distribute GPL'd software is if you agree to the license. You either agreed to the license (and are bound by it) or you're copying it illegally and are infringing on copyright.
     
  19. Exohedron

    Exohedron Doesn't like words

    For the perusal of all assembled: The proceedings of SIGBOVIK 2015:
    http://sigbovik.org/2015/proceedings.pdf
    The abstract on page 73 (Programming Language Fan Fiction) might be of particular interest.
    The explanation of the mechanics of burritos in terms of monads was also quite enlightening.
     
  20. Exohedron

    Exohedron Doesn't like words

    It turns out that I really, really don't like Rails. Which at first seemed weird to me because I like Ruby, but Rails is just giving me headaches.
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice