Thursday, March 11, 2010

TIBasic: an alternative to the "solve(" command

The "solve(" command is a pretty efficient way to find the root of an unknown equation. Unfortunately, it only works if you have a good guess; otherwise, you'll be plagued by "Bad guess" errors which may cause your program to crash.

To guarantee that your user doesn't encounter such an error, create a routine that uses Newton's method to perform the same function as the "solve(" command, except with safeguards for bad guesses.

Here's a routine that, given an equation (in terms of X) stored to Y1, and a guess stored to "G", will solve for "X" when the equation in Y1 = 0. Essentially, it does the same thing as "solve(Y1,X,G"

:DelVar R
:G
:Repeat Ans=X and R
:Ans→X
:R+1→R
:nDeriv(Y1,X,X
:If Ans
:X-Y1/Ans
:If R>50
:X
:End
:Ans→X
:If not(Y1
:X


download

Monday, March 8, 2010

Bump Update #1

Bump (xLib) 1Bump (xLib) 2

I started to rewrite an older game of mine called Bump using xLib. This code so far has little more than basic collision detection...

Basically the premise of the game is that you're the little ball, and you need to get to the hole. Whenever you press an arrow key, you keep rolling until you hit something else. In addition, you have an enemy that rolls in the same direction as you, which complicates things...


download

3D Rendering: ShowCase

So today I started tinkering with creating 3D wireframes using xLib, and got some pretty impressive results. Basically, I used the real(9, etc) function to create 10~24 frames of the model, and then one final routine that flips through the images according to the user's keypress, giving a pretty convincing feeling of a rotating 3d model. Plus, I drew all of the frames in such a way that while the images are loading, the user doesn't really see anything other than a loading screen...


download



Link

DarkFire IDE Update #2

Another WidgetTo-Do WidgetSystem Tray
See more photos here

Another Update. Though most changes are on the back end, I have made some modifications to the UI.
1) You'll notice that switching between widgets is a bit more responsive
2) Quick Search lets you search through programs, settings, and documentation
3) System Tray lets you check inactive widgets, perhaps seeing what's next on your to-do list, or how much time you have till your next event in a calendar. In the video, I have a simple clock running.
4) "System Options" gives you quick access to important things like the Finder (seen in my earlier video) and Settings
5) Standardized Notifications allow all running widgets to send you notifications, even if you're not looking at them. I got the general idea from Android, avoiding making these notifications annoying.



I am currently hoping to release a beta during the summer of 2010.

DarkFire IDE Update #1


YouTube

I haven't worked on this for a long while, so I might as well post a quick video of it before it gets lost in obscurity....

Basically, it has a nifty palm=pre-esque "task-switching" system, background tasking, and a simple (incomplete) program manager (that uses brandonw's proglist). More info later... Any feedback would be greatly appreciated!

DarkFire is my work-in-progress program editor/simple basic shell for the TI83+ (/SE) & TI84+ (/SE) series. It sports a pre-esque windowing system that lets you quickly switch between "applications" (I have a few demo/blank ones in the video), and you can to some extent run several apps at once. kinda nifty. I also show off a momentum-based scrolling system applied to a "widget" sidebar in OPENXDCS, heavily influenced by the iPhone

Friday, March 5, 2010

likes Google's new "star" system. Simple, handy, & (unlike searchwiki) "nondestructive"

Wednesday, March 3, 2010

helloworld

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed egestas iaculis lacinia. Cras velit neque, laoreet in laoreet nec, hendrerit at leo. Quisque nec facilisis lacus. Aliquam malesuada vestibulum justo, quis consectetur erat blandit consequat. Pellentesque vitae leo diam. Cras adipiscing, massa a rutrum lobortis, nisl nulla placerat augue, vel scelerisque libero justo rutrum risus. Etiam eu arcu ante, quis varius tellus. Phasellus mattis massa ut leo scelerisque auctor. Phasellus dapibus pulvinar auctor. Praesent placerat faucibus velit, eget commodo libero cursus vestibulum. Aliquam erat nunc, molestie ac pharetra et, malesuada in urna. Nulla et felis elit, ut congue tellus. Vivamus rutrum, ipsum a molestie tempus, elit odio venenatis ligula, vel eleifend mauris velit et erat. Praesent dignissim augue eu tellus pulvinar tempor. Quisque pharetra tempus scelerisque. Praesent posuere ante et eros ultrices vulputate vel nec erat. Sed tincidunt viverra purus, quis ullamcorper ante vehicula vitae. Mauris et quam non lacus pulvinar pretium eu ac dui. Fusce placerat dignissim nisi, ac fringilla nulla cursus lacinia. Sed semper interdum erat ut gravida.

Donec viverra accumsan eros quis cursus. In varius lectus et dolor luctus congue. Etiam fermentum sagittis orci at tincidunt. Phasellus libero neque, tincidunt sit amet sodales in, ornare non mauris. Pellentesque erat est, rhoncus sit amet blandit vitae, tristique nec libero. Aenean ipsum orci, scelerisque ut egestas id, imperdiet a nulla. Maecenas ut nulla tellus. Sed convallis scelerisque pellentesque. Morbi mollis suscipit lectus, sit amet condimentum est mattis vitae. Pellentesque facilisis risus sed sem laoreet ac euismod nisl lacinia. Nunc ut magna ac erat imperdiet aliquet sed vel odio. Donec non nibh nec augue egestas fermentum. Sed enim diam, facilisis vel feugiat quis, semper vitae lorem. Nulla facilisis rhoncus nibh vitae euismod. Sed iaculis ullamcorper enim id dapibus. Donec aliquet, odio eu tempor egestas, risus massa feugiat nisl, in consectetur dui ipsum vitae libero.