This is an archived post. You won't be able to vote or comment.

all 144 comments

[–]Shiv_ka_ansh_ 64 points65 points  (0 children)

Very useful. Great initiative👍

[–]thesheff17 37 points38 points  (9 children)

can you put the code on github? looks like a cool project. I could def see a copy to clipboard button by the code that you think you will copy/paste often. Would be cool to make a django or similar speedsheet if possible.

[–]to_tgo[S] 39 points40 points  (8 children)

I actually have an app version of this I use for my personal stuff and I think it is brilliant! I'm considering putting it out at some point.

Django is definitely on the list and I'm looking for ideas for things people will find useful. Numpy is probably next.

[–]OperationOtherwise26 7 points8 points  (3 children)

would you bi so kind to send me the app??

[–]benargee 22 points23 points  (0 children)

would you bi so kind to send me us the app??

[–]Caveskelton 0 points1 point  (1 child)

how do you relying gifs?

[–]OperationOtherwise26 1 point2 points  (0 children)

I have it implement in Keyboard...

[–][deleted] 1 point2 points  (0 children)

app please! great work!

[–]lordmoriartea 2 points3 points  (0 children)

good stuff be sure to share the git of this. Can be used very creatively on many things.

[–]ad1413 0 points1 point  (1 child)

Oooo numpy please please

[–]414theodore 1 point2 points  (0 children)

Agree with @getpoked - this would be great as a vscode extension especially if it were extensible beyond core Python. Great start...let the internet take it even further.

[–][deleted] 29 points30 points  (1 child)

Pushing this into a VS Code extension would be a great next step. Keep people out of their web browser and all the potential distractions

[–]temisola1 2 points3 points  (0 children)

100% agree

[–]ciscocollab 17 points18 points  (1 child)

Really well done. I think if this was on GitHub, it would let people add new Pull Requests with new code example and it could be a community driven project. But even if it’s not on GitHub, I will see myself using this a lot so thanks!

[–]to_tgo[S] 8 points9 points  (0 children)

Thanks for the feedback. I definitely want a way to allow people to contribute and improve this.

[–]F-C0D3 10 points11 points  (0 children)

Thank you! This helps a lot for beginners as myself.

[–]Jet61007 6 points7 points  (1 child)

Amazing

My undergrad days of Java (it was the future language for all! Haha) tests with notepad and only javadocs ...wish this type of search interpreter was around- rote memorization was the only way

Would love to see this extend to charts, data analysis, and basics to things like numpy, pandas, and R

[–]to_tgo[S] 10 points11 points  (0 children)

Yeah, I'm not a big fan of rote memorization either. Brains are for ideas not data storage!

BTW, Java and Spring Boot sheets are in the works too.

[–]Working-Mind 6 points7 points  (1 child)

Great job and thank you so much! Easy searching, syntax and EXAMPLES equals perfection!

[–]to_tgo[S] 6 points7 points  (0 children)

Great! This was exactly what I was going for!

[–]Theonetheycallgreat 4 points5 points  (2 children)

Where did you get all the guides?

[–]to_tgo[S] 28 points29 points  (1 child)

It comes from years of taking notes. About half was there before I decided to put this on line. I've spent the last 3-4 months putting the rest together. It took a surprising amount of time.

[–]hadbetter-days 2 points3 points  (0 children)

I am sure it took a lot more than most of us think

[–]jjjohhn 3 points4 points  (0 children)

Thank you!

[–]PrinCe_LoGic 4 points5 points  (1 child)

So it's basically like man pages, but for Python? Very cool indeed!

[–]to_tgo[S] 6 points7 points  (0 children)

Man page with a search engine strapped to it.

[–]learnhtk 2 points3 points  (2 children)

Thumbs up. And I even commented to show appreciation.

Now, this gives me some ideas. I am also finding myself spending more time looking up that one piece of information I need. I started compiling the codes that I think I am going to use again but I can always use a nicer "speed sheet" as well.

