• Ti Leyon

    Yes I know but adapting a Pygame project to the Pytonista environment deserves as much respect. I can run Tauber’s code in Android, being able to do so in IOS is a double treat.

    posted in Pythonista read more
  • Ti Leyon

    Ok @JonB I understand. Just being able to emulate an Apple ii using Python on an iPhone or iPad is an extraordinary feat in itself. Chapeau bas (respect).

    posted in Pythonista read more
  • Ti Leyon

    @JonB I think it is an excellent idea to improve on "Applepy". I am currently investigating the interest of big IT (can't live without them) in RSA factorization. I found a quadratic sequence that can solve it in polynomial time. Therefore, I cannot entertain any project of that scale for now. I will probably try something simple (I think) that will take a couple hours (I think) like "Chip-8" or a "p-machine" a la Pascal. By the way, doesn't "Scene" implement some kind of frame buffer? I never really use it mainly because it will be costly (time wise) to build cross platform applications using it. I know most (if not all) of these type of environment implement screen buffering. Below is a screen shot of "iDOS 2" running "windows 3.11" on an iPad mini 4. It is smoother or as smooth as other "DOSBox" implementations I have used. It uses the screen area as a mousepad that is ultra responsive. Games and animations run as well as in the original 3.11 on the best computers of that era. I do not think the dev could have done it without screen buffering and switching. In case "Scene" does not offer screen buffering, could sprites the size of the screen area be used for this purpose? Anyway, it would be swell to have "Applepy" run on a skeuomorphic skin as does "iDOS". Am I dreaming aloud?
    iDos Screenshot

    posted in Pythonista read more
  • Ti Leyon

    I am very much into emulators although not of the video game kind. @JonB either wrote or forked a Python Apple ][ emulator that depends on Pygame. If he did not port it into Pythonista it is probably because this is very (if not extremely) hard. In fact, I saw him talk about that level of difficulty in a few posts in this forum. Anyway, if you want to experiment with emulation on IOS you should try “iDOS 2”. It masquerades as a collection of old video games but is in fact a full DOSBox emulator. If you can penetrate its sandbox (which is not that hard) you can run any DOS program you want including MS Windows 3.xx. You should check out “https://www.vogons.org/viewtopic.php?f=11&t=56790” which is a fairly good discussion of emulation under DOS and Windows 3.xx. It contains a few links to NES emulators for DOS and Windows 3.xx that you can “MOD” if you are into this kind of stuff (and can spare the time for it). I do not know how fast they will run under iDOS. However, I run Windows 3.11 from iDOS on a 2015 iPad mini at similar speed as on the typical 66 MHz computers of its time. If you are part of the crazy “update at all cost” crowd you are out of luck. “iDOS 2” has not been updated in a few years and it has no forum for endless whinnies. However, it works fine and is surprisingly stable. If you want to install Windows 3.xx I would suggest a “MOD” version that runs from a folder instead of a virtual drive. You may find it somewhere in the “vogons” site from the link above. Happy emulating!

    posted in Pythonista read more
  • Ti Leyon

    @timtim If you can wait forever for Apple to upgrade your device you may as well use Pythonista as it is and make the best of it.

    posted in Pythonista read more
  • Ti Leyon

    As mentioned above, SAAS and the cloud have become a major source of income for big IT. According to Gartner Inc, “Software as a service (SaaS) remains the largest segment of the cloud market, with revenue expected to grow 17.8 percent to reach $85.1 billion in 2019.”
    Ref.: https://www.gartner.com/en/newsroom/press-releases/2018-09-12-gartner-forecasts-worldwide-public-cloud-revenue-to-grow-17-percent-in-2019

    posted in Pythonista read more
  • Ti Leyon

    Will Apple pay you back for your IOS device that has an unfixable flaw? No No No No No. What are you going to do about it?
    Ref.: https://www.theverge.com/2019/9/27/20886835/iphone-exploit-checkm8-axi0mx-security-flaw-vunerability-jailbreak-permanent-bootrom-ios

    posted in Pythonista read more
  • Ti Leyon

    Kudos to you @cvp for what sounds like a rewarding career. May these memories live with us for ever. I relive them from time to time through a collection emulators and virtual machines. I run the emulators in my mobile devices and it is unfortunate that Apple restrict their use on IOS. I was pleasantly surprise to find a port of an Apple II emulator in this forum. It was written by @JonB and I was able to poke a few 6502 opcodes. I am still amaze at all that was accomplished using the 56 instructions set of that chip.

    posted in Pythonista read more
  • Ti Leyon

    I do not know when and how it started. Probably when the internet evolved into a commodity. Up to that point, updates came on floppy disks then on CDs whenever a vendor decided. Decent applications, including compilers, cost hundreds of dollars and users had to pay for new versions. Pryor to this, updating was a foreign concept. You had to manage what you had to get the results you needed. Sometimes, that meant "poking" machine instructions strait into the bare metal and read memory dumps just like you do with modern high level source codes. Always on internet standards provided vendors and hackers alike a free ride into your machines. Companies now had the perfect excuse to remotely take over your hardware under the pretense of protecting you with their "critical" updates. Users soon turned into digital junkies begging to get faster and faster updates. With the advent of mobile devices early developers fixed the price of quality programs at under ten dollars. This is probably due to the false perception that mobile devices are not computers and users will not be willing to pay much more for an app. This user bonanza happened to the dismay of big IT companies facing the existential threat of losing their cash cows in the ever popular mobile echo systems. It did not take long for them to recover by introducing SAS into the mobile world. They got their addicts back and strengthen their position with another costly digital indulgence eerily baptized as "the clouds". This whole scheme had to be supported by a constant stream of often unnecessary updates and upgrades to give the paying customers the impression that they are getting value for their money. The culture of entitlement was born and users started to expect regular updates for whatever programs they are using regardless of needs. However, this expectation is unwarranted in the case of free or low cost software. Pythonista is one of them. It cost less than a fast food order. However, as it stands, it is fairly stable, strong, versatile, reasonably complete and extremely useful. If you need more, it is your duty as a programmer to use "objc" or your imaginative skills to get the results you want. Furthermore, upgrades are not always possible, practical or even desirable (I still miss skeuomorphism). The early pentium processors had an inherent bug in their FPUs. Although Intel recalled the affected chips, if you had one in your machine, you either had to bypass the problem or stop working. Incidentally, it has just transpired that there is a new "unpatchable" iPhone exploit on hundreds of millions of devices.

    https://www.theverge.com/2019/9/27/20886835/iphone-exploit-checkm8-axi0mx-security-flaw-vunerability-jailbreak-permanent-bootrom-ios.

    I am waiting for your big class action lawsuit for Apple to update your expensive devices or refund your money.

    posted in Pythonista read more
  • Ti Leyon

    Thank you for the link @dgelessus but I just wanted to point out that in a technical environment we should probably talk about “end of support” instead of “end of life”. What about basic idea shaping @mikael? Fundamental research can be tested in any language even “dead” ones. However, Python beats them all with out of the box arbitrary length integers for certain problems. In fact I just got a breakthrough factorizing large semi-primes using Python 2. When (and if) I release its source, I will make sure to set it to be incompatible with 3.x forcing “modern” users to make corrections in every lines or use Python 2. Well @JonB you are right so we better be careful with that “dangerous” Python 2. I wonder if those, like me, who still will use it after the “end of life” deadline will turn into “ghost programmers”. Anyway, thank you all for sharing the humor.

    posted in Pythonista read more
  • Ti Leyon

    Please define “end of life”. Does it mean that on that date all Python 2 interpreters will stop working? Will operating systems worldwide delete Python 2 and all its libraries from their environment? Will the dead Python 2 be erased from the universal consciousness of humankind and spying invisible aliens?

    posted in Pythonista read more
  • Ti Leyon

    @ittraining what exactly is a modern Python developer and what does he/she want and expect? Using “print” as a statement is not a bad habit but a valid proven concept dictated by an equally sound programming paradigm. I also happen to harbor the awful tradition of conceiving strings as arrays of ASCII values, a practice I do not intend to give up until a future new year resolution. These are among a slew of old fashion, deprecated (are they?) abstractions around which I built a substantial library that I do not want to “correct” according to the fancy of a few designers. In fact Python 3.xx is not an evolution of Python 2.xx but a drastic divergence. Usually, when such a paradigm shift is warranted, designers create a brand new language. Ritchie did not go with “B v2” but started “C”. So did Wirth by setting aside “Pascal” and starting “Modula”. I do want modern Python developers (whatever that means) to ride into the sunshine with their shiny Python 3.x. I just want them to live Python 2.x alone by not advocating to remove it from future releases of Pythonista. By the way, I do write codes that are compatible from Python 2.7 up to latest releases of Python 3.x when my targeted audience is varied. They are also GUI compatible across different platforms without changing any code. A few of my postings in this forum can attest to that. However, for my private routines, that work flawlessly, I want to keep them backward compatible with Python 1.x. Because sometimes I take them to my virtual computers running Windows 3.11 or Mac system 7 or OS 8 to prove to myself that I could have solved certain problems decades ago if I was not much dumber then. In my book real programmers don't eat quiche.

    posted in Pythonista read more
  • Ti Leyon

    @ccc With all due respect to you and @mikael, there is no way that Python 2 can be an issue if it is not activated. Even a file containing a virus is harmless if it is not executed. Fifteen years ago, I used to be fascinated by “Nimda” when it just came out and made all that damage. I used to open it (not execute it) and examine its object code without any problem. If Python 2 pauses some risk if it just sits within some Python 3 directory then Python 3 is more dangerous than its older sibling. I am just advocating to uphold the traditional Python 3 distribution model (with Python 2 included) and let a user decide if they want to be “safe” or not.

    posted in Pythonista read more
  • Ti Leyon

    @mikael I am not sure that I understand your point. Are you asserting that Python 2 is so “unsafe” that even if you are not using it through a shebang or otherwise, a remote rogue process can bypass IOS, guess that Python 2 is installed within Python 3, access the Pythonista sandbox and execute a script that will make your device explode or some other nefarious aim? If that is the case we should all uninstall any version of Pythonista at once. Otherwise, let the system stand as it is in all future releases without any extra complexity for the user and @OMZ.

    posted in Pythonista read more
  • Ti Leyon

    @ccc I too am absolutely oppose to the removal of Python 2 support from future releases of Pythonista. I couldn’t care less about the innumerable functions and syntaxes being constantly added to python or any other language for that matter. I implement models and solve problems using whatever language that is available in a specific system using the most basic construct possible. Any complex program can be reduced to statement, decision and iteration. If complexity arises, unless it is really extensive or not directly related to my code (such as a GUI), I tend to handle it myself and my way. It is nice to have sympy preinstalled but I would do fine without it. That said, I still mainly use “print” as a statement instead of a function and so many other concepts that might be evolving endlessly within the Python framework that I do not care about. It is therefore easier to place the shebang “#!python2” on top my scripts instead of unnecessarily correcting codes that already work.

    posted in Pythonista read more
  • Ti Leyon

    @themusicman Maybe you should try using UniPAGE then you may write and test your codes on all major platforms without modification (MS Windows, OS X, Linux, IOS [Pythonista], Android [Pydroid recommended]). For all the desktop environment you will need to install Kivy (already preinstalled in Pydroid). All the basic UI elements (Button, Text input, label etc…) are included. You do not have to install the module you can just add your code to it. I wanted to include TKinter to make it truly universal on most versions of Python with absolutely no installation necessary but I never got the chance to do it. I probably will try to spare some time in the coming weeks to do that. You may even use an extension to UniPAGE called Graphics Agnostic Python (GAP) which provides a visual interface designer that automatically generates a “.py” file with the complete interface.

    posted in Pythonista read more
  • Ti Leyon

    Hey @JonB did not you write a graphical file manager by the name of “PhoneManager”? I adapted and use it occasionally without the need to ever download “stash”. Do not get me wrong, “stash” is probably one of the best and most useful script published in this forum (as attest by its popularity). However, if you are not entirely dedicated to a specific OS it becomes costly (in time, memorizing and touch typing) to get involve in any CLI dedicated to that OS. @adrius42 you may probably get most of what you want by using “PhoneManager” and/or @cvp’s script and modify them to your need once you become familiar with the nitty-gritty of Pythonista under IOS.

    posted in Pythonista read more
  • Ti Leyon

    @uncompleted if you want to use pandas while on the move you should get yourself an Android device if you do not already own one. It does not seem that pandas is coming to Pythonista anytime soon. Meanwhile, the recent release of Pydroid 3 on the Android platform is a free, full featured python 3.6 implementation that includes PIP, Kivy and Pyqt5. You can use PIP to download most of the modules available on desktops including Pandas, Numpy, Scipy, Matplotlib, Scikit-learn, Jupyter etc... The only interesting modules that are not yet compatible seem to be Tensorflow and OpenCV. Of course Tkinter is not included but personally I do not think it is a big loss. By the way you may buy the Huawei MediaPad M3 8.0 for about US $200.00 on Amazon. This is a 2.3 Gz Octa Core device that easily outperforms the iPad mini 4. For scripts that includes modules available in Pythonista you may even bridge the UIs so you do not have to rewrite your codes. Here is an example showing one way to go about it: https://forum.omz-software.com/topic/4307/graphics-agnostic-python-gap.

    posted in Pythonista read more
  • Ti Leyon

    @scatter it is fairly easy to write cross UI platforms applications that run unmodified at the source code level on all major GUIs using python. That is if you plan to use specific UI elements and not trying to create warpers around a platform from the standpoint of another. I have published scripts in this forum (refer to this thread) that demonstrate the matter with fully functional modules. They cover the basic UI elements that (arguably) form the basis of most applications. They cover the Pythonista UI matched with the Kivy GUI. Integrating Tkinter maybe a little more complicated since it does not closely follow the same syntax structure as the others. However, it can be done with not much pain if you really want to go that route. Here is a simple demo that covers basic geometric forms and integrates all three GUIs automatically. I also developed a graphic designer that speeds up the coding of the interface that you may find here. Hope this helps.

    posted in Pythonista read more
  • Ti Leyon

    Since I intend to include “Tkinter” in future implementation of universal codes (refer to GAP in this forum) I went to investigate the 3.xx implementation of that module. They did take out the capitalization from “Tkinter”. Change the “Tkinter” block from “getgui()” to add one more exception (as shown below) and the script should run everywhere without modification.

                try:
                    from Tkinter import Tk
                    platform = 'Tk'
                    gui = object
                except:
                    import tkinter
                    import sys
                    sys.modules['Tkinter'] = tkinter
                    platform = 'Tk'
                    gui = object
    

    posted in Pythonista read more
Internal error.

Oops! Looks like something went wrong!