29
votes
What are you coding today?
What are you coding? Or are you reading a CS paper?
and of course, have you read SICP today?
___-------___
_-~~ ~~-_
_-~ /~-_
/^\__/^\ /~ \ / \
/| O|| O| / \_______________/ \
| |___||__| / / \ \
| \ / / \ \
| (_______) /______/ \_________ \
| / / \ / \
\ \^\\ \ / \ /
\ || \______________/ _-_ //\__//
\ ||------_-~~-_ ------------- \ --/~ ~\ || __/
~-----||====/~ |==================| |/~~~~~
(_(__/ ./ / \_\ \.
(_(___/ \_____)_)
I haven't participated on Tildes for nearly three months, I figure this is a good time to start again :)
I've been focusing a lot on native desktop app development, particularly with Python and GTK+.
The project I've been working on for the past few days is a Markdown note-taking app called Notementum (I'm great at names). I know, I know, it's been done to death, but I haven't found anything that met all my needs, so I decided to take a stab at it. I've been working on a bit of a writeup, excuse any typos:
Here's a list of some basic features of the type of app that I want:
The closest thing I've got is Notable, which is a great app and has met most of my needs for a few months, but I have quite a few problems with it:
Although I do appreciate how good it looks, the good keyboard shortcuts, the ease-of-use, and the fairly minimal interface, which also as a "focus mode".
Okay, that's enough typing, here's a few screenshots of what I've got so far:
Note preview (featuring my old high school math notes)
Note editor
Preview showing some more math
Some technical details:
I'm very happy with performance so far. Some very rough benchmarks on my older Thinkpad, compared to Notable:
Obviously Notable has more features than Notementum, but at this point I'm very happy with the app's general speed and resource usage.
That's where I am so far. I'm going to be trying to release this sometime this week (open-source, of course), hopefully after I get a few additional features like embedded images, database encryption, and exporting done.
Hey @what, good to see you back around!
How's desktop app development in Python been overall? I've always just done CLI and web and haven't tried any of the desktop GUI libraries/toolkits. I don't know much about the options, but was there something in particular that made you pick GTK+? I know that some other Python GUI applications (like the calibre ebook manager) use PyQt, but I don't know much about the differences.
Good to be back :)
Python is always nice to work with, and it has great libraries, it's been a pleasure using it for desktop apps.
Gtk+ vs Qt is a topic that gets debated pretty often. I'd say at this point Qt has "won", it's more popular, it seems like the majority of new projects use it, and quite a few existing projects have switched to it from Gtk. I'll probably use it at some point in the future, or maybe port something to it, but I'm quite happy with Gtk for now. I think it looks good, has pretty good documentation, and the UI designer (Glade) is very nice to use. I've used it before so I'm inclined to stick with it, but I should probably try Qt more in the future.
Qt just published a blog post about Qt and Python, it's clear that they're putting a lot of work into it: Technical vision for Qt for Python
Yo, thanks for setting up this site. Based on this post I already like it better than reddit. It has a small community feel.
Notes-Up ticks a lot of the same boxes, except no LaTeX support. Definitely keep us updated on Notementum, looks like a great project!
The one I use is called Joplin. I think it ticks all your requirements.
https://joplinapp.org
Joplin was the app I used for a long time before Notable, and it does come very close to all my requirements. It's probably my first recommendation for those looking for a Markdown notes app.
Unfortunately it has the same problem as Notable of high resource usage: it's 500 Mb, uses over 150 Mb of memory, and generally uses a fair amount of CPU. I think a lot of this is due to Electron.
That aside, I love that it can be used from the terminal, how snappy the preview is, and the mobile app.
I use Zim wiki, which supports a lot of what you want, except it has a non-markdown syntax (it is Python+GTK though!). Don't let that get in the way of making what you want though, it does sometimes feel like it's a lacking space.
Thanks (@Diff too), these both look like great apps, and they definitely tick some boxes that I want, there’s definitely lots to be inspired by them.
I was thinking about this, and wondering if it was just me. Everyone and their mother has made a Markdown notes app, and yet I can never find the perfect one. Sure I could get by on most of them, but it seems like the perfect space for rolling your own, not too complex, and a good variety of features to make it a great learning experience.
My end goal is to make something useful for myself, and hopefully it’s useful to someone else too :)
Isn't that funny? I wonder if there's a feature matrix out there for all the players in the field. For me, Zim's journal feature, ease of linking, and git integration are the killer features, but everybody has their own little tweaks on the requirements.
Sounds cool. I get a 404 for the images you linked.
Oops, looks like I had them set to expire, fixed now.
Sweet, now that I can see the images, I look forward to the release ! 1 week, in programmer time, is about 2-3 weeks I guess :-D
I just made pretty nice video summarizer app! I was just learning Rust, so I used this as an exercise.
Basically the application allows user to change speed of the video at different rates depending on audio level. So loud parts (speech) can be sped up 1.5x, while silent parts can be sped up like 5x or left out completely.
I do this by extracting audio, and seeing where the audio remains roughly the same level for suspicious amount of time. When plotted, an early version of the algorithm looked like this. The purple part is sound level, and green marks silent parts decided by my algorithm.
Afterwards I use shitton of ffmpeg to actually do what I want to. An interesting fact, did you know that there is maximum number of cli arguments? I wondered why video split into more than 5000 small video segments wouldn't concatenate :-)
loud parts sped up 1.5x, silent parts removed
I expected the results to be pretty good for various courses and lectures, which they are. But I'm really surprised that the result wasn't that bad even on anime (to be fair, you probably don't want to remove silent parts from anime, but it's still better than I thought). I'm really surprised that the results are that good, and the edited video is even watchable.
I watched a youtube video with a similar concept just the other day, this is a great idea, especially for students!
Do you think it’s possible to do this during playback (for example, a VLC plugin or something) as opposed to having to process the video beforehand?
I'm glad you like the idea! I've actually seen video from carykh who did something similar, but it was extremely slow, so I did my own version.
It might be possible - but I don't know whether with ffmpeg, which is the tool I use to edit the video. Maybe there exists a clever way how to do it, but so far with everything I've done, ffmpeg sent me the results at the end when everything finished.
Another problem is, that when I want to keep original resolution and have high audio quality, it takes slightly longer than the video duration to actually process it. I offer
--fast
option in the program, which makes it really fast (and the way I do it, which partly evades ffmpeg, would actually allow me to make a way to stream it in realtime into vlc if I took the time to do it), but the resolution is generally not that great and sometimes the audio shutters a little bit. It's pretty usable for lectures and courses, but sometimes mildly annoying.However if I put the video editing aspect itself aside, it might be possible without too much hassle! For example with the VLC plugin. The act of finding out where to speed up how much is actually really fast, it took few seconds in 20 minute video. So I can imagine VLC plugin that analyzes the video for few seconds and than changes playback speed as you are watching it. But I don't know how to write VLC plugins, so I can't offer better insight into this.
The first link in your comment is a link to the topic, I guess you meant to link the code there.
Thanks, it's fixed now.
This sounds like an awesome idea! I've always been really interested in personal wiki software, but for whatever reason I never got into using it, maybe partially because it seems like every option would only handle a subset of what I wanted, and I would end up having to use multiple solutions. I strongly agree with the whole Unix philosophy of "do one thing well", but at the same time, there's something appealing about this sort of monolithic piece of software that can do everything you need and tightly integrates a bunch of different concepts in a meaningful way.
I've been working on my own notes app for the same reason of being dissatisfied with existing solutions, and it's got me thinking about some of the same things (but with a much smaller scope). I really hope you work on this, even if that just means releasing your documented ideas, or slowly building parts of the app and releasing them as open-source, this sounds like an amazing idea.
That sounds similar to what I do, except with paper. I have a folder I take between home and work with a page for long-term goals where I write down "everything I want to get done, ever", as you said. Then I have todo lists for every day of the month, a physical calendar, and a page of recurring things like weekly/monthly/yearly tasks and birthdays.
Once a year I'll copy yearly and monthly tasks onto a new calendar. Once a month I'll copy weekly tasks to my calendar and create todo lists for that month by taking a sheet of paper for each day writing the date on it. Once a week I'll copy everything from my calendar to my todo lists, and then every day I'll copy uncompleted tasks from yesterday to today's todo list, like you described.
So there's some manual effort involved but it's not much (5 minutes here and there) compared to the effort of developing an app that suits my taste. Plus if my workflow ever changes it's a quick trip to the stationary store to support those changes vs. spending time on new features. E.g. I'm planning on switching to a notebook for my todo lists at the beginning of next year so that I have a daily record of what I've done every year. As another example of my workflow changing, I used to write my todo list on the left side of the paper and then block out different times of the day to do the tasks on the right side, but now I just group tasks with stuff to do during the workday in a list at the top of the page and stuff to do after work in another list at the bottom.
I don't have a personal wiki (well I do, but I haven't used it in ages), but anytime I have a project with little details I need to remember I'll start a sheet of paper for that project.
Anyway, hopefully I haven't strayed too far off-topic but I just wanted to ask, have you considered going the other way and using paper? It definitely has its pros and cons but personally I like its flexibility.
I'm troubleshooting the front end of a minor feature enhancement for a fairly large WordPress multisite network (300 sites live on production), and I'm stuck on this part where li items have a seemingly inescapable top margin and are thus visually off-center, despite my going so far as deleting all the styles in the associated .styl files in the hopes that would at least remove the styling glitch (it did not). I'm kind of an older graphic designer-turned web designer-turned "web/IT guy" who is now in sort of a junior web developer role, where I know enough php to be dangerous but don't have a good enough understanding of how things work to really call myself a web developer. I guess I'm just kinda feeling the pressures of midlife obsolescence creeping up on me, and jeez, it feels good to finally admit that out loud. Frick. Yeah, it's like I know I have to adapt if I want to survive, but it's do damn hard to get excited about that, you know?
Dammit, I can't figure it out. I give up. I committed everything I had to the feature branch and tagged our ui/ux dev for help. The dude is like two decades younger than me. Everything works except this one glitch, I got the entire feature enhancement finished on my own except this one little thing. Fuck, I hate this.
Is there a page public anywhere that shows the CSS issue?
For problems like that I usually manage to sort them out using Firefox's dev tools. There are a few different ways to try to figure out where a particular effect is coming from, and if nothing else you can always try toggling individual CSS declarations to try to find what's causing it.
Do all the things and get stuck on something that's probably obscure and non-vital for functioning? l'd say that's okay and you know how to tackle it the next time it occurs once fixed.
I'm working on the web interface for my Raspberry Pi-based thermostat! I've slowly gotten all the hardware together over the last couple of weeks—the Pi, a DHT22 for temp/humidity sensing, a relay module, a Pro Trinket to read the DHT22 (Linux doesn't do great with microsecond timing)—and now I'm getting down to business on the software side of things.
I already have tiny REST APIs for reading sensor values and controlling the relays (e.g.
POST rpi.lan/cool
to turn the AC on), but the management interface is a bit more involved. So far, I've gotten basic graphs working, and next I just need a few buttons and such for setting the temperature. Then, I just need the actual logic for turning the heat/AC on and off when appropriate, and I'll be more or less done!I have to create a project that’s not too trivial using deep learning with 10 days left.
Today i followed some TensorFlow tutorials to get the hang of the syntax etc. since I already have the theory down. If anyone has any funny ideas, let me know. I’m thinking of creating some art with it.
And i have to work on the Website for my work that should go live by the end of the month. I’m using google calendar as a backend and fullcalendar to display Events.
What books/tutorials did you read to catch up on the theory? I've started (slowly) making my way through Hands-On Machine Learning but it's quickly becoming apparent that I probably should catch up on the foundations and theory.
Depending on what you want to learn, I can list you the resources.
So I am studying for a masters in 'autonomous systems'
I had a lot of courses to get me started.
-statistical machine learning - 'pattern learning and recognition' by Bishop. It’s a really amazing book and I think the pdf is available for free
For that I’m also planning to read the book 'deep learning'
Even though I had a lecture in statistical machine learning though, most of what i actually learned came from that amazing book. So i highly recommend it. I can tell you the chapters/topics that were covered in my course, if you like.
And I can’t recommend cs231n enough. It’s a seriously well made course
Just for funsies, to learn Rust I'm trying to follow "Writing an Interpreter in Go" (but in Rust, obviously!)
Hi! I just joined this site.
I'm working on revddit.com , a side project I launched in October 2018 that shows you removed content for your reddit account. It is a fork of removeddit.
Specifically, I'm adding some navigational stuff like the ability to show contextual view of a comment in thread pages, and I am considering changing the domain since revddit is marked as a typo by Google, and its proximity to reddit also seems to cause some Comcast users to see this warning. Fun! My javascript skills are very learn-as-I-go and I am more comfortable manipulating data than I am implementing interfaces.
I am particularly interested in Tildes because I've been told it does not implement shadow removal of content. I look forward to getting to know this community. - Rob
I have recently finished my scheme compiler and interpreter so I've actually taken a break from coding for a while now. You can see it here and tell me what you think https://rain-1.github.io/scheme.html
Short-term (last weekend and this weekend):
I became inspired to learn the basics of neural networks after having watched 3blue1brown's playlist on the subject. I followed along with the playlist and read chapters 1 and 2 of the book he mentions in the descriptions , and was able to do the "hello world" of neural networks: identify the numbers from the MNIST database -- no fancy machine learning libraries, just me and a linear algebra library :)
I'm not sure what I want to do with it yet (if anything), so I think I'm going to tidy it up, put my final code up on github somewhere, and shelve it for later. Maybe if I find something interesting to actually do with it, I'll pick it back up and learn some of the fancier NN techniques.
Long-term:
I've been interested in audio DSP for a while, but it's been a little bit of a brick wall for me for some reason. I want to figure out the best way to start learning it, and then go actually do it.
I've created dead-simple VSTs before, but I'm lacking DSP chops to do anything interesting with it yet.
Hey, I just wrote a dmenu clone using fzf, called fmenu.
I literally just wrote a post about it (including source code; I need to get it on git somewhere) here.
Comments and criticisms welcome!
Work today: Angular + Django Rest Framework work (which is our typical SPA project workflow). I'm trying to reduce the footprint of the production angular build for a number of projects. Most of them are within the range of "acceptable" but I'm always looking for more optimizations. I'm also trying to finish the unit tests for a big project that I was working on and just... opted to not write the tests for at the time. Backfilling the tests shouldn't be too bad (I like to think that I write easily testable code) but doing it all at once is a bit painful.
Personal: I've been playing with static site generators, and CMS's for my personal stuff. I think I'm going to regenerate my personal site, and I'm leaning towards Wagtail for it. I've used wagtail a number of times for client projects, but never for personal, and there are a number of things that I want to add in; specifically, I'd like to get back to posting photos that I've taken, and explore what that could look like. I've also been fiddling with a post scheduler for Reddit because the auto-mod one has been hit or miss for me for a while, so I might be able to get that finished soon.
Are you me? I spent all weekend wrestling with Angular HTTP client and weird type errors in unit tests, now I'm trying to get Angular and Django REST Framework working with pagination, filtering and OAuth.
Sounds "fun" ;p (though Django test code isn't bad to write)
Wagtail looks awesome: https://wagtail.io/
I don't think I'm you, but I've also never seen us in the same room - could be a polkaroo situation!
If you want to discuss pagination between Angular and DRF, I'm happy to comment. It's not particularly onerous, and once it's implemented, I find it pretty nice to work with.
I actually ended up not doing the test code backfilling - too much project management stuff to work on. Had to have a 2.5 hour long architectural meeting / review for a big project. Hopefully more test writing tomorrow though! It won't be actual fun, but I don't like having projects with unreasonable amounts of coverage in a launch situation, so I want to make sure that everything is done right this week so we can finish things off.
Wagtail is pretty great. I enjoy it a lot, having moved to it from WordPress. I can't recommend it enough, and it's very Django-y, so that's nice.
I'm working on electrictyMap, specifically building a new parser for Chile.
I'm working on one of tildes competitors based on activitypub.
Today I expended my storage objects with better filtering capabilities.
Finally got to put some time on my compiler's parser. https://github.com/Apostolique/Vyne-Compiler
Found out about Lazy in C# the other day and started using it everywhere. Today I took the time to get rid of that so that's nice. Also managed to refactor my base Parser class so it's much simpler.
There's more info about the language itself here: https://github.com/Apostolique/Vyne-Language
I've finished cleaning up the code for my Arduino-based accelerometer lantern. As far as I know, I've changed nothing but organization and yet Deep Sleeping and motion interrupts to wake up are working.
Now I'm back to adding new animations and features. Added a quadruple-tap gesture to lock/unlock brightness control by twisting the whole lantern on top of triple tapping to swap through animations. Not sure if there's much to add now that sleeping is working to save battery life, looks pretty neat though.
No coding today. Had a meeting with my business partner to discuss the next steps in the creation of our MVP for our two B2B applications. We're super pumped about what's coming up and we think they're going to be highly successful, but right now both of us are working full time jobs unrelated to this, so our frustration at the moment is a lack of time.
I might work on splitting out some shared code that both applications will use in their clients into an NPM library that can be shared from a private NPM repository.
Working on my postman replacement Milkman. Currently trying to figure out a more performant way to render big lists for the SQL plugin.
Working on getting my new website up
and running. I'm a web noob and used to have a CentOS server running but the host(a friend) is hard to contact so l opted for my own server on some hosting platform. It's €5/mo, low specs and perfect for tinkering with website and linux stuff to get a feel for how it works.
l'm also thinking of making some Factorio mods; a while ago l made 3D models and graphics for a windmill mod but never got around to coding it (usually it's the other way around lol), so might give that a shot.
(for the record, here's some old pics of that model https://www.flickr.com/photos/mrburd/albums/72157666501895480)
Writing a simulation for cosmological structure formation for a project at work. It's been a tough but amazing experience, and I've learned a ton about parallel programming (MPI) on the way. I was looking back at code from a few months ago even and I was pretty surprised at how bad it is. At some point I will go back and clean it up but for now I just want to get the damn simulation working so I can proceed with the project, which has been stalled for a bit.
I'm working on a simple hobbiest electronics project, using an ESP2866 and a BME280 to create a live website showing the current temperature, humidity and air pressure.
This is actually bringing back to life something that I thought I broke maybe a year ago with poor soldering on the BME280, but I'm trying to get back into the swing of things after a few years of looking after small children in my free time.
So far, amusingly enough, the biggest hurdle has been configuring nginx correctly, as I'm hoping for the website it produces to be globally accessible while also secure. This should have been fairly trivial, but I didn't realize that nginx had it's own, site-config default configuration which was leaving the proxy open against my desires.
I'm 90% done, I just need to get the website to render everything as expected.
The stack:
NodeMCU + BME280 using arduino C to program it.
perl/Dancer for the host webserver, using SQLite as the datastore and jquery/highcharts to display the live status.
I'm super looking forward to this being done, so I can move on to something else.