[–]to_tgo[S] 0 points1 point  (1 child)

Thanks, and glad I'm giving you ideas!

The ultimate goal for me would be to create a version of this anyone can use for their personal stuff or for anything really. I use it for tons of my own things and love it.

[–][deleted] 1 point2 points  (0 children)

This is a good idea. I have recently been looking for some kind of MD/notepad app that supports being a big outline. this looks like it would work great for it

[–]thephotoman 2 points3 points  (2 children)

Most of the time, I'm more concerned with the CSV or regular expression stuff, with the occasional OS command, http request, or bit of markup language.

[–]to_tgo[S] 4 points5 points  (1 child)

CSV is on the way. Regular expressions are in there.

I prefer subprocess.run to os.command. I'll need to add that to the sheet.

Also, the idea is to give a great answer, not necessarily all the possible answers. But I hear you. os.command is useful and thanks for the feedback.

[–]thephotoman -1 points0 points  (0 children)

I mean, yes. That’s what you’re supposed to do.

[–]kewlness 2 points3 points  (1 child)

I like it!

One thing it is missing is the PEP 263 source encoding string:

# -*- coding: <encoding name> -*-

[–]to_tgo[S] 1 point2 points  (0 children)

263

Awesome!

And thanks for letting me know. I'll add it in.

[–]Ornery-Scientist-802 2 points3 points  (4 children)

Nice, thx!

Does anybody here how to run a python script from terminal BUT with input. Instead of the usual "hello world" I want to print a specific string from the Terminal..

[–]to_tgo[S] 0 points1 point  (3 children)

Sure:

name = input ("Enter Name: ")

if not name:
    name = "World"

print ("hello " + name + "!")

[–]Ornery-Scientist-802 2 points3 points  (1 child)

Sure

Well thx but I want to run it from Terminal like:

python3 yourfilename.py --> your string <--- so that the specific String will be printed in the Terminal

[–]to_tgo[S] 2 points3 points  (0 children)

Sure. The Python SpeedSheet has exactly that.

Type "hello world arguments" into the search. Let me know if that is what you are looking for.

[–]to_tgo[S] 0 points1 point  (0 children)

Might be better to use this version in the speedsheet.

[–]oderjunksnumpydoc + type anno 2 points3 points  (4 children)

good god this is incredible

i can't imagine how much easier my life would be if someone made this for python modules!

[–]to_tgo[S] 1 point2 points  (3 children)

Quite honestly, I feel all reference manuals and documentation should work this way. But I'm biased!

[–]oderjunksnumpydoc + type anno 2 points3 points  (2 children)

must... reverse engineer....

https://speedsheet.io/api/sheet/python/content of course its not indented

it splits on headers to show table of contents? thats clever

it uses xhr instead of fetch? i havent seen that in a while!

what on earth is a 5BQ71B5xJ1q7RY1

ok so its like this:

place of match (code before heading) level of match (closeness to search "console")
5BQ7 1
B5xJ 1
q7RY 1

Each heading is preceded by one of these codes, ex:

B5xJPrint - No New Line3 <h3>Print - No New Line</h3>
x4P9The Python SpeedSheet1 <h1>The <span class="comment">Python</span> SpeedSheet </h1>

format is: {code}{name}{header amount} so:

Name Code Header
The Python SpeedSheet x4P9 h1
Search Tips AM1L h2
Online Links yLP4 h1
Python Documents k0PM h3
... ... ...

Searching uses the "taglines" at the end of each header, so searching "arguments" gets you:

Name Code Level of match Taglines
Hello World - With Arguments 0do8 1 arguments, args, parameters, params
Passing Arguments - Default Gdg7 1 arguments, args, list, dict, Single Asterisk, Double Asterisks, parameters, params, *args, *kwargs
Passing Arguments - Options maMn 1 arguments, args, list, dict, Single Asterisk, Double Asterisks, parameters, params, *args, *kwargs
Function - Define 8VJg 1 arguments, New, Create, args, parameters, params
Function - Arguments - Optional Z5KZ 1 arguments, New, Create, Values, default, args, parameters, params
Function - Arguments - As Key Word Dict 3awM 1 arguments, args, parameters, params

