1. [Comment removed by author]

    1. 6

      Have you looked into evil-mode for vim keybindings inside Emacs?

      1. 6

        spacemacs integrates evil-mode beautifully, and has a great org-mode configuration set as well.

        1. [Comment removed by author]

          1. 1

            Ah, understood. It does so much out of the box, and admittedly, I found it really confusing to use at first.

            I did my own thing for awhile with evil-mode, before I made the switch. Essentially, I just used a Cask file to manage any packages and separated things into their .el files.

        2. [Comment removed by author]

          1. 2

            The biggest advantage to learning emacs key bindings, imo, is that they are also the default keybindings for gnu readline. My coworkers are shocked when I’m typing in a shell command and I start using my emacs key bindings. You can:

            • Go to begin/end of line
            • Navigate by word
            • kill/yank words
            1. 1

              I actually came at this from the other direction: I had learned the default readline bindings, and then that was my justification for switching to Emacs.

        3. 2

          For what it’s worth I’ve been using a combination of vimwiki and taskwiki (taskwarrior binding for vimiwiki) to achieve something roughly the same as Org Mode. Something I have been looking to set up but haven’t yet is hosting a taskwarrior server somewhere and syncing one of the android apps to it.

          That being said, whether its vim, emacs or anything else I like the underlying message of keep things in plain text to keep the cost of switching or augmenting a setup low.

        1. 2

          What does lobsters think about Django? I rarely hear it mentioned, but I’ve tried it on a couple small toy projects and it seemed nice enough. The only thing that bugs me is that I’m not sure I understand it’s model. It doesn’t seem to be MVC, and the whole concept of “apps” is foreign to me. Does anyone have a good description of how the Django paradigm is supposed to work?

          1. 4

            It’s considered heavyweight; it has a unique design pattern paradigm. It’s sort of a Major Thing that your entire stack is built around. Flask is thinner and is preferable for smaller projects.

            I’d rather use Rails, myself; Python feels like its getting pushed into only the scientific computing community over time.

            1. 4

              I primarily use django for backend development when it is a work related project. I transitioned away from django rendering templates to it serving a REST api using django rest framework. I find it pleasant to work with, test and debug but that might come from familiarity. I personally like the ORM and try to avoid writing any SQL in django projects by hand. For some smaller things I have used flask which is a more ‘lightweight’ framework. I think django is in somewhat of a transition period away from trying to do everything in the MVC model to allowing you to make more decisions, looking at the roadmap and announcements the addition of things like channels and more REST features seems to show that it is moving to what I would loosely call a ‘modern web’ approach.

              1. 2

                I used django in the past (admittedly a long time ago), and I recall it working well. I remember the documentation being very good. I have also heard good things about the django rest framework from a couple of past colleagues.

                That said, I personally tend to prefer more minimalistic options like falcon, flask, or bottle. I am also not a big fan of ORMs in general, but I have heard of people using django and writing sql by hand too – ymmv I assume.

                1. 2

                  I’ve used Django professionally and inherited code from a Django creator. It’s pretty similar to Rails, but built on the deep assumption that your app has a lot of public read-only users (who are probably not logged in) with a small, completely-trusted set of read/write admins. This is really obvious in the built-in admin panel, but it echoes through the form builder, views, routing, templating, caching, apps, etc. I didn’t recognize it while working on a CRUD app with lots of read/write users, but as soon as I touched a publishing site it was like the whole thing sung in sympathetic resonance with a background noise I only just realized I’d been hearing the whole time.

                  “Apps” are what they sound like. Django reifies the concept because of the hassle that went into standing up a webserver to serve python apps in the early 2000s and because it was built for the case where your same trusted admins publish multiple sites.

                  1. 1

                    I thought the same for a long time, however I’ve come to realise this is probably more of a shortcoming in documentation than anything. Django has a great built in permissions system out of the box, the thing it lacks is a simple way to manage those permissions without using the admin page or rolling one yourself. You can set read/write/edit/delete permissions on models or, with a library, instances of the models as well.

                    An project I ran for a while at the university was a discussion board similar to stack overflow for students. We had multiple permission levels (students, TAs, course staff etc) and all of that was managed within Django. Coming back to Django rest framework they have a good permissions model as well which I use quite extensively these days to restrict actions / visibility of data based on user attributes.

                  1. 13

                    A ray tracer! It’s good practice for writing performant code and dealing with floating point issues, and basically an endless project if you want to go deeper.

                    1. 2

                      Agree, this or a fractal flame (http://flam3.com/) generator are projects I goto when looking for a medium sized project for a new language.

                      1. 2

                        I recommend trying to write a triangle rasterizer and see if you can match or outperform Quake’s renderer. And add some features Quake doesn’t have.

                        Of course, directly rasterizing other (convex) polygons, quads in particular, might be a worthwhile addition considering how common rectangular surfaces are.

                        1. 2

                          Are there any good resources for people who want to get started with graphics/3D-related programming but have no prior experience?

                          1. 5

                            You need to comfortable with trigonometry and introductory linear algebra. I don’t know any good resources for these since I got to learn them in school.

                            After that, it depends what you want to do. If you like photorealistic graphics:

                            If you like real time graphics (i.e. games):

                            This is done off the top of my head, so I may have forgotten some introductory material, but hopefully you’ll be able to get started with this. I’ve tried to arrange the lists roughly in order of ascending difficulty. Ray tracing will be easier to get into at first, since you won’t have to deal with OpenGL/video driver idiocy.

                            1. 1

                              Thanks! I have the math background, and those resources are exactly what I was looking for.

                              1. 3

                                For a software rasterizer (non raytracing), this is fun too:

                                https://github.com/ssloy/tinyrenderer/wiki

                                I’m currently working on a version of it in JS.

                        1. 7

                          Write a useless library in Rust, the hipsters here love this!

                          On a serious note, if you’re looking for some inspiration, you can take a look at our project ideas-page http://suckless.org/project_ideas or directly in the git repositories http://git.suckless.org/ (projects range there from a suckless C99-compiler to a Wifi-jammer).

                          Not to appear self-advertising, I can also recommend working for the OpenBSD-project, because it’s the only promising operating system out there in my opinion.

                          I know it’s always more exciting to start a project from scratch, but there is a lot of code on the web for useful programs that just need some more love. I think the biggest challenge a developer is facing is to finish his projects and not just start with an exciting new idea and then just discard it when something else shows up.

                          It’s an unfortunate case, that many developers are loners and not keen on joining a development group for collaborative efforts. Especially if you’re a student in programming, having a group to aks questions to is very helpful. If more developers spent more time on collaborative coding and “playing” instead of starting projects from scratch all the time only to find out there is a better solution already existing is a waste of time, with exceptions of course.

                          1. 2

                            With respect to the OpenBSD topic. Is there a similar page of say ‘low having fruit’ that someone with some OS dev experience could look at? I worked with dlg teaching an OS dev course at the University of Queensland last year and it would be nice to be able to point people and somewhere they could look if they wanted to keep at it. (Also keen myself but my capacity probably doesn’t have enough room for another project right now)

                            1. 3

                              This thread on tech@openbsd.org shows a simple way of getting involved with OpenBSD - it will give an insight to both the kernel and ports.

                              1. 3

                                I know of no such list, however, if one can spare some time, the best pointers could be given on the ml. Just write a mail there, give your basic qualifications and they’ll let you know what work is needed. You could also keep it general and ask, what generally could be done by an OS dev in OpenBSD.

                                1. 3

                                  This question pops up periodically on the mailing lists if you search tech@ and misc@ you should find some pointers. There is also a fair amount of work going on at the moment to pledge(2) programs.

                              1. 8

                                Looks like a nice solution to the problem. Although I do have a couple of quips with it. Most of the 2FA I use at the moment is using google authenticator / authy so the whole ‘no need for text messages’ isn’t really a big incentive to me. Also a box with text saying “Straightforward, low-cost pricing.” which then leads to a contact the sales team for pricing page is a bit of an antipattern in my books.

                                Also, and more of a technical/semantic question but if it removes the password is it really two factor authentication? I understand the need to use familiar terminology but it feels more like a one time password solution that two factor.

                                1. 4

                                  …a box with text saying “Straightforward, low-cost pricing.” which then leads to a contact the sales team for pricing page is a bit of an antipattern in my books.

                                  Looks like they designed their App Store page for users and their website for clients.

                                  …it feels more like a one time password solution that two factor.

                                  It’s just OTP, but “2FA++” is a better pitch for clients considering other 2FA solutions.

                                  1. 4

                                    quip

                                    noun

                                    1.
                                    a witty remark.
                                    

                                    I don’t think that’s what you meant. “qualm”, perhaps? I only mention this because I remember making the same mistake and feeling very embarrassed.

                                    1. 1

                                      Ah, well there you go, I most certainly did mean qualm. Or at least I certainly didn’t mean quip as it is defined. I’ll keep the one in mind for the future.

                                    2. 1

                                      Does the PIN on the phone app qualify as a factor in itself? If so, it could be called 2FA.

                                      1. 2

                                        Arguably? The PIN is weak to different attacks than the network service is…

                                        1. 1

                                          Good point

                                    1. 12

                                      On Android I’ve tried many different apps that provide terminal and/or ssh access. And while some are pretty decent, they didn’t get me beyond thinking ‘ok, this will have to do.’

                                      But then I found Termux. It’s the best - sorry, I had to say it, because it provides even more than I wished for: a full blown terminal with its own package manager (apt!), a good number of packages that are kept up to date, and as such it gives you pretty much the terminal environment you prefer. I use zsh plus my own set of zsh config files, .ssh/config actually works, and it even has a (passwordless, key based) openssh server that runs under user privileges.

                                      Another thing that makes Termux so nice is the intuitive key binding system: for ctrl use the volume down button, and use the volume up key as a meta key for numerous useful other keys, e.g. vol-up+e is escape, vol-up+t is tab, vol-up+p is PgUp, +n is PgDn.

                                      It has multiple session support, various color schemes, fonts, you name it. It’s portable, so with another tool like TitaniumBackup, duplicating your whole setup becomes a breeze. And it’s incredibly fast as well.

                                      1. 5

                                        Another great thing is the source is available: https://github.com/termux which may lessen concerns around ssh access into certain servers.

                                        1. 3

                                          I recently discovered this too when a user of my Python package asked if it works in Termux. I was really surprised that installing Python packages worked most of the time (some C-based packages didn’t work).

                                          1. 2

                                            I really agree. It works really great, and is the only one that works reliably for me. The bulit-in terminal is great, and the software repo has a great selection.

                                            One thing I regret, is that a shell script that has the shebang #!/bin/sh does not work, but this is due to Android not following the standards, not to termux.

                                            It was really a good surprise :)

                                            1. 2

                                              Definitely agree, i found it a couple of moths ago by total accident and was amazed to see that i could not only install ssh but the latest version of GCC, go, node.js, python, ruby, emacs, vim, etc.

                                              Typing on an phone is not the most convenient but plenty useful when you need it.

                                              1. 2

                                                And even if it doesnt use your sd card as home. You can still access your termux files from the file discovery dialog. I’ve been using it to manage my ssh key on my phone.

                                              1. 2

                                                Thermal simulations for MRI Gradient coils and aiming to write the first words of my thesis. Trying to get a head start on it so it doesn’t all happen in 2 weeks like my undergraduate thesis.

                                                Usually more to talk about but focus will be on PhD related work for the next little while.

                                                1. 1

                                                  I’ve been putting some time towards a recent open source project to create an open data portal for housing sales. The project is an initiative of the Data Skeptic podcast which is quite good. We’re looking for some more contributors if anyone is interested, still a very early stage project.

                                                  Other bits and pieces, editing some papers for my PhD. Cleaning up some side projects for a possible public test run and trying to familiarise myself with ionic to see what benefits it might provide. I’m also planning to work through the University of Pensilvania Rust course over the next couple of weeks.

                                                  1. 3

                                                    “I’m sorry, we don’t have purple. We have white, gray, brown, red, orange, pink, and black. What color would you like?”

                                                    Make the list clickable. Make the answers tab-expandable.

                                                    1. 3

                                                      In conversational UI, isn’t that not really an option? You’re likely using it from skype or your phone or hangouts?

                                                      1. 2

                                                        We should consider the user experience and create something useful and enjoyable. If those technologies are to become the conduit for truly intelligent conversations, they will need to support more conversational semantics.

                                                        As it stands, using these technologies for anything but the simplest exchanges would be infuriating for me.

                                                        1. 2

                                                          Isn’t the point to make it like talking to someone? Free form and all that? If there is going to be tab complete and clickable lists, then how is that not just a regular GUI rather than “conversational UI”?

                                                          1. 5

                                                            I can’t speak for the author. However a conversation with a computer can be a hybrid semi-structured free-form.

                                                            Consider the color list again. If i name five colors while raising five fingers, you can repeat a name or point to the corresponding finger I raised.

                                                            Why draw a false dichotomy of strictly either GUI or pure typing/voice? A computer can provide the best of both for the benefit of the user’s experience.

                                                            1. 1

                                                              I would suggest maybe you could have both. In a similar way to how mailto:whatever works we could feasibly develop a response:something tag which the chat agent recognises and uses as a quick way to respond. Perhaps even showing a list of the found response tags as suggestions above the keyboard similar to suggested spelling/words when typing

                                                      1. 3

                                                        Currently in Brisbane, Australia

                                                        1. 1

                                                          (100kx100k) dense matrices for boundary element

                                                          Do you really have the 74 gigs of RAM necessary to store such a matrix? Or is there some other technique at play?

                                                          1. 1

                                                            Yep, typically run on a server with 128gb or so. That being said it is usually a case of iterating the sims with a simpler mesh (say 10k*10k) and running the full simulation only when we are fairly confident in the results already. There is some work being done to use hierarchal matrices to save on memory but there is a trade off there with speed.

                                                            1. 1

                                                              How long does it take to solve that linear system? I guess MKL knows how to parallelise, which is the reason you’re using Matlab in the first place?

                                                              1. 1

                                                                Typically simulations of that size take 12+ hours. Because its usually constrained optimisation rather than a direct solution. At the moment we are using a quadratic programming library written by someone in the Matlab community, this is another section I would be interested in at least attempting to rewrite for some of the HPC capacity we have here at the university. I would probably move away from qp to something which favours parallel execution a little more but that project is on the back burner for now. I think, if I’m being honest the reason Matlab is being used is because it knows how to negotiate with universities, it has become ingrained in some research groups so deeply that the switching cost tends to outweigh any benefits that may be gained from moving the codebase to another language.

                                                          1. 4

                                                            $5USD = $7AUD but can only find it for $20AUD!

                                                            1. 3

                                                              I fell your pain. Apparently the issue is that e14 supplies almost all the stores in Australia who would stock them (like Little Bird) so they effectively control the price here and are looking to make a profit on the first keen few.

                                                              1. 2

                                                                I imagine once the newness wears off and supplies stabilize, it won’t be an issue.

                                                              1. 2

                                                                Reminds me of the “Linux Sucks” video https://www.youtube.com/watch?v=5pOxlazS3zs

                                                                1. -4

                                                                  Also

                                                                  the git repository and bug tracking moved to github

                                                                  so, that justifies systemd throwing it’s weight around with regards to kernel development, right?

                                                                  1. 16

                                                                    From what I can tell from this announcement, kdbus support in systemd is:

                                                                    • compiled into systemd
                                                                    • disabled if your kernel does not have the kdbus module loaded
                                                                    • can be disabled using a command line option
                                                                    • the command line option can be defaulted to off at systemd compile time.

                                                                    So, if I understand correctly: if your kernel does not have kdbus support then the only impact this will have on you is that your systemd binaries might be a few Kb larger.

                                                                    I don’t see this as systemd throwing it’s weight around - more like they want to conservatively introduce a feature to a wider audience whilst, quite rightly, limiting it’s impact by placing it behind a feature flag.

                                                                    I’m having difficulty seeing this as systemd throwing it’s weight around, what did you mean by that?

                                                                    1. 5

                                                                      Thanks for your informative reply. I apologize for the tone of my comment.

                                                                      To answer your question: from the Phoronix articles linked above, and what I have read about the systemd project, I gather that the vision put forth in Revisiting How We Put Together Linux Systems has gained influence. By “throwing it’s weight around” I meant that, because the project has such influence, their decision to include kdbus could move the kernel developers to mainline it despite their serious reservations. Poettering himself explains the sd-bus API that shipped with this latest systemd release, which supports “as back-ends both classic socket-based D-Bus and kdbus.” I must admit that I have only skimmed his posts, and so I cannot summarize them.

                                                                      To the best of my ability and as time allows, I like to inspect and understand the systems that I use so that I can use them better. That may be a vain endeavor, but in it I find systemd frustrating because it adds more abstractions, the quality of which I have trouble discerning.

                                                                      1. 3

                                                                        You are correct.

                                                                        Today.

                                                                        But as with most things systemd, it never stops there. It’s pretty easy to see where this is going.

                                                                        1. 3

                                                                          As someone a little out of the whole systemd loop. Can you explain where this may be going?

                                                                    1. 6

                                                                      The interesting thing with web technologies is that the web, by default, meets many of the major requirements of modern development. Plain content in HTML is mobile-friendly, responsive, and accessible. Any web development system that harms these things is unacceptable.

                                                                      On a related issue, I can’t stand the popularity of client-side rendering. The logic goes that it allows for faster-seeming apps, and that user’s machines can handle it, but that is completely at odds with the rise of mobile.

                                                                      Web development today feels like a lot of people needlessly reinventing the wheel. Server side rendering (or even hybrid, I guess) works just fine. And we can work on the performance issues. We don’t need these bulky and slow frameworks that mess up basic things like separation of concerns.

                                                                      Basically, stop screwing up the web. It was working fine before.

                                                                      1. 5

                                                                        We don’t need these bulky and slow frameworks

                                                                        This actually depends on your use case. I certainly believe that you don’t need this sort of framework. But I do need something like Angular or Ember for much of my work.

                                                                        The main area in which Angular is slow is the initial render. Once you’ve gotten past that cost, things can be very snappy indeed. It doesn’t make sense for most public-facing websites. But if you’ve got a highly interactive web app behind a login, you can actually preload the application logic and templates while the user types in their credentials, eliminating most of that cost.

                                                                        that mess up basic things like separation of concerns.

                                                                        There are different ways of separating concerns that make sense under different circumstances. Angular rejects the “traditional” web model because it isn’t a great fit for client-side applications. There may be better ways to do it, but the Angular way isn’t unreasonable.

                                                                        1. 1

                                                                          Yeah. I understand that there are use cases for these sorts of things. But (as is often the case with the hot new thing) they are used widely and without reason. I don’t doubt there are organizations for whom these frameworks are actually the right choice, but I highly doubt that those represent anywhere close to the majority of the actual users.

                                                                        2. 3

                                                                          It really wasn’t. Nor will it. Processing, ram, storage, these things tend to increase at an exponential rate along t. Actually available mobile bandwidth does not. And there’s nothing you can do about C, so there’s always going to be lag waiting for server responses.

                                                                          1. 1

                                                                            I’m not sure what you’re saying. My point was that pushing rendering to client side is at odds with a goal of a friendly mobile experience. It assumes a certain amount of bandwidth, and more importantly eats up limited data for users.

                                                                            1. 3

                                                                              Pushing rendering on the client also consumes more of the client’s energy (battery). I occasionally run across some JS laden sites that peg cpu cores doing things like.. scrolling!

                                                                          2. 2

                                                                            I loved, and still love, writing websites with Wicket, doing all the rendering on the server side. You can dynamically update part of the page when the user clicks a button - but that happens via an ajax roundtrip. It’s the nicest framework I’ve ever worked with.

                                                                            But it’s not at all mobile-suitable, because it relies on being able to roundtrip to the server more-or-less at will. If the user goes into a tunnel, their page breaks. In the olden days, making a user reload and start again when they lost their connection might have been acceptable; nowadays, not so much.

                                                                            Which means either doing it on the client, or hybrid. Hybrid is inherently more complex - it means doing everything twice, with the potential for them to get out of sync. If you want to just have one set of rendering logic in one place, the only place for it is on the client.

                                                                            1. 2

                                                                              I disagree on client-side rendering. I think one of its big strengths is that it cleanly separates the data layer from the end representation and forces you to address that from the design inception.

                                                                              1. 1

                                                                                I agree. To me the whole REST (or similar) + client side rendering is a good choice in many cases. It also allows one backend setup to service web, mobile, IoT or anything else that can receive data without needing to scrape HTML or maintain and API alongside page rendering.

                                                                            1. 1

                                                                              Among lots of other stuff working on a tool to get docker instances running and linked using a JSON config file. See Here Started it today because I was using a Makefile to do it before and it got a bit out of hand.

                                                                              1. 1

                                                                                I was thinking about something similar to this the other day in which money is pledged either to the project as a whole or a feature on a feature request list. I think for open source projects that could help to both pay developers and see people work on features the community wants. Obviously the developers and the public may differ on what they see as the cutoff for ‘implemented’ but I think this overall idea is really quite interesting.

                                                                                1. 3

                                                                                  Our startup just started a clinical trial of our device so I’m starting to think up and work on some new exciting ideas for V2.0 whilst the current iteration is somewhat untouchable. Along side that working on some EM simulations as a part of my PhD.

                                                                                  1. 1

                                                                                    Ooh, what kind of medical device?

                                                                                    1. 1

                                                                                      It’s a respiratory physiotherapy device primarily aimed at kids with CF (cystic fibrosis). You can find out some more at hskinstruments.com if you are interested (warning website is in need of an update).

                                                                                  1. 7

                                                                                    My goal for general computing and work is to avoid using the mouse whenever possible.

                                                                                    Computer: Lenovo W540, Intel i7-4930MX, 16GB RAM, 128GB SSD

                                                                                    OS: Gentoo

                                                                                    Window Manager: awesome

                                                                                    Terminal: urxvt

                                                                                    Shell: bash with lots of aliases, functions, and scripts

                                                                                    Text editor: vim

                                                                                    Task management: taskwarrior

                                                                                    Chat: weechat running in screen on a VPS to connect to IRC, bitlbee, and slack’s IRC gateway

                                                                                    Email: mutt

                                                                                    Browser: firefox with pentadactyl for vim-like keybindings

                                                                                    Revision control: git

                                                                                    Testing: vagrant + virtualbox to spin up a, typically Ubuntu, VM to run whatever I want to test

                                                                                    Typically I will spin up a local VM with the code I am working on in a shared folder, then while I’m editing in one terminal (outside the vm), I can test in another terminal which has sshed into the vm. I find that it works quite well, and I don’t have to pollute my main OS with tons of stuff I don’t care about except for the project I’m currently working on. An extra benefit is that I never have to care about version inconsistencies, since when my VM is provisioned I know it has exactly the version that project needs.

                                                                                    I am considering switching to packer + docker to do this, since it will use less memory and disk space while starting up faster.

                                                                                    1. 1

                                                                                      Thanks for the taskwarrior link, looks like it may be what I’ve been looking for to manage project based todo lists.

                                                                                    1. 2

                                                                                      iTerm2 + fish + vim/Android Studio + git on OSX(Mainly)/SmartOS(One Project)

                                                                                      I use this setup for python/C/Java which is 90% of my personal language usage. I also use Matlab a lot for my PhD but that setup is basically just Matlab + git on a windows machine in my office.

                                                                                      Seems to be a lot of zsh usage in this thread, does anyone have a good argument for it over fish? If you haven’t tried fish perhaps why is it superior to bash?