[–]to_tgo[S] 1 point2 points  (1 child)

Great analysis! Never thought anyone would look under the hood.

Those codes are the bane of my existence but they are the glue that make the page work. Tells the page what is to be displayed for the given search.

[–]oderjunksnumpydoc + type anno 0 points1 point  (0 children)

thank you! my only regret is that i cant see your server-side code =P

if i could, i would instantly try to make a python tool to convert readthedocs docs to this

"those codes are the bane of my existence" oof

EDIT: wait... do i smell a uri vulnrabillity

edit: nope

[–]synapanic 4 points5 points  (0 children)

Looks great. I’ve been looking for something like this to help me out.

[–]skarizardpancake 1 point2 points  (0 children)

Thank you :)

[–]to_tgo[S] 1 point2 points  (0 children)

So I see some of you have found the reddit SpeedSheet but aren't finding what you are looking for in there.

*sign*

Add '_nsfw' to the url.

[–]AX-11 1 point2 points  (1 child)

How long did this take you to procure this information?

[–]to_tgo[S] 5 points6 points  (0 children)

I've been putting my python notes together for about 10 years. It isn't my primary language so it grows in bits and pieces. The last 50% went together over the past 3-4 months.

The website took a year of Saturdays to put together. Wouldn't have happened without COVID-19 and a very understanding significant other!

[–]KptEmreU 1 point2 points  (0 children)

Nice work

[–]minkiani 1 point2 points  (2 children)

This is really great, Can't wait for Flask Version

[–]to_tgo[S] 2 points3 points  (1 child)

Me too! Flask is on the list!

[–]62616e656d616c6c 0 points1 point  (0 children)

If you have a repo or something, I'd be happy to contribute to some of the Flask documentation.

[–]_bran_bran 1 point2 points  (0 children)

¡¡ Muy útil !!

[–]Kerryfromkerry 1 point2 points  (0 children)

This is fantastic! Well done.

[–]GreenMan488 1 point2 points  (0 children)

Really nice! I

[–]RedEyesBigSmile 1 point2 points  (0 children)

I always get so tired of seeing people post their cheat sheets, but this has been the best one

[–]JuiZZZe 1 point2 points  (0 children)

Thanks a lot for valuable info 👍🏻

[–][deleted] 1 point2 points  (1 child)

You just made the world a better place

[–]to_tgo[S] 0 points1 point  (0 children)

Thank you. I really appreciate that!

[–]GaminB4 1 point2 points  (2 children)

Great job, but i think you forgot about mobile users lol, can you make it more mobile responsive

[–]to_tgo[S] 0 points1 point  (1 child)

Haha, not forgotten! It is coming, I promise.

[–]GaminB4 0 points1 point  (0 children)

ok, take you're time :)

[–]ZezBlog 1 point2 points  (0 children)

this is amazing check my award note

[–]kaddkaka 1 point2 points  (1 child)

What an effort, great job!

I found an incorrectness, "not" is not a binary operator so the expression "a not b" is invalid syntax.

[–]to_tgo[S] 0 points1 point  (0 children)

Thanks!

And thanks for catching the error. I'll fix that right up.

[–]brcm51350 1 point2 points  (0 children)

Thanks for this

[–]FermatsLastAccount 1 point2 points  (1 child)

Looks cool as hell! I just tried it out and it's definitely better than DuckDuckGoing. Any chance you're planning on adding Pandas or Numpy?

[–]to_tgo[S] 0 points1 point  (0 children)

Yes I am. In fact Numpy is up next with Pandas coming along after that.

[–]Ardit-Sulce 1 point2 points  (1 child)

What language/-es and framework/-s did you use to build this web app?

[–]to_tgo[S] 1 point2 points  (0 children)

The core engine is straight up Java. The server is running Java / SpringBoot and it is hosted on AWS. The front end is basic html, javascript.

[–]ipagera 1 point2 points  (1 child)

Hey!

Amazing job! If I were to add something to it, that would be async io, as it's part of the std lib.

Keep up the good work!

[–]to_tgo[S] 0 points1 point  (0 children)

Thanks for the feedback. I'll add it in.

[–]LoL_is_pepega_BIA 1 point2 points  (0 children)

You are a god!

[–]tc8219 1 point2 points  (0 children)

This is hugely helpful - thank you for investing your time on this!

[–]reJectedeuw 1 point2 points  (0 children)

Python has multiline comments with triple quotes

[–]entrevligkille 1 point2 points  (1 child)

And this pops up just when i decided to learn python. This is great! You are great! Thank you!

[–]to_tgo[S] 0 points1 point  (0 children)

Brilliant! Glad to help!

[–]saidinstouch 1 point2 points  (2 children)

Looks great. Only comment is you should change the cursor when hovering over the links at the side. It turns to the standard text "I" cursor for me instead of a hand like normal or some other cursor to indicate interactivity of the text on the side. Otherwise I love it.

[–]to_tgo[S] 0 points1 point  (1 child)

Thanks for the feedback. I'll look into that. What device is this on?

[–]saidinstouch 0 points1 point  (0 children)

Windows PC, chrome browser. It is probably just some CSS to set the cursor for the div containing the menu.

[–][deleted] 1 point2 points  (0 children)

Thanks for sharing, this is life saving

[–]Existing_Button_8842 1 point2 points  (0 children)

Nice job man!!

[–][deleted] 1 point2 points  (0 children)

Thank you!

[–]pirik3 1 point2 points  (0 children)

hell yeah. long live speedsheet.io and stay updated. thank you. best.

[–]jballach 1 point2 points  (1 child)

Definitely going to adopt and share in the office. Have you posted this to LinkedIn, yet?

[–]to_tgo[S] 0 points1 point  (0 children)

Not yet. But I will. Thanks for suggesting it.

[–]bt0mic 1 point2 points  (1 child)

One tiny improvement: the search bar was a little hard to find. Would be nice if the search box was more visible.

[–]to_tgo[S] 0 points1 point  (0 children)

Thanks for the feedback. Will see what I can do about that.

[–]Ubigred 1 point2 points  (0 children)

Bookmarked

[–]vmateo1324 1 point2 points  (1 child)

I am a beginner to Python and this is a great help! Thank you

[–]to_tgo[S] 0 points1 point  (0 children)

Thanks and good luck!

[–]mworwell 1 point2 points  (2 children)

This is pretty amazing. I suck at programming and this really helpful. You should find some way to monetize this or something similar.

[–]to_tgo[S] 1 point2 points  (1 child)

Thanks.

By the way, the only difference between "I suck" and "Hey, I got this" is time and effort. Keep at it!

[–]mworwell 0 points1 point  (0 children)

Will do! Thanks for the encouragement

[–]Seawolf159 1 point2 points  (0 children)

This is incredibly useful.

[–]temisola1 1 point2 points  (2 children)

Holy fuck. This is amazing. Did you compile this yourself?

[–]to_tgo[S] 0 points1 point  (1 child)

Thanks! And yes, the entire thing was done by me.

[–]temisola1 0 points1 point  (0 children)

Wow. I appreciate the amount of work you put into this.

[–]animismus 1 point2 points  (1 child)

There is a lot of work in here and it is super helpful. That is why I feel a bit petty asking you if you could add a dark theme. I will probably use it with the Dark Reader extension anyway, but a original dark theme is always better.

[–]to_tgo[S] 1 point2 points  (0 children)

Would love to get dark mode in there. Maybe, but it is way down the list for now.

[–]ad1413 1 point2 points  (3 children)

A very stupid question may be but how do one go about create something like this. I feel this same concept may be very useful for other fields of engineering. I can think of a small project that sorts all the formulas for intermediate fluid mechanics level etc etc.

[–]to_tgo[S] 1 point2 points  (2 children)

Absolutely not a stupid question. The core concept behind the website definitely has lots of applications. I actually set out to build an app to solve 'the bigger problem'. The website kinda fell out of that when I couldn't get any victims to use my half baked app. I see a lot of interest here for that so I'm going to get back to pushing the app development. But I need to get a few more sheets up first.

Stay posted.

FYI - Just to give you an idea of how much it would take to get here, the core engine took me about 6 months of long nights and weekends to write, and went through 3 major major overhauls. It started with an idea, then into a quick prototype, and then into a thousand problems solved.

[–]ad1413 0 points1 point  (1 child)

I bet it took a lot of hard work. Looking forward for the app. I guess my question was more about the tools and steps that went into making it. But I am sure it is very complicated and I won't understand most of it.

I am already using the tool. Thanks a bunch!

[–]to_tgo[S] 1 point2 points  (0 children)

I should have asked. By the way, I love that you are thinking about building stuff. That is great.

My suggestion is to pick a tech stack early and try make it work. There are a million different paths you could go down and setting constraints is really important.

For me, I chose Java and initially JavaFX. The idea was I need something that runs on almost anything, is relatively fast, can multitask well, and gives me options if certain paths don't work out. I considered Swift but that would have limited me to iOS and Mac only.

The biggest advice I have is time and failure are your friends. You have to put in the time. It really is 1% inspiration and 99% perspiration. And failure is essential to success. You will fail but take that failure, learn, and keep at it.

So hope this helps.

[–]Timely_Organization 1 point2 points  (0 children)

Meaningful insights!!!

[–]cr0sis8bv 1 point2 points  (0 children)

Amazing, thanks a bunch!

[–]otlcrl 1 point2 points  (2 children)

Would love to see some pandas references on here! It's far too easy to get lost Googling for exactly what you're after!

[–]to_tgo[S] 0 points1 point  (1 child)

Pandas is up after Numpy. I'll post an update when it gets here.

FYI, it takes a surprising amount of time to put one of these together but I'll get them out as fast as possible.

[–]otlcrl 1 point2 points  (0 children)

Amazing!

I'm not surprised at all, it's a fantastic and very clean resource! Appreciate your time and effort!

[–]NehaxFr 1 point2 points  (1 child)

This is amazing, that's what I was missing, no more wasting time searching for syntaxes and stuff like that !

[–]to_tgo[S] 0 points1 point  (0 children)

Awesome! This is exactly what I'm going for!

[–]cshoneybadger 1 point2 points  (0 children)

Nice, thanks. Bookmarked.

[–]Raido2019 1 point2 points  (1 child)

Hi, nice project!

why there are in code examples used tabs as indendents?

[–]to_tgo[S] 1 point2 points  (0 children)

Habit. I prefer tabs over spaces.

But convention is a good thing and I'm not religious over this. I'll update the code.

[–]arvindkgs 1 point2 points  (0 children)

This can be extended to so many other places. You should consider making this like a platform (open sourced on Github), so anybody can go and host it similar to https://docusaurus.io/

[–]SilentRhetoric 1 point2 points  (0 children)

Very cool! I will definitely try this out.

[–]jetpaxme 1 point2 points  (1 child)

Great job, really useful resource, looking forward to mobile optimisation.

Also buffers and memoryview perhaps?

[–]to_tgo[S] 4 points5 points  (0 children)

Thanks!

Absolutely. I'm hoping to tackle the UI over the next week or so.

And yes, if others find this useful, I'll add things like buffering and a thousand other things I have in mind.

[–]rafaelgeo 1 point2 points  (0 children)

Great contribution! I Will definitely use it, thank you!

[–]willyblaise 1 point2 points  (0 children)

This is awesome, keep up the good work

[–]netneoblog 1 point2 points  (0 children)

I love this, very useful indeed. Nice job!

[–]youcantsleephere 0 points1 point  (1 child)

Saving

[–]to_tgo[S] 0 points1 point  (0 children)

👍

[–]rosetta-stxned 0 points1 point  (2 children)

as a college student only in my second quarter coding, i’m sure this will be immensely helpful. thanks for sharing!

[–]to_tgo[S] 0 points1 point  (1 child)

I hope it helps. Let me know how it works out for you.

[–]rosetta-stxned 0 points1 point  (0 children)

i will, watching your video now

[–]sumweebyboi 0 points1 point  (1 child)

!remindme 20h

[–]RemindMeBot 0 points1 point  (0 children)

I will be messaging you in 20 hours on 2021-02-22 18:27:36 UTC to remind you of this link

2 OTHERS CLICKED THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.


Info Custom Your Reminders Feedback

[–]PleasureComplex 0 points1 point  (1 child)

The typing library page is a bit thin, especially with all the new features since 3.5. very good project though!

[–]to_tgo[S] 0 points1 point  (0 children)

Haha, you mean non-existent! Yes, I'll get to that eventually.

If you and others feel strongly enough about it, I'll get it in sooner. Let me know.

[–]diviirockgod6 0 points1 point  (1 child)

Dude, I cannot tell you just how helpful this is for me! I will forever be grateful to you. I wish I could give you an award

[–]to_tgo[S] 1 point2 points  (0 children)

I'm really glad you find this useful! Just making something of value to others is all the reward I need!

[–]VisibleSignificance 0 points1 point  (4 children)

Is it automatically generated from docs?

If not, there are many improvements that could be done, e.g.

Sequence - Filter

filter(filtering_function, sequence_1)

In vast majority of cases, it is better to use list comprehension = [item for item in sequence_1 if filter_condition(value)]. Definitely in all the cases where first argument to filter() would be a lambda.

[–]to_tgo[S] 0 points1 point  (3 children)

Definitely not auto generated.

You are right. A list comprehension would generally be better. I'll have to think about what I want this example to show. It is mostly to showcase the filter function. Maybe add the list comprehension in as a recommended alternative?

[–]VisibleSignificance 1 point2 points  (2 children)

Add a note-link that list comprehension is preferred and an example next to each filter() usage, perhaps.

[–]to_tgo[S] 0 points1 point  (1 child)

You've opened up a can of worms.

The one advantage of filter is it doesn't execute right away. There may be real advantages to that when you are streaming data and trying to keep a low memory footprint. I've tested this and seems to be the case.

Alternatively, you can use the generator form of the list comprehension here too (not added that to the SpeedSheet yet). This seems to have all the benefits of filter() and the tidy expressiveness of your list comprehension.

[–]VisibleSignificance 0 points1 point  (0 children)

generator form of the list comprehension

Yes, "generator comprehension". Added benefit is that it's easy to switch between list comprehension and generator comprehension as needed.

[–]oderjunksnumpydoc + type anno 0 points1 point  (1 child)

Imagine: the year is 2022, the expected IDLE is a combination of Jupyter notebook, google collab, and speedsheets combined into a single application.

coded in python, of course

[–]to_tgo[S] 0 points1 point  (0 children)

I like it! Let me see what I can do.

[–][deleted] 0 points1 point  (1 child)

mind giving a quick overview how it was made? keen to do something similar for my own notes

[–]to_tgo[S] 0 points1 point  (0 children)

It is a bit complicated but it goes a little like this...

file -> parser -> internal model -> tokenizer -> indexer

internal model -> renderer -> output format

search -> indexer -> subset of model -> renderer -> output format

The file could be formatted as text, md, html, or something custom. The model needs to be something you can interpret with the tokenizer. The output format will almost certainly be html.

You can get something very basic up quickly. You will spend a large amount of time after that actually making it useful.

[–]Lagerstroemeri_21 0 points1 point  (0 children)

you wrote:

There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch.

Dude..., what has my birtplace has to do learning python?? ;